Sep 16, 2018 原创文章

  CUDA并行编程学习(0)-- CUDA和GPU

基于CUDA的并行编程学习笔记

分享到: 0

请保证您的浏览器支持MathJax插件,以免数学公式无法显示


GPU能够进行并行计算的原因是因为其内部具有成百上千个计算单元,如果我们能够对程序进行拆分,将整个计算过程拆分成大量的独立子任务,这些大量的计算单元就为并行执行这些任务提供了可能性。

CUDA使用了单指令多线程(Single Instruction Multiple Threads、SIMT)的并行模式。CUDA GPU包含了大量的基础计算单元,这些单元被称为核,每个核都包含了一个逻辑计算单元(ALU)和一个浮点计算单元(FLU)。多个核集成在一起被称为 多流处理器(Stream Multiprocessor、SM)。

我们将一个计算任务分解为多个子任务,每个子任务被称为线程,多个线程被组织为线程块。线程块被分解为大小与一个SM中核数量相同的 线程束(warp)。每个线程束由一个特定的SM处理器执行。SM处理器的控制单元指挥其所有核同时在一个线程束的每个线程中执行同一个指令,这称为SIMT。

在GPU上,芯片的大多数空间被分配给了大量组织成SM处理器的运算大院和共享的控制单元。当一个线程束所需的数据不可获得时,SM处理器会转向执行另一个可获得数据的线程束。GPU关注的是整体的运算吞吐量而不是单个核心的执行速度。


打赏


感谢您的支持,我会继续努力的!

扫码支持

长按识别二维码或打开支付宝扫一扫 完成打赏
或 使用<支付宝链接>打赏


关闭

分享到: 0