2011-09-29 70 views
0

使用global_work_offset我的1000全球工作尺寸,但我想只將執行內核從200到1000在clEnqueueNDRangeKernel

size_t global_work_size = 1000; 
size_t global_work_offset = 200; 
clEnqueueNDRangeKernel(cpu_queue, kernel [0], 1, &global_work_offset, &global_work_size, NULL, 0, NULL, NULL); 

是它不計算整個0-1000範圍即使問題我指定一個偏移量。我試着使用:

size_t global_work_offset [1] = {200}; but still no luck. 

回答

2

你應該注意到在CL 1.0和1.1的參數之間的區別:

CL 1.0:

global_work_offset 當前必須是NULL值。在未來版本的OpenCL中,可以使用global_work_offset來指定一個無符號值數組,該無符號值描述用於計算工作項的全局ID的偏移量,而不是始終從 開始的全局ID偏移量(0 ,0,... 0)。

CL 1.1:

global_work_offset global_work_offset可以使用指定描述的偏移來計算一個工作項的全局 ID work_dim 的無符號值的陣列。如果global_work_offset爲NULL,則全局ID將以偏移量(0,0,... 0)開始 。

因此,請檢查您是否擁有CL 1.1設備和驅動程序。

相關問題