2010-09-14 25 views
6

Điều gì sẽ xảy ra nếu có bốn Ứng dụng CUDA đồng thời cạnh tranh với tài nguyên trong một GPU để chúng có thể tải công việc lên thẻ đồ họa ?. Các Hướng dẫn lập trình CUDA 3.1 đề cập rằng có là một số phương pháp mà không đồng bộ:Đồng thời, 4 Ứng dụng CUDA cạnh tranh để nhận tài nguyên GPU

  • Kernel ra mắt
  • bộ nhớ điện thoại
  • Device bản
  • bản bộ nhớ thiết bị máy chủ của một khối bộ nhớ 64 KB hoặc ít hơn
  • Bản sao bộ nhớ được thực hiện theo các chức năng được gắn với Async
  • Chức năng bộ nhớ gọi

Cũng như nó đề cập rằng các thiết bị có khả năng tính toán 2.0 có thể thực hiện đồng thời nhiều hạt nhân miễn là các hạt nhân thuộc cùng một ngữ cảnh.

Loại đồng thời này chỉ áp dụng cho luồng trong một ứng dụng cuda đơn lẻ nhưng không thể khi có các ứng dụng hoàn chỉnh khác nhau yêu cầu tài nguyên GPU ?? Điều này có nghĩa là sự hỗ trợ đồng thời chỉ có sẵn trong 1 ứng dụng (bối cảnh ???) và rằng 4 ứng dụng sẽ chỉ chạy đồng thời theo cách mà các phương thức có thể bị chồng chéo bởi chuyển đổi ngữ cảnh trong CPU, nhưng 4 ứng dụng ứng dụng nào cần đợi cho đến khi GPU được giải phóng bởi các ứng dụng khác? (tức là khởi động hạt nhân từ app4 chờ cho đến khi khởi chạy hạt nhân từ app1 hoàn thành ..)

Nếu 4 ứng dụng này có thể truy cập tài nguyên GPU mà không phải chịu thời gian chờ đợi lâu?

Trả lời

4

Như bạn đã nói chỉ có một "ngữ cảnh" có thể chiếm từng động cơ tại bất kỳ thời điểm nào. Điều này có nghĩa là một trong các công cụ sao chép có thể phục vụ memcpy cho ứng dụng A, một memcpy khác cho ứng dụng B, và công cụ tính toán có thể thực thi hạt nhân cho ứng dụng C (ví dụ).

Ứng dụng thực sự có thể có nhiều ngữ cảnh, nhưng không có hai ứng dụng nào có thể chia sẻ cùng một ngữ cảnh (mặc dù chuỗi trong một ứng dụng có thể chia sẻ ngữ cảnh). Bất kỳ ứng dụng nào lên kế hoạch hoạt động để chạy trên GPU (tức là bản ghi nhớ hoặc khởi chạy hạt nhân) có thể lên lịch công việc không đồng bộ để ứng dụng tự do tiếp tục và thực hiện một số công việc khác trên CPU và nó có thể lên lịch bất kỳ số lượng tác vụ nào để chạy trên GPU.

Lưu ý rằng nó cũng có thể đưa các GPU trong chế độ độc quyền trong đó chỉ có một bối cảnh có thể hoạt động trên GPU bất cứ lúc nào (ví dụ: tất cả các nguồn lực được dành riêng cho bối cảnh cho đến bối cảnh bị phá hủy). Mặc định là chế độ được chia sẻ.

+0

xin chào Tom. Tôi đang làm việc trên vài dự án cuda và tìm kiếm đối tác. bạn có mong muốn cộng tác không? ngay bây giờ tôi đang làm việc tích hợp ublas và cublas – Anycorn

Các vấn đề liên quan