Tài liệu CUDA không xác định số lượng quy trình CUDA có thể chia sẻ một GPU. Ví dụ: nếu tôi khởi chạy nhiều chương trình CUDA bởi cùng một người dùng chỉ với một thẻ GPU được cài đặt trong hệ thống, hiệu ứng đó là gì? Nó sẽ đảm bảo tính chính xác của việc thực hiện? Làm thế nào để các nhiệm vụ lịch trình GPU trong trường hợp này?Chạy nhiều ứng dụng CUDA trên một GPU
Trả lời
Hoạt động CUDA từ các quy trình lưu trữ độc lập thường sẽ tạo CUDA contexts độc lập, một cho mỗi quy trình. Do đó, hoạt động CUDA được khởi chạy từ các quá trình lưu trữ riêng biệt sẽ diễn ra trong các bối cảnh CUDA riêng biệt, trên cùng một thiết bị.
Hoạt động CUDA trong các ngữ cảnh riêng biệt sẽ được đăng theo thứ tự. GPU sẽ thực thi hoạt động từ một quá trình và khi hoạt động đó không hoạt động, nó có thể và sẽ chuyển ngữ cảnh sang ngữ cảnh khác để hoàn thành hoạt động CUDA được khởi chạy từ quá trình khác. Hành vi lập lịch liên vùng chi tiết không được chỉ định. (Chạy nhiều bối cảnh trên một GPU đơn lẻ cũng không thể vi phạm các giới hạn GPU cơ bản, chẳng hạn như khả năng bộ nhớ cho phân bổ thiết bị.)
Trường hợp này (serialization hoạt động GPU từ các quy trình host độc lập) sẽ là CUDA Máy chủ đa quy trình. Tóm lại, MPS hoạt động như một "kênh" để thu thập hoạt động CUDA phát ra từ một số quy trình lưu trữ và chạy hoạt động đó như thể nó phát ra từ một quy trình lưu trữ đơn lẻ. Lợi ích chính là tránh serialization of kernels which might otherwise be able to run concurrently. Trường hợp sử dụng hợp lý sẽ là để khởi chạy nhiều cấp bậc MPI mà tất cả đều có ý định sử dụng một tài nguyên GPU duy nhất.
Lưu ý rằng mô tả ở trên áp dụng cho các GPU nằm trong "Mặc định" compute mode. Các GPU trong chế độ tính toán "Exclusive Process" hoặc "Exclusive Thread" sẽ từ chối mọi nỗ lực tạo nhiều hơn một quy trình/ngữ cảnh trên một thiết bị duy nhất. Ở một trong các chế độ này, các nỗ lực của các quá trình khác để sử dụng một thiết bị đã được sử dụng sẽ dẫn đến một lỗi CUDA báo cáo lỗi. Chế độ tính toán có thể sửa đổi được trong một số trường hợp bằng cách sử dụng nvidia-smi utility.
- 1. Sử dụng nhiều GPU CUDA
- 2. Tính toán Multi-GPU Cuda
- 3. Khởi chạy đồng thời nhiều hạt nhân bằng CUDA cho GPU
- 4. SLI cho nhiều GPU
- 5. Chạy mã C# trên GPU
- 6. Làm cách nào để chạy mã MATLAB trên GPU bằng CUDA?
- 7. Đồng thời, 4 Ứng dụng CUDA cạnh tranh để nhận tài nguyên GPU
- 8. lệnh đỉnh cho GPU đang sử dụng CUDA
- 9. Kiểm tra xem mã đang chạy trên GPU hay CPU
- 10. Sử dụng gói GPU của R trên Amazon
- 11. CUDA: cách sử dụng lực đẩy :: sort_by_key trực tiếp trên GPU?
- 12. Cuda - OpenCL CPU 4x nhanh hơn so với OpenCL hoặc CUDA phiên bản GPU
- 13. Nhiều chủ đề khởi chạy các hạt nhân CUDA riêng lẻ
- 14. chương trình cuda trên VMware
- 15. Bản chạy Android có thể chạy trên GPU không?
- 16. Cách bật Keras với Theano để sử dụng nhiều GPU
- 17. Cách tách mã CUDA thành nhiều tệp
- 18. sử dụng cơ bản nhiều GPU
- 19. Tensorflow không sử dụng GPU
- 20. Cách chọn thiết bị khi chạy tệp thực thi CUDA?
- 21. Tại sao mã CUDA chạy nhanh hơn rất nhiều trong NVIDIA Visual Profiler?
- 22. angular.bootstrap để chạy nhiều ứng dụng góc
- 23. TensorFlow - Sử dụng GPU thấp trên Titan X
- 24. OpenCV trên iOS - Sử dụng GPU?
- 25. Máy tính GPU song song sử dụng OpenCV
- 26. Lập trình GPU?
- 27. TensorFlow: Cách xác minh rằng nó đang chạy trên GPU
- 28. Bộ nhớ phân bổ động trên GPU
- 29. Các chức năng GPU trên OpenCV 3.0 ở đâu?
- 30. Nhân ma trận lớn trên gpu