2017-01-17 16 views
7

Tôi đang cố gắng để hồ sơ ứng dụng OpenCL, a.out, trong một hệ thống với NVIDIA TITAN X và CUDA 8.0.Cách để hồ sơ ứng dụng OpenCL với CUDA 8.0 nvprof

Nếu đó là ứng dụng CUDA, nvprof ./a.out sẽ là đủ. Nhưng tôi thấy điều này không hoạt động với ứng dụng OpenCL, với một thông báo "Không có hạt nhân nào được lược tả."

Cho đến khi CUDA 7.5, tôi đã sử dụng thành công COMPUTE_PROFILE=1 sau this. Thật không may, tài liệu nói rằng "Hỗ trợ cho trình biên dịch dòng lệnh bằng biến môi trường COMPUTE_PROFILE đã bị loại bỏ trong bản phát hành CUDA 8.0."

Câu hỏi đặt ra là có cách nào khác ngoài việc hạ cấp CUDA xuống hồ sơ ứng dụng OpenCL với nvprof không?

+0

Bạn có đang gọi 'clReleaseContext 'trong ứng dụng của mình không? – talonmies

+0

@talonmies Có, nó gọi đúng chức năng phát hành cho ngữ cảnh, hàng đợi, chương trình, hạt nhân và đối tượng bộ nhớ. – csehydrogen

Trả lời

4

Theo hiểu biết tốt nhất của tôi, nvprof chưa bao giờ hỗ trợ hồ sơ OpenCL.

Mã chạy với COMPUTE_PROFILE=1 gọi cơ chế lược tả dựa trên trình điều khiển trước khi giới thiệu nvprof. Cơ chế dựa trên trình điều khiển đó đã bị phản đối một thời gian trước và hiện đã bị xóa khỏi CUDA 8 có lợi cho việc sử dụng nvprof.

Kết quả là, có vẻ như không có cách nào để cấu hình mã OpenCL chạy trên phần cứng NVIDIA bằng bộ công cụ CUDA.

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