Tôi là người mới bắt đầu trong lập trình song song. Tôi có một truy vấn mà có thể có vẻ là ngớ ngẩn nhưng tôi đã không nhận được một câu trả lời dứt khoát khi tôi googled nó ra.GPU đọc từ CPU hoặc CPU ghi vào GPU?
Trong tính toán GPU, có một thiết bị tức là GPU và máy chủ, tức là CPU. Tôi đã viết một chương trình hello world đơn giản sẽ phân bổ một số bộ nhớ trên gpu, truyền hai tham số (nói src [] và dest []) cho kernel, sao chép chuỗi src tức là Hello world to dest string và lấy chuỗi dest từ gpu đến máy chủ.
Chuỗi có phải là "src" được đọc bởi GPU hoặc CPU ghi vào GPU không? Ngoài ra khi chúng tôi lấy lại chuỗi từ GPU, GPU có viết được bằng CPU hay CPU đọc từ GPU không?
Trong chuyển dữ liệu qua lại có thể có bốn khả năng 1. CPU GPU - CPU ghi vào GPU - GPU đọc dạng CPU 2. GPU để CPU - GPU ghi vào CPU - CPU đọc từ GPU
Ai đó có thể giải thích điều nào trong số này là có thể và không?
nào, thông qua bộ điều khiển đồng bộ khác nhau nắm để DMA (http://en.wikipedia.org/wiki/Direct_memory_access). – Ani
Cảm ơn rất nhiều. Thật tuyệt khi biết rằng GPU cũng có thể khởi tạo các giao dịch. Vì vậy, có cách nào để biết ai thực sự bắt đầu các giao dịch bằng cách sử dụng bất kỳ thói quen thư viện trong Opencl? hoặc các thói quen sử dụng mà tôi có thể ép buộc CPU hoặc GPU để thực hiện giao dịch ..? – Nike
Tôi không biết OpenCL cũng như tôi nên; đó đang được nói, tôi sẽ ngạc nhiên nếu CUDA không cung cấp cho bạn một số * * cách để kiểm tra nơi một biến sống trong không gian địa chỉ ảo thống nhất. Loại thông tin đó có thể hữu ích, ngay cả bên ngoài trường hợp sử dụng các giao dịch được quản lý rõ ràng (các phiên bản mới hơn sẽ vẫn hỗ trợ). – Patrick87