Tôi có một ứng dụng mà tôi muốn chia sẻ một GPU giữa nhiều quy trình. Tức là, mỗi quá trình này sẽ tạo ra bối cảnh CUDA hoặc OpenCL của riêng mình, nhắm mục tiêu cùng một GPU. Theo giấy trắng Fermi [1], việc chuyển đổi bối cảnh ở cấp ứng dụng nhỏ hơn 25 micro giây, nhưng các lần khởi chạy được tuần tự hóa một cách hiệu quả khi chúng khởi chạy trên GPU - vì vậy Fermi sẽ không hoạt động tốt cho điều này. Theo giấy trắng Kepler [2], có một cái gì đó gọi là Hyper-Q cho phép lên tới 32 kết nối đồng thời từ nhiều luồng CUDA, các quá trình MPI hoặc các luồng trong một tiến trình.Thực hiện hạt nhân GPU đồng thời từ nhiều quá trình
Câu hỏi của tôi: Có ai đã thử điều này trên GPU Kepler và xác minh rằng hạt nhân của nó được chạy đồng thời khi được lên lịch từ các quy trình riêng biệt? Đây có phải chỉ là một tính năng của CUDA hay nó cũng có thể được sử dụng với OpenCL trên GPU Nvidia? GPU của AMD có hỗ trợ tương tự không?
[2] http://www.nvidia.com/content/PDF/kepler/NVIDIA-Kepler-GK110-Architecture-Whitepaper.pdf
Trong câu trả lời cho câu hỏi đầu tiên bạn đặt ra, nvidia đã xuất bản một số kết quả siêu Q trong một blog [ở đây] (http://blogs.nvidia.com/2012/08/unleash-legacy-mpi-codes-with -keplers-hyper-q /). –
Thú vị, cảm ơn liên kết. Bài đăng trên blog đó cũng ngụ ý rằng các GPU K10 không có Hyper-Q, trong khi K20 sẽ có. –
Đúng vậy. Bạn sẽ lưu ý liên kết giấy trắng Kepler bạn đã đăng tham chiếu "GK110" trong tiêu đề. GPU trên K20 là GK110. GPU trên K10 là GK104 (hai trong số đó). –