- GPU mạnh hơn CPU 10~100 lần, nhưng gặp khó khăn trong việc xử lý tác vụ động và thiếu công cụ lập trình song song, nên chưa thể khai thác đầy đủ hiệu năng trong các tác vụ thông thường
- Trước đây từng có các thiết kế máy tính song song như Connection Machine, Cell, Larrabee, nhưng đã thất bại do độ phức tạp của mô hình lập trình và các nguyên nhân tương tự
- GPU hiện đại khó tối ưu hiệu năng vì vấn đề quản lý bộ nhớ và mô hình thực thi phức tạp, cần một cấu trúc truyền dữ liệu hiệu quả dựa trên hàng đợi
- Các kiến trúc mới như bộ tăng tốc AI và cụm lõi song song có thể vượt qua các giới hạn của GPU
- Sự phát triển của máy tính song song vẫn còn dang dở, và cần cải thiện mô hình thực thi đơn giản, hiệu quả cùng các công cụ lập trình
Hiệu năng mạnh mẽ và giới hạn của GPU
- GPU mạnh hơn CPU khoảng 10~100 lần (tùy loại tác vụ)
- Hiệu năng này đang được tận dụng tốt trong dựng hình đồ họa thời gian thực và machine learning
- Tuy nhiên, hiệu năng GPU vẫn chưa được khai thác đầy đủ trong các tác vụ thông thường
Nguyên nhân giới hạn của GPU
- Mô hình thực thi nghèo nàn
- GPU mạnh với dữ liệu lớn có tính dự đoán cao (ví dụ: nhân ma trận đặc), nhưng hiệu năng giảm với tác vụ động
- Thiếu ngôn ngữ và công cụ
- Bản thân việc lập trình cho máy tính song song đã rất khó
Độ phức tạp ngày càng tăng
- GPU mới nhất đang tăng độ phức tạp rất nhanh
- Các tính năng mới như mesh shaders, work graphs đã được đưa vào, nhưng một số tác vụ cơ bản vẫn chưa được hỗ trợ
Vấn đề hiệu quả bộ nhớ phức tạp của GPU
- Tác giả đang phát triển một trình dựng đồ họa vector 2D cao cấp tên là Vello
- CPU tải mô tả cảnh (định dạng SVG) lên → compute shader xử lý rồi tạo ảnh
- Vấn đề: khó khăn trong quản lý bộ nhớ
- Khó dự đoán kích thước buffer để lưu kết quả trung gian
- Khi tràn buffer, thao tác đọc từ GPU về CPU gây suy giảm hiệu năng
Đề xuất giải pháp
- Cải tiến để truyền kết quả thông qua queue bên trong GPU
Các thiết kế máy tính song song trong quá khứ
-
Connection Machine (1985)
- Máy tính song song với 64k bộ xử lý được kết nối bằng mạng hypercube
- Mỗi bộ xử lý có hiệu năng thấp nhưng có thể xử lý song song ở quy mô lớn
- Đóng góp lớn cho nghiên cứu thuật toán song song
-
Cell (2006, PS3)
- Máy tính song song được tích hợp trong PS3 (xuất xưởng khoảng 87,4 triệu máy)
- 8 lõi song song có thể thực hiện tính toán độc lập
- Nguyên nhân thất bại là độ phức tạp của mô hình lập trình
-
Larrabee (2008)
- Được phát triển như một máy tính song song dựa trên x86
- Lý do thất bại: mức tiêu thụ điện năng và thiếu hỗ trợ phần mềm
- Sau này dẫn đến Xeon Phi và tập lệnh AVX-512
Khối lượng công việc đang thay đổi
- Ngay cả trong game, tỷ trọng tác vụ tính toán cũng đang tăng lên
- Với Starfield, khoảng 50% tổng thời gian xử lý là tính toán
- Trình dựng Nanite cũng xử lý việc raster hóa các tam giác nhỏ bằng tính toán
Hướng phát triển trong tương lai
-
1. Mở rộng cụm lõi (sự trở lại của Cell)
- Các CPU cao cấp hiện đại chứa hơn 100 tỷ transistor
- Có thể tạo ra chip chứa hàng trăm đến hàng nghìn lõi RISC đơn giản, tiết kiệm điện
- Các bộ tăng tốc AI đã áp dụng kiến trúc tương tự
-
2. Thực thi lệnh Vulkan trên GPU
- Hỗ trợ cho phép thực thi trực tiếp lệnh Vulkan trên GPU
- Hiện mới chỉ được triển khai hạn chế trong một số extension của Vulkan
-
3. Work Graph
- Chương trình được cấu thành từ các nút (kernel) và cạnh (queue)
- Có thể chạy song song nhưng tồn tại các hạn chế sau
- Khó thực hiện thao tác join
- Không đảm bảo thứ tự sắp xếp của các phần tử
- Không hỗ trợ phần tử có kích thước biến đổi
-
4. Tiến hóa theo hướng hợp nhất với CPU
- Thiết kế CPU hiệu năng cao có thể được tối ưu cho xử lý song song
- Hiệu năng tính toán song song và xử lý SIMD (single instruction, multiple data) đang được cải thiện
-
5. Có thể phần cứng đã sẵn sàng
- Một số GPU đã có bộ xử lý lệnh có thể chạy mã do người dùng viết
- Nếu bộ xử lý lệnh được mở hoàn toàn, có thể sẽ cải thiện hiệu năng
Vấn đề độ phức tạp
- Kiến trúc GPU quá phức tạp
- Trộn lẫn giữa máy tính song song + phần cứng chuyên dụng + cấu trúc xử lý lệnh
- Các vấn đề tương thích giữa nhiều API và driver
- Trong khi đó, CPU tiếp tục cải thiện hiệu năng dựa trên tập lệnh đơn giản
Kết luận
- Sự phát triển của máy tính song song vẫn chưa hoàn thiện
- Để GPU được tối ưu cho cả các tác vụ thông thường ngoài đồ họa và AI, cần có
- Mô hình thực thi đơn giản
- Dễ lập trình
- Mức tiêu thụ điện năng thấp
- Trong các công việc như trình dựng 2D cao cấp như Vello, khi đó mới có thể tận dụng trọn vẹn hiệu năng của máy tính song song
- Cần một kiến trúc máy tính song song mới để vượt qua các giới hạn hiệu năng của GPU
1 bình luận
Ý kiến Hacker News
"Tin rằng có hai yếu tố chính đang cản trở điều này"
Mô hình lập trình vào năm 2025 là không hiệu quả
Kinh nghiệm làm việc tại một công ty "đưa hàng trăm CPU nhỏ lên một con chip duy nhất"
GPU mạnh hơn CPU từ 10 đến 100 lần
Ý kiến về việc xây dựng siêu máy tính bằng M4 Mac mini
Các vấn đề của máy tính song song
Không rõ vì sao trình dựng hình 2D cần GPU
Có nhiều nhắc đến Larabee nhưng không nhắc đến Xeon Phis
Những đánh đổi cho phép GPU đạt thông lượng cao