摘要:
## 1. CUDA流 一个CUDA流指的是由主机发出的在一个设备中执行的CUDA操作序列。除主机端发出的流之外,还有设备端发出的流,但本文不考虑后者。一个CUDA流中的各个操作按照主机发布的次序执行;但来自两个不同CUDA流的操作不一定按照某个次序执行,有可能是并发或者交错地执行。 任何CUDA操 阅读全文
摘要:
## 1. 单指令多线程模式 从硬件上看,一个GPU被分为若干个SM。线程块在执行时将被分配到还没完全占满的SM中,一个线程块不会被分配到不同的SM中,一个SM可以有一个或多个线程块。不同线程块之间可以并发或顺序地执行。当某些线程块完成计算任务后,对应的SM会部分或完全地空闲,然后会有新的线程块被分 阅读全文
摘要:
## 1. 全局内存 核函数中的所有线程都能够访问全局内存(global memory)。全局内存的容量是所有设备内存中最大的,但由于它没有放在GPU芯片内部,因此具有相对较高的延迟和较低的访问速度,`cudaMalloc`分配的就是全局内存。此外,当处理逻辑上的二维或者三维问题时,还可以使用`cu 阅读全文
摘要:
## 1. GPU简介 GPU与CPU的主要区别在于: - CPU拥有少数几个快速的计算核心,而GPU拥有成百上千个不那么快速的计算核心。 - CPU中有更多的晶体管用于数据缓存和流程控制,而GPU中有更多的晶体管用于算数逻辑单元。 所以,GPU依靠众多的计算核心来获得相对较高的并行计算性能。 一块 阅读全文