CUDA
文章平均质量分 77
阿法哥哥
这个作者很懒,什么都没留下…
展开
-
CUDA学习系列教程(一)
CUDA 初探 CUDA,全称是Computer Unified Device Architecture 计算统一设备架构,为了让GPU有可用的编程环境,从而能通过程序控制底层的硬件进行计算。CUDA提供host-device的编程模式以及非常多的接口函数和科学计算库,通过同时执行大量的线程而达到并行的目的。CUDA也有不同的版本,从1.0开始到现在的10.0,每个版本都会有一些新特性。CUDA是...原创 2018-11-01 17:57:02 · 936 阅读 · 0 评论 -
CUDA学习系列教程(二)
并行编程的通讯模式(Communication Patterns) 并行计算:非常多的线程在合作解决一个问题 常见通信模式: 映射Map 输入输出关系:一一对应(one-to-one) 聚合gather 输入输出关系:多对一(many-to-one) 分散scatter 输入输出关系:一对多(one-to-many) 模板stencil 输入输出关系:s...转载 2018-11-01 21:11:51 · 246 阅读 · 0 评论 -
CUDA学习系列教程(三)
CUDA编程模型 CUDA最大的特点:对线程块将在何处、何时运作不作保证。 优点: 硬件真正有效的运行,灵活 无需要线程间互相等待 可扩展性强 后果: 对于那个块哪个SM上运行无法进行任何假设 无法获取块之间的明确通讯(hard to get communications between blocks) dead lock (并行死锁) 线程退出 CUDA编程模型的原则 所有在同一个线程块上...转载 2018-11-01 22:04:49 · 189 阅读 · 0 评论 -
CUDA学习系列教程(四)
GPU程序一般步骤 CPU分配空间给GPU(cudaMalloc) CPU复制数据给GPU(cudaMemcpy) CPU加载kernels给GPU做计算 CPU把GPU计算结果复制回来 过程中,一般要尽量降低数据通讯的消耗,所以如果程序需要复制大量的数据到GPU,显然不是很合适使用GPU运算,最理想的情况是,每次复制的数据很小,然后运算量很大,输出的结果还是很小,复制回CPU。 核函数是GP...转载 2018-11-02 17:09:34 · 217 阅读 · 0 评论