CUDA系列学习(一)An Introduction to GPU and CUDA

本文从软硬件层面讲一下CUDA的结构,应用,逻辑和接口。分为以下章节:

(一)、GPU与CPU

(二)、CUDA硬件层面

(三)、CUDA安装

(四)、CUDA 结构与接口

             4.1 Kernels

             4.2 Thread,Block, Grid

             4.3 Memory

             4.4 Execution

(五)、码HelloWorld——数组求和


希望感兴趣的同学可以一起讨论。






(一)、GPU与CPU

对于浮点数操作能力,CPU与GPU的能力相差在GPU更适用于计算强度高,多并行的计算中。因此,GPU拥有更多晶体管,而不是像CPU一样的数据Cache和流程控制器。这样的设计是因为多并行计算的时候每个数据单元执行相同程序,不需要那么繁琐的流程控制,而更需要高计算能力,这也不需要大cache。








(二)、CUDA硬件层面:

Nvidia于2006年引入CUDA,一个GPU内嵌通用并行计算平台。CUDA支持C, C++, Fortran, Java, Python等语言。


那么一个多线程CUDA程序如何执行的呢?

GPU建立在一组多处理器(SMX,Streaming Multiprocessors)附近。

一个SMX的配置:

  • 192 cores(都是SIMT cores(Single Instruction Multiple Threads) and 64k registers(如下图所示)

         GPU中的SIMT对应于CPU中的SIMD(Single Instruction Multiple Data

  • 64KB of shared memory / L1 cache
  • 8KB cache for constants
  • 48KB texture cache for read-only arrays
  • up to 2K threads per SMX



不同显卡有不同配置(即SMX数量不同),几个例子:

  • 46
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
CUDA示例:通用GPU编程入门》是一本介绍使用CUDA编程的书籍。CUDA是一种通用计算架构,可以使开发者能够在GPU上执行复杂的并行计算任务。这本书通过大量的示例代码,介绍了如何使用CUDA来利用GPU的并行计算能力。 这本书首先介绍了GPU的工作原理和CUDA的基本概念,激发了读者对GPU编程的兴趣。然后,它详细介绍了CUDA的核心概念,包括线程、线程块和网格,以及CUDA内存模型。读者可以了解如何编写CUDA核函数,并了解如何在不同的线程间进行通信和同步。 随后,这本书通过一系列实际的示例代码,展示了如何使用CUDA来解决不同类型的问题。这些示例包括向量加法、矩阵乘法、图像处理等。每个示例都详细介绍了问题的背景、解决方案和实现细节。读者可以通过阅读这些示例代码,学习如何将问题转化为可在GPU上运行的并行计算任务,并了解如何优化GPU程序的性能。 此外,这本书还介绍了一些高级的CUDA主题,如共享内存、纹理内存和流式处理器等。这些主题可以帮助读者进一步扩展他们的GPU编程知识,并实现更复杂和高效的并行计算任务。 总之,《CUDA示例:通用GPU编程入门》是一本很好的介绍CUDA编程的书籍。它深入浅出地介绍了CUDA的基本概念和技术,通过丰富的示例代码,帮助读者从零开始学习并掌握CUDA编程。无论是初学者还是有一定CUDA编程经验的开发者,都可以从这本书中获得很多有价值的知识和经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值