2010-09-16 24 views
5

Tôi muốn sử dụng #include statement trong kernel OpenCL nhưng nó xuất hiện trình biên dịch OpenCL của Apple lưu trữ kernel, vì vậy nếu bạn thay đổi nội dung của một tệp được bao gồm nhưng không phải tệp đang thực hiện, chương trình sẽ không thay đổi giữa các lần chạy.Làm cách nào để buộc trình biên dịch OpenCL của Apple biên dịch lại một hạt nhân đã lưu trong bộ nhớ cache?

Tôi đã được mã hóa lên một ví dụ minh họa này: http://github.com/enjalot/adventures_in_opencl/tree/master/experiments/inc/

Nếu bạn biên dịch và chạy, nó sẽ hoạt động tốt. Sau đó, nếu bạn nhận xét ra định nghĩa struct trong inc.cl nó sẽ vẫn chạy tốt (hoặc thay đổi bất cứ điều gì trong lvl2.cl)

Sử dụng trình biên dịch NVIDIA trên Ubuntu bạn nhận được hành vi mong đợi.

Vì vậy, có cách nào đó để buộc clBuildProgram biên dịch lại hạt nhân không?

Trả lời

3

tôi nhận được câu trả lời từ danh sách gửi thư [email protected]

sudo killall cvmsServ

Không có vẻ rất duyên dáng, nhưng cũng oh

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