CUDA编程
wangbowj123
炼丹中。
展开
-
CUDA 并行加速基础之 Reduce 和 Scan 的实现
前言我们知道硬件拥有其独特的并行性,为了发挥这一特色。我们要将平时串行执行的程序用并行性算法重新改写才能充分发挥 GPU 的优势。实例:做求和:1+2+3+4+···为了做这样一个累加和的加速,有两种简单的实现方法,分别是 Redece 进行归约(二分),或者是用 Scan 通过控制步长进行扫描求和。Reduce如上图所示为了并行执行累加,我们要构造出一些线程,每个线程并行工作,从...原创 2020-04-14 21:28:19 · 2502 阅读 · 0 评论 -
CUDA之三种访存模式与代码测试
GPU 硬件架构具有三层的存储结构,分别是:**线程私有存储、线程块共享存储、全局存储**。访问速度自然是由快到慢。CUDA 程序编写的一个重要理念也是尽可能少的访问全局缓存。本博客将编写代码分别对三种访存模式进行相应的简单测试。原创 2020-04-14 17:26:38 · 845 阅读 · 0 评论 -
CUDA 编程之对原子操作与并行性的理解
相关概念CUDA 的原子操作可以理解为对一个变量进行“读取-修改-写入”这三个操作的一个最小单位的执行过程,这个执行过程不能够再分解为更小的部分,在它执行过程中,不允许其他并行线程对该变量进行读取和写入的操作。基于这个机制,原子操作实现了对在多个线程间共享的变量的互斥保护,确保任何一次对变量的操作的结果的正确性。原子操作确保了在多个并行线程间共享的内存的读写保护,每次只能有一个线程对该变量进行...原创 2020-04-14 16:44:24 · 1126 阅读 · 0 评论 -
第一行 CUDA 代码之GPU架构理解与代码编写
CUDA 编程之软硬件结构的相关概念首先是对 CUDA 编程中可能会遇到的各种概念进行简单总结。如对 Kernel、Grid、Device、Host、Thread、Thread Block、SM 等部件进行梳理并且阐明相互之间的关系,并且牵涉到CUDA编程的基本理念与基本方法。最后写下CUDA的并行计算的简单入门代码。原创 2020-04-14 16:25:34 · 949 阅读 · 0 评论