Điện toán GPU – Nó là gì?
Bạn có thường nghe về tính toán hoặc tăng tốc GPU nhưng không chắc chúng có nghĩa là gì không? Sau đây là mọi thứ bạn cần biết.

GPU hay Bộ xử lý đồ họa có mặt trong tất cả các mạch điện tử tạo ra một dạng màn hình nào đó, đặc biệt là máy tính.
Bộ xử lý đồ họa ban đầu tương đối đơn giản. Nhưng với sự ra đời của trò chơi, hoạt hình 3D và các tác vụ dựng hình video đẩy CPU vượt quá giới hạn của chúng, GPU mạnh hơn đã phải ra tay cứu nguy.
Những card GPU mới này ngày càng mạnh mẽ và phức tạp hơn theo thời gian, với nhiều công ty và nhà nghiên cứu khác nhau tìm cách tận dụng lợi thế thực thi song song của chúng. Bài đăng này cho bạn thấy mọi thứ đã diễn ra như thế nào cho đến nay.
GPU là gì?
GPU hay Bộ xử lý đồ họa là một mạch chuyên dụng được thiết kế để xử lý dữ liệu nhằm hỗ trợ việc tạo hình ảnh để hiển thị. Nói cách khác, GPU là hệ thống tạo ra hình ảnh bạn nhìn thấy trên bất kỳ bề mặt hiển thị nào, chẳng hạn như màn hình máy tính, màn hình điện thoại thông minh, máy chơi game, v.v.
GPU ban đầu là những thiết bị đơn giản kết hợp các thành phần đồ họa lại với nhau để tạo ra đầu ra lý tưởng cho một thiết bị cụ thể. Tuy nhiên, theo thời gian, cùng với sự ra đời của trò chơi điện tử, GPU bắt đầu trở nên phức tạp và mạnh mẽ hơn, tạo ra GPGPU hoặc Máy tính mục đích chung trên GPU.
Điện toán GPU là gì?
Điện toán GPU hay GPGPU là việc sử dụng GPU để tính toán ngoài đồ họa. Điều này có nghĩa là sử dụng GPU được nhúng trong card màn hình của máy tính và ban đầu được dùng để xử lý đồ họa máy tính để tính toán các loại dữ liệu khác, chẳng hạn như mô phỏng khoa học, khai thác tiền điện tử, tính toán đại số, dự báo thời tiết, mạng nơ-ron, v.v.
Lý do cho sự phát triển này của điện toán GPU xuất phát từ sự phát triển ấn tượng của các đơn vị xử lý đồ họa, xuất phát từ kiến trúc song song phân tán của các hệ thống GPU hiện đại.
Khi CPU của máy tính ngày càng mạnh hơn và có thể xử lý các chương trình và trò chơi phức tạp hơn, các nhà sản xuất card màn hình cũng cố gắng theo kịp sự phát triển của máy tính hiện đại và đồ họa 3D. Nvidia đã công bố GeForce 256 vào năm 1999 với tư cách là card màn hình GPU đầu tiên trên thế giới và mọi thứ đã phát triển từ đó.
Ưu điểm chính của card GPU so với CPU là kiến trúc xử lý song song, giúp chúng có thể xử lý các tác vụ dữ liệu lớn theo cách phân tán, song song, giúp ngăn ngừa tình trạng tắc nghẽn và đóng băng CPU.
Ứng dụng của điện toán GPU là gì?
Ứng dụng của điện toán GPU rất nhiều, sau đây là một số ứng dụng hàng đầu:
- Học máy và mạng nơ-ron
- Lập luận mờ
- Tin học sinh học
- mô hình phân tử
- Kết xuất video
- Tính toán hình học
- Nghiên cứu khí hậu và dự báo thời tiết
- Vật lý thiên văn
- Mật mã học
- Thị giác máy tính
- Bẻ khóa mật khẩu
- Nghiên cứu lượng tử
Xử lý GPU so với CPU
GPU và CPU đều xử lý dữ liệu số, nhưng chúng thực hiện theo những cách khác nhau. CPU hoặc bộ xử lý trung tâm được thiết kế để xử lý tuần tự ở tốc độ cao, trong khi GPU được thiết kế để xử lý song song ở tốc độ thấp hơn nhiều. Tất nhiên, CPU có thể sử dụng siêu phân luồng để có 2 luồng trên mỗi lõi hoặc thậm chí có hàng chục lõi, nhưng về cơ bản chúng là bộ xử lý tuần tự.
Trong khi CPU có thể có một vài lõi, GPU hiện đại có hàng nghìn lõi, ví dụ, Nvidia GeForceRTX 3090 có hơn 10K lõi. Tuy nhiên, để có lợi thế hơn CPU, dữ liệu phải có khả năng xử lý song song, chẳng hạn như xử lý luồng chứa hàng nghìn hình ảnh cùng một lúc.
GPU so với ASIC
ASIC là viết tắt của Application Specific Integrated Circuit, có nghĩa là nó chỉ có thể thực hiện một nhiệm vụ – tức là nhiệm vụ mà nó được thiết kế để thực hiện. ASIC là một cỗ máy độc đáo được phát triển từ đầu và đòi hỏi kiến thức chuyên môn về phần cứng để chế tạo. ASIC thường được sử dụng trong khai thác tiền điện tử vì chúng mang lại lợi ích xử lý song song tốt và hiệu quả hơn GPU.
Tuy nhiên, sự khác biệt chính giữa hai loại này là GPU linh hoạt hơn. Ví dụ, bạn có thể dễ dàng xây dựng một giàn khai thác tiền điện tử bằng GPU. Các bộ phận dễ dàng có sẵn và nếu bạn đã hoàn thành việc khai thác, bạn luôn có thể bán card GPU cho các game thủ hoặc thợ đào khác. Tuy nhiên, với ASIC, bạn chỉ có thể bán máy đã qua sử dụng cho các thợ đào khác, vì bạn hầu như không thể làm gì khác với nó.
Ngoài việc khai thác tiền điện tử, việc sở hữu một máy ASIC thậm chí còn khó khăn hơn vì chúng không phải là sản phẩm đại trà. Điều này trái ngược hoàn toàn với các hệ thống GPU mà bạn có thể tìm thấy ở mọi nơi và dễ dàng cấu hình.
GPU so với cụm máy tính
Trong khi một card GPU chứa hàng nghìn lõi, giúp tăng cường sức mạnh đáng kể cho bất kỳ máy tính nào bạn kết nối, về mặt lý thuyết, bạn có thể thêm bao nhiêu card GPU vào bo mạch chủ máy tính tùy theo khả năng xử lý của nó và tăng thêm khả năng xử lý của nó.
Mặt khác, cụm máy tính đề cập đến nhiều máy tính được kết nối mạng với nhau để hoạt động như một máy tính lớn - siêu máy tính. Mỗi máy tính trên mạng được gọi là một nút và có thể có một CPU đa lõi, cũng như một hoặc nhiều card GPU trên bo mạch.
Mỗi cụm phải có một nút chính, là máy tính phía trước chịu trách nhiệm quản lý và lập lịch cho các nút công nhân của cụm. Nó cũng sẽ chứa phần mềm phân bổ dữ liệu và chương trình cho các nút công nhân của cụm để tính toán và trả về kết quả.
Tăng tốc GPU so với siêu phân luồng
CPU được thiết kế để xử lý nhiều tác vụ cùng một lúc, và đó là lý do tại sao nó chạy ở tốc độ rất cao, lên lịch thời gian xử lý giữa các tiến trình đó. Tuy nhiên, khi nó gặp phải một chức năng tính toán chuyên sâu, thì nó có thể mất một thời gian trong vòng lặp trước khi quay lại các tiến trình khác. Điều này thường dẫn đến máy tính chậm lại nói chung và trường hợp tệ hơn là hệ thống bị đóng băng hoàn toàn.
Các nhà thiết kế máy tính có thể tránh được tình huống đáng sợ này bằng cách sử dụng siêu phân luồng hoặc tăng tốc GPU. Siêu phân luồng cho phép một lõi CPU hoạt động như hai luồng xử lý. Vì vậy, khi một luồng bị kẹt trong một vòng lặp tính toán chuyên sâu, luồng kia vẫn có thể giữ cho hệ thống hoạt động.
Máy tính hiện đại ngày nay có nhiều lõi từ 2 đến 4, 8, 16, 32, v.v. Thêm vào đó, chúng có tính năng siêu phân luồng, do đó CPU 2 lõi cung cấp 4 luồng, CPU 4 lõi cung cấp 8 luồng, v.v.
Siêu phân luồng với CPU đa lõi sẽ giải quyết hầu hết các vấn đề về điện toán, ngăn ngừa tình trạng tắc nghẽn và mang lại hiệu suất cao nhất với các trò chơi đơn giản, sản xuất nhạc và các dự án đồ họa, video và học máy nhỏ. Nhưng khi bạn cần nhiều năng lượng hơn thế, thì GPU thường là giải pháp phù hợp.
GPU hoặc tăng tốc phần cứng là khả năng của một ứng dụng phần mềm tận dụng sức mạnh xử lý song song của GPU để xử lý lượng lớn dữ liệu mà không làm chậm CPU. Nhiều ứng dụng chuyên nghiệp phụ thuộc vào khả năng tăng tốc của GPU để hoạt động tốt. Bao gồm các chương trình thiết kế/kết xuất video và hoạt hình, bộ mã hóa, mật mã, mạng nơ-ron lớn, v.v.
Cơ bản về lập trình GPGPU
Việc lập trình mục đích chung của GPU ban đầu được thực hiện bằng cách sử dụng DirectX và OpenGL thư viện. Tuy nhiên, chúng được thiết kế nghiêm ngặt cho mục đích phát triển đồ họa, do đó, bạn phải chuyển đổi dữ liệu của mình thành các mô hình giống đồ họa để có thể hoạt động.
May mắn thay, đã có những tiến bộ lớn trong GPGPU trong những năm qua, dẫn đến các thư viện, ngôn ngữ lập trình và khuôn khổ. Phổ biến nhất trong số các khuôn khổ này là CUDA từ Nvidia.
CUDA giúp bất kỳ nhà phát triển nào cũng có thể dễ dàng tham gia lập trình GPU mà không cần phải biết những điều cơ bản của lập trình GPU cổ điển. Nó cung cấp các tính năng nâng cao khả năng phát triển vượt ra ngoài đồ họa, với nhiều đơn vị thậm chí còn có các chức năng dành riêng cho máy học.
Các thư viện có sẵn cũng giúp bạn dễ dàng tạo các chương trình tăng tốc GPU mới từ đầu hoặc điều chỉnh các chương trình được viết sẵn để xử lý song song. Bạn chọn đúng thư viện, tối ưu hóa mã của mình cho các vòng lặp song song, biên dịch lại và thế là xong.
Lõi CUDA so với Bộ xử lý luồng
Thông thường, bạn sẽ bắt gặp các thuật ngữ Lõi Cuda và bộ xử lý dòng. Cả hai thuật ngữ chỉ đơn giản đề cập đến lõi GPU hoặc Đơn vị số học logic của một GPU. CUDA Core là công nghệ độc quyền của Nvidia, trong khi bộ xử lý Stream là của AMD.
Một thuật ngữ khác mà bạn có thể bắt gặp là Streaming Multi-Processor hay SM. Đây là một công nghệ khác của Nvidia ban đầu nhóm 8 lõi CUDA trên mỗi SM. Nó thực hiện 32 luồng warp cùng một lúc, sử dụng 4 chu kỳ xung nhịp cho mỗi lệnh. Các thiết kế mới hơn hiện có hơn 100 lõi trên mỗi bộ xử lý đa luồng streaming.
Ngôn ngữ & Thư viện GPU hàng đầu
Có rất nhiều thư viện và ngôn ngữ hoạt động trên cả nền tảng Nvidia CUDA và AMD. Sau đây chỉ là một vài thư viện và ngôn ngữ:
- Nvidia cuBLAS – Các chương trình con đại số tuyến tính cơ bản cho CUDA
- cuDNN – Thư viện mạng nơ-ron sâu
- OpenCL – Tiêu chuẩn mở cho lập trình song song
- Openmp – Dành cho GPU AMD
- HÔNG – Thư viện C++
- Nvidia cuRAND – Tạo số ngẫu nhiên
- cuFFT – Đối với biến đổi Fourier nhanh
- Nvidia NPP – Xử lý hình ảnh và tín hiệu 2D
- GPU VSIPL – Xử lý tín hiệu và hình ảnh vector
- OpenCV – Thư viện GPU cho thị giác máy tính
- mởACC – Ngôn ngữ phát triển song song
- trong PyCU – Python cho nền tảng CUDA
- TenorRT – Học sâu cho CUDA
- CUDA C++ – Ngôn ngữ C++ cho CUDA
- CUDAC – Ngôn ngữ C cho CUDA
- CUDA Fortran – CUDA dành cho các nhà phát triển FORTRAN
Các dự án cụm GPU hàng đầu
Tính đến tháng 2022 năm 8, 10 trong số XNUMX siêu máy tính nhanh nhất thế giới đều được tăng tốc bằng GPU. Tất cả chúng đều chia sẻ HĐH Linux và như sau:
| Cấp | Họ tên | Petaflops | Lõi CPU | GPU Cores | Công suất (kW) | Năm |
| 1. | Frontier | 1,102 | 591,872 | 8,138,240 | 21,100 | 2022 |
| 2. | PHÒNG | 151.90 | 75,264 | 1,034,880 | 2,900 | 2022 |
| 3. | Hội nghị thượng đỉnh | 148.6 | 202,752 | 2,211,840 | 10,096 | 2018 |
| 4. | Dãy núi | 94.64 | 190,080 | 1,382,400 | 7,438 | 2018 |
| 5. | lời cầu xin | 64.59 | N/A | N/A | 2,589 | 2021 |
| 6. | Selene | 63.46 | 71,680 | 483,840 | 2,646 | 2020 |
| 7. | thiên hà-2 | 61.445 | 427,008 | 4,554,752 | 18,482 | 2013 |
| 8. | địa chỉ | 46.1 | 21,632 | 297,440 | 921 | 2022 |
Kết luận
Khi đọc hết bài viết này về điện toán GPU và những thứ liên quan, hẳn bạn đã hiểu được sức mạnh và phạm vi của nó.
Để biết thêm thông tin, bạn có thể kiểm tra nền tảng nhà phát triển của Nvidia ở đây hoặc của AMD ở đây.




