首页 > 解决方案 > 如何在 OpenCL 中分配本地工作项大小

问题描述

我在 OpenCL 中设置了一个卷积核,将 228x228x3 图像与 11x11x3x96 权重进行卷积以生成 55x55x96 过滤器。

我的代码没有分配 localWorkSize 可以完美运行,但是当我分配它时,我开始收到错误

因此,我的问题是,

1) 当我将 localWorkSize 设置为 NULL 时,启动了多少线程?我猜这是隐含的,但有没有办法得到这些数字?

2)我应该如何分配 localWorkSize 以避免错误?


//When localWorkSize is NULL

size_t globalWorkSize[3] = {55,55,96}; 

//Passing NULL for localWorkSize argument 

errNum = clEnqueueNDRangeKernel(command_queue, kernel,3,NULL,globalWorkSize, NULL,0, NULL,&event);

//WORKS PERFECTLY
// When I set localWorkSize

size_t globalWorkSize[3] = {55,55,96}; 
size_t localWorkSize[3] = {1,1,1};

errNum = clEnqueueNDRangeKernel(command_queue, kernel,3,NULL,globalWorkSize, localWorkSize,0, NULL,&event);

//ERROR CONTEXT CODE 999

我只是想了解当 localWorkSize 为 Null 并且描述 GlobalWorkSize 时创建了多少线程

标签: openclopencl-c

解决方案


推荐阅读