3
我是一名新的OpenCL程序員,對於如何設置工作組大小感到困惑。這是設置工作組大小的正確方法:什麼是__attribute __((reqd_work_group_size(X,Y,Z)))用於?
- 在主機代碼中設置local_work_size參數
clEnqueueNDRangeKernel
。 - 在內核代碼中使用
__attribute__((reqd_work_group_size(X, Y, Z)))
。 - 同時使用。
- 別的
因此設置工作組大小是硬代碼,對吧?無論如何要動態設置工作組大小? – ThSorn
您可以在內核編譯時將它作爲#define傳遞(並且可以在運行時或事先編譯各種預定義的大小並在運行時交換),但據我所知,您不能擁有一個真實的動態調整大小的本地數組 –
您可以將本地緩衝區作爲內核參數傳遞,並使用'clSetKernelArg'在入列NDRange時調整大小。這使得它在NDRange之間變得動態。 – Tim