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