Linux系统下CUDA中的原子操作
来源:互联网 发布:数据库系统基础初级篇 编辑:程序博客网 时间:2024/06/06 13:45
今天在学习《CUDA并行程序设计》第四章关于统计直方图的例子时,在内核函数中调用了原子操作atomicAdd,以实现多个线程对竞争资源的使用。但是在编译时出现错误“ error: identifier "atomicAdd" is undefined”。该错误解决方案如下:
(1)确定你的GPU计算能力是否在1.1或者1.1以上?如果否,那你的硬件不支持,问题无法解决;如果是,看第(2)步
(2)在用nvcc编译时添加编译选项”-arch=sm_12",即形如 ”nvcc -arch=sm_12 -o outFilename filename“这样的编译语句。另外如果你的GPU计算能力在2.0以上,也可以添加成“-arch=sm_20"编译选项。
经过上述步骤的检查,我的问题已经完美解决。
我程序的源代码如下:
__global__ void myhistogram_1(char * gpu_hist_data, int * gpu_bin_data){int idx = blockIdx.x * blockDim.x + threadIdx.x;int idy = blockIdx.y * blockDim.y + threadIdx.y;int id = idy * gridDim.x * blockDim.x + idx;char value;while(id < N){value = gpu_hist_data[id];//gpu_bin_data[value] ++;atomicAdd(&gpu_bin_data[value], 1);id += blocksPerGrid * threadsPerBlock;}}
0 0
- Linux系统下CUDA中的原子操作
- 关于CUDA操作中的原子问题
- linux中的原子操作
- cuda原子操作
- cuda原子操作
- CUDA atomic原子操作
- CUDA atomic原子操作
- Unix(Linux)中的原子操作
- linux内核中的原子操作
- Linux下原子操作函数
- 什么是原子操作?Linux下有哪些原子操作API
- Linux内核中的原子操作的实现
- linux 中的原子操作和内存屏蔽
- linux用户空间下的原子操作
- 2012-08-22 Linux下原子操作
- CUDA之atomic原子操作详解
- cuda使用原子操作出现未定义解决方法
- CUDA学习笔记(5) 原子操作
- mac如何修改hosts?mac修改hosts图文教程
- 测试PHP扩展动态库错误
- Median of Two Sorted Arrays
- AppiumForWindows 菜鸟计划(五)uiautomatorviewer
- 设置UIButton上字体的对齐方式
- Linux系统下CUDA中的原子操作
- 链表实现多项式操
- ExtJS 的TreePanel
- hdu1044 Collect More Jewels
- 布局
- 并发概念总结
- 时钟
- [iOS]设置UIButton上字体的对齐方式
- linux应用开发-makefile