OpenCl内核代码
OpenCl kernel code
我是OpenCL的新手(今天开始)。我很难实现以以下方式添加数组数字的内核代码:如果一个[]=[1,2,3,4,5,6,7,8,9,10),然后和应该和[]= [4 10 16];
i.e, sum[i]=A[i]+A[i+2];
i=i+3;
我已经尝试了下面的代码,但它似乎不工作。
std::string kernel_code =
" void kernel simple_add(global const int* A, global const int* B, global int* C){ "
" int x =0;"
" int i =get_global_id(0);"
" SUM[x]=A[i]+A[i+2];"
" i=i+3;
" x++;"
" } ";
我肯定这不是做这件事的方法。欢迎在这方面提出建议。
您应该计算i,就好像工作项是集合中唯一的工作项一样。Gid是工作项的全局id, I需要是它的三倍。在使用gid或i之后,也不需要修改它们。这不是最优的,但它会给你正确的答案。
void kernel simple_add(global const int* A, global const int* SUM){
int gid = get_global_id(0);
int i = gid * 3;
SUM[gid]=A[i]+A[i+2];
}
相关文章:
- 有关矩阵的代码错误导致分段错误(内核转储)
- 如何提高此 OpenCL 缩减内核代码的性能?
- 内核代码中矩阵的CUDA多乘法
- 如何在张量流内核代码中更改变量类型张量中的值
- 张量流内核代码修改
- 为什么在循环中重复一个内核会使CUDA代码明显较慢
- 为什么这C++代码没有达到一个内核的 100% 使用率?
- 简单的Thrust代码的执行速度大约是我的cuda内核的一半.我用Thrust错了吗
- Arduino触摸代码在spark内核中不起作用
- c++ Cuda 代码未运行内核
- OpenCL:x86 和 x64 版本的不同工作内核代码
- 如何从主机代码中断或取消 CUDA 内核
- 设备内存空间中的 CUDA 程序内核代码
- OpenCl内核代码
- 从静态初始化代码启动CUDA内核时遇到问题
- 为什么当我使用的线程数远远超过CPU内核数时,此代码会变得更快?
- 是否有任何内置的CUDA函数允许CUDA内核向主机代码报告错误?
- 在docker中编译不同内核的代码会受到什么影响?
- 如何在docker中编译使用内核函数的C代码,在容器中使用pci设备
- c++代码在CUDA内核