Việc phát hành GPUPrefixSums , một thư viện toàn diện triển khai các thuật toán prefix sum GPU tiên tiến nhất, đã khơi mào một cuộc thảo luận thú vị trong cộng đồng phát triển về việc ứng dụng nào của nguyên hàm điện toán song song cơ bản này quan trọng nhất trong bối cảnh công nghệ ngày nay.
Cộng đồng khen ngợi việc triển khai đa nền tảng
Các nhà phát triển đặc biệt hào hứng với khả năng hỗ trợ nền tảng rộng rãi và tính hữu dụng thực tế của thư viện. Dự án cung cấp các triển khai trên nhiều môi trường bao gồm D3D12 , CUDA , Unity , và thậm chí cả phiên bản thử nghiệm WGPU . Một nhà phát triển lưu ý rằng cả thư viện này và dự án GPUSorting liên quan đều rất hữu ích, đặc biệt là vì các giải pháp hiện có như CUB không hoạt động tốt với CUDA Driver API .
Sức hấp dẫn của thư viện vượt ra ngoài việc chỉ cung cấp mã hoạt động. Nó đưa các kỹ thuật nghiên cứu tiên tiến vào các compute shader thực tế, di động mà các nhà phát triển thực sự có thể sử dụng trong dự án của họ. Điều này thu hẹp khoảng cách thường gây khó chịu giữa nghiên cứu học thuật và triển khai thực tế.
Hỗ trợ Nền tảng:
- D3D12: Triển khai đầy đủ với khảo sát mở rộng về kích thước wave/subgroup
- CUDA: Dành cho mục đích đánh giá hiệu năng và demo (khuyến nghị sử dụng thông qua thư viện CUB cho môi trường sản xuất)
- Unity: Phát hành dưới dạng gói Unity cho Unity 2021.3.35f1 trở lên
- WGPU: Triển khai thử nghiệm cơ bản chỉ dành cho mục đích kiểm thử
Đổi mới kỹ thuật: Decoupled Fallback
Một tính năng nổi bật tạo ra sự quan tâm là kỹ thuật Decoupled Fallback , giải quyết một vấn đề quan trọng trong điện toán GPU . Khi các thread block bị kẹt chờ đợi các hoạt động trước đó, phương pháp này cho phép chúng quay trong một số chu kỳ nhất định trước khi thực hiện hoạt động dự phòng. Nhiều thread block có thể cùng lúc thử các hoạt động dự phòng, nhưng các hoạt động atomic đảm bảo chỉ một hoạt động thành công trong việc phát sóng kết quả.
Đổi mới này đặc biệt hứa hẹn cho các GPU Apple M-series , mặc dù những phát triển hiện tại nhất đang diễn ra trong một dự án riêng biệt có tên Valhalla . Kỹ thuật này đại diện cho một giải pháp thực tế cho bản chất không thể dự đoán của việc lập lịch GPU trên các nhà cung cấp phần cứng khác nhau.
Các Triển Khai Thuật Toán:
- Quét Cơ Bản: Kogge-Stone , Sklansky , Brent-Kung , Reduce Scan , Raking Reduce-Scan
- Quét Đồng Bộ Warp: Nhiều biến thể bao gồm các triển khai Warp-Sized-Radix
- Các Mẫu Cấp Thiết Bị: Reduce-Then-Scan , Chained Scan với Decoupled Lookback
- Kỹ Thuật Mới: Decoupled Fallback để cải thiện độ tin cậy trên các thiết bị không có đảm bảo
Tranh luận sôi nổi về các ứng dụng thực tế
Thông báo này đã khơi mào một cuộc tranh luận đầy đam mê đáng ngạc nhiên về việc ứng dụng prefix sum nào quan trọng nhất trong điện toán hiện đại. Trong khi tài liệu thư viện đề cập đến các ứng dụng trong sắp xếp, nén và duyệt đồ thị, các thành viên cộng đồng đã tranh luận về các ưu tiên.
Một số nhà phát triển ủng hộ radix sorting là ứng dụng quan trọng nhất, đặc biệt cho các ứng dụng đồ họa như Gaussian Splatting nơi việc sắp xếp dựa trên GPU là thiết yếu. Những người khác lập luận rằng các hoạt động ma trận thưa - cơ bản cho mọi thứ từ dự báo thời tiết đến huấn luyện các mô hình ngôn ngữ lớn - đại diện cho trường hợp sử dụng quan trọng nhất.
Phép nhân ma trận chỉ là siêu cơ bản đối với thế giới hiện đại.
Cuộc thảo luận tiết lộ cách các lĩnh vực khác nhau ưu tiên các ứng dụng khác nhau. Các nhà phát triển game tập trung vào hệ thống phân vùng không gian và quản lý đơn vị, trong khi các chuyên gia điện toán khoa học nhấn mạnh phép nhân ma trận thưa cho các quy trình mô phỏng và machine learning .
Câu hỏi về hiệu suất và cân nhắc thực tế
Bất chấp sự nhiệt tình, các câu hỏi thực tế vẫn còn về việc khi nào phương pháp dựa trên GPU có ý nghĩa. Các nhà phát triển tò mò về điểm hòa vốn nơi prefix sum GPU vượt trội hơn các triển khai CPU , xem xét chi phí overhead thiết lập. Đối với nhiều trường hợp sử dụng, quyết định không phải về hiệu suất thô mà là sự cần thiết - khi dữ liệu đã nằm trên GPU , việc sao chép sang CPU và quay lại trở nên cực kỳ tốn kém.
Việc kiểm tra của thư viện đã bị giới hạn ở các kích thước wave là 4, 16, 32 và 64 do các ràng buộc phần cứng, và triển khai WGPU vẫn còn ở dạng thử nghiệm. Những hạn chế này làm nổi bật những thách thức đang diễn ra trong việc tạo ra các giải pháp GPU compute thực sự di động trên các hệ sinh thái phần cứng đa dạng.
Dự án GPUPrefixSums đại diện cho cả thành tựu kỹ thuật và nhu cầu cộng đồng, cung cấp cho các nhà nghiên cứu và phát triển những công cụ trước đây chỉ giới hạn trong các bài báo học thuật hoặc triển khai độc quyền.
Tham khảo: GPU Prefix Sums