CUDA 编程
总结CUDA C的编程知识和开发经验. 着重在数字图像处理中的应用.
Full_Speed_Turbo
从现在开始, 从零开始.
展开
-
CUDA编程 怎样给kernel函数传入函数指针
目录核心方法模板函数指针不用模板核心方法The key to passing function pointers to CUDA kernel is to use static pointers to device pointers followed by copying the pointers to the host side. Otherwise, I am sure you will...原创 2020-03-23 11:34:36 · 1433 阅读 · 0 评论 -
CUDA计算直方图(二) 共享内存 __shared__
共享内存共享内存是一块特殊的内存, 因为它存在于芯片上并且存取速度比全局内存快.可以在共享内存上创建一个包含256个bin的局部统计直方图,最后将所有共享内存上计算得到的统计直方图通过原子操作汇总到全局内存.这样可以节省存储直方图结果的时间.下图是GTX1050 的内存容量.分治// 共享内存.__shared__ Cuda32u d_bin_data_shared[256];...原创 2019-01-31 15:23:16 · 1087 阅读 · 1 评论 -
CUDA计算直方图(一)原子操作 atomicAdd
目录背景使用CPU计算使用CUDA 原子操作atomicAdd背景计算直方图是图像处理和机器学习等常用的操作.对于大数据集, 使用串行算法十分浪费时间.这里使用CUDA来加速直方图的计算.对于一个较大的整数数组, 值域0~255. 求取直方图.使用CPU计算void cpuHist(Cuda8u *pHist_data, Cuda32u* pBin_data, Cuda32u arr...原创 2019-01-31 14:44:15 · 2858 阅读 · 0 评论 -
CUDA By Examples 10 - Streams
CUDA Stream 学习总结.原创 2017-07-12 10:39:36 · 642 阅读 · 0 评论 -
CUDA By Examples 9 - 原子操作 Atomics
CUDA的原子操作原创 2017-07-04 14:53:39 · 760 阅读 · 0 评论 -
CUDA By Examples 8 - 纹理内存Texture Memory
可以使用一维和二维纹理内存.纹理内存是只读的.原创 2017-06-28 18:56:50 · 1366 阅读 · 0 评论 -
CUDA By Examples 7 - 测量GPU运行耗时
使用cudaEventCreate创建event;使用cudaEventRecord记录;使用cudaEventSynchronize同步, 等待GPU指令完成. 方便读time stamp.注意: a. 不能用于测量device和host的混合代码的用时; b. 只能用于测量GPU内部kernel执行指令和存储拷贝用时.原创 2017-06-28 14:37:34 · 1982 阅读 · 1 评论 -
CUDA By Examples 6 - 使用常量内存 Constant Memory
访问常量内存时, GPU会针对访问同一个地址的half-warp(16个threads)只读取一次此地址. 被访问的常量内存被cache, 之后的对此地址的访问可以更加快捷. 如果half-warp内的threads需要访问不同的地址, 那么这些访问就会串行进行, 速度会比使用global memory要慢. 因为访问global memory是可以并行的.原创 2017-06-28 13:44:01 · 2060 阅读 · 0 评论 -
CUDA By Examples 5 - 共享内存 Shared Memory
a. 在变量前加上 __shared__, 此变量存储于共享内存中. 1-D或2-D都可以. b. CUDA在每一个block中都copy了一份此变量. c. 同一个block中的threads共享此内存, 但是无法读写其他block的拷贝. d. 共享内存的访问延迟远低于常见的buffer. e. 需要同步机制(synchronization)来协调threads的读写行为. 防原创 2017-06-26 15:28:44 · 3537 阅读 · 1 评论 -
CUDA By Examples 4 - 使用thread
使用block和thread原创 2017-06-26 10:26:04 · 596 阅读 · 0 评论 -
CUDA By Examples 3 - 绘制Julia Set
使用CPU方法和CUDA方法绘制Julia Set图形.原创 2017-05-03 15:15:00 · 994 阅读 · 0 评论 -
CUDA By Examples 2 - 并行计算向量相加
向量相加的并行计算编程示例原创 2017-05-03 11:10:40 · 1069 阅读 · 0 评论 -
CUDA By Examples 1 - 选择合适的Device
在多个GPU的情况下, 利用cudaChooseDevice函数选择符合条件的Device(GPU). 这个API很有用, 允许开发者选择合适的GPU执行程序.原创 2017-05-03 10:00:58 · 1055 阅读 · 0 评论 -
CUDA By Examples 0 - 准备工作
CUDA By Examples 一书给出的一些帮助代码. 可以直接include使用.原创 2017-05-03 09:53:41 · 2002 阅读 · 1 评论