Tôi rất mới với lập trình GPGPU vì vậy xin vui lòng tha thứ cho tôi nếu câu hỏi không đặc biệt phù hợp. Từ những gì tôi hiểu lập trình GPU là một phần rất phức tạp của công việc kỹ thuật khi so sánh với lập trình CPU thông thường. Người ta phải rất cẩn thận về các vấn đề phân kỳ, ốp lát, cấp phát bộ nhớ được ghim và tính toán giao tiếp / thiết bị máy chủ chồng chéo.
Sau khi thực hiện một chút nghiên cứu, tôi tìm thấy thư viện lực đẩy dường như cố gắng bắt chước C ++ STL. Điều này là khá tốt đẹp. Tuy nhiên, dựa trên kinh nghiệm rất hạn chế của tôi và đã thấy tất cả các quản lý vi mô cần thiết để có được hiệu suất tốt, tôi hơi nghi ngờ về hiệu suất. Lực đẩy có thể xử lý hiệu quả tất cả các phần lập trình phức tạp trong nội bộ? Một số thư viện rất nổi tiếng, chẳng hạn như PETSc, dường như sử dụng gói này khiến tôi tin rằng bằng cách nào đó nên có.
Tôi đã tự hỏi nếu những người có nhiều kinh nghiệm hơn về CUDA và lực đẩy có thể nói một hoặc hai về hiệu suất của gói khi so sánh với chương trình CUDA cấp thấp. Khi nào tôi có thể sử dụng lực đẩy và khi nào tôi nên chuyển về CUDA?