如何在 openCL 的内核调用中指定数字多维
How to specify number multidimension in kernel call in openCL
在cuda中,我们可以做这样的事情:
my_kernel<<< n_x,n_y >>>(...)
OpenCL 中的等价物是什么?
这是通过指定"全局工作大小"参数来完成的。
size_t work_sizes[] = {1024, 1024, 64};
clEnqueueNDRangeKernel(queue, kernel, 3, nullptr, work_sizes, nullptr, 0, nullptr, nullptr);
如果您更喜欢C++成语:
std::vector<size_t> work_sizes = {1024, 1024, 64};
clEnqueueNDRangeKernel(queue, kernel, work_sizes.size(), nullptr, work_sizes.data(), nullptr, 0, nullptr, nullptr);
大多数 OpenCL 实现最多只支持 3 个维度的工作项,但如果实现支持更多,则可以指定允许的数量。显然,如果您只使用工作项的单个维度,这也很容易指定:
std::vector<size_t> work_sizes = {16777216};
clEnqueueNDRangeKernel(queue, kernel, work_sizes.size(), nullptr, work_sizes.data(), nullptr, 0, nullptr, nullptr);
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 什么时候调用组成单元对象的析构函数
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 函数调用中参数的顺序重要吗
- 当我尝试在 Main 中调用插入函数时,它不是取数字?
- 如何在 openCL 的内核调用中指定数字多维
- 随机函数在循环中调用时返回相同的数字!C++
- 从C 到C#调用INT []显示随机大数字,而不是原始数组成员
- 如何直接获取rand()序列中的第n个数字,而不必调用rand(()n次
- 如何调用一个变量(包含rand()函数)并得到不同的数字
- MaxHeaify调用产生的数字不在原始数组中
- 使用boost数字绑定和对gesvd的lapack调用时出错
- 方法调用C++/数字参数不匹配
- Rand() 是相同的数字生成器,即使我调用了 srand(time(NULL))
- 调用函数时,是否可以在被调用函数的名称后面附加一个数字或字符
- 如何将数字"Bind"到一串单词/短语中,以便我可以循环调用它?
- 在c++ /Qt中拆分Lua函数调用的混合字符串/数字参数列表
- 用于验证值的函数在调用 1 位数字时返回 true,但当其 2 位或更多时,即使为 true 也返回 false