《电子技术应用》
您所在的位置:首页 > 电子元件 > 其他 > 入门:浅谈GPU和CUDA技术

入门:浅谈GPU和CUDA技术

2023-01-04
来源:雷达通信电子战
关键词: GPU CUDA 处理器

  图形处理单元(GPU)在类似的价格和功率范围内提供比CPU高的指令吞吐量和内存带宽。许多应用程序在GPU上比在CPU上运行得更快。其他计算设备,如FPGA,也非常节能,但提供的编程灵活性低于GPU。 GPU和CPU之间的功能差异之所以存在,是因为它们的设计目标不同。虽然CPU被设计为尽可能快地执行一系列操作(称为线程),并且可以并行执行几十个线程,但GPU被设计为擅长并行执行数千个线程(用较慢的单线程性能以实现更高的吞吐量)。 GPU专门用于高度并行计算,因此设计为更多晶体管用于数据处理,而不是数据缓存和流控制。如图显示了CPU与GPU的芯片资源分布。

 61.JPG

  图1.GPU将更多晶体管用于数据处理 将更多的晶体管用于数据处理(例如浮点计算)对于高度并行的计算是有益的;GPU可以通过计算避免内存访问延迟,而不是依赖于大型数据缓存和复杂的流控制来避免长的内存访问延迟。 通常,应用程序有并行部分和顺序部分的混合,因此系统设计时混合使用GPU和CPU,以最大化整体性能。具有高度并行性的应用程序可以利用GPU的这种大规模并行性来实现比CPU更高的性能。

  通用并行计算平台和编程模型

  2006年11月,英伟达推出了CUDA,这是一种通用并行计算平台和编程模型,它利用NVIDIA GPU中的并行计算引擎,以比CPU更高效的方式解决许多复杂的计算问题。 CUDA附带了一个软件环境,允许开发人员使用C++作为高级编程语言。如图2所示,CUDA也支持其他语言、应用程序编程接口或基于指令的方法,如FORTRAN、DirectCompute、OpenACC。CUDA旨在支持各种语言和应用程序编程接口。

 60.JPG

  图2.GPU计算应用程序

  一种可扩展编程模型

  多核CPU和多核GPU的出现意味着现在主流处理器芯片都是并行系统。挑战在于开发能够方便地扩展其并行性的应用程序软件,以利用不断增加的处理器核,就像3D图形应用程序方便地将其并行性扩展到具有大量不同核的多核GPU一样。 CUDA并行编程模型旨在克服这一挑战,同时为熟悉C等标准编程语言的程序员降低学习难度。它的核心是三个关键抽象——线程组的层次结构、共享内存和栅障同步,这些抽象仅作为一组最小的语言扩展向程序员公开。 这些抽象提供了数据并行和线程并行,需要程序员将问题划分为可由线程块独立并行解决的粗略子问题,并将每个子问题划分为更精细的部分,可由块内的所有线程协同并行解决。

 59.JPG

  事实上,每个线程块(block)可以在GPU内的任何可用多处理器上以任何顺序、并发或顺序进行调度,这样编译后的CUDA程序可以在任何数量的多处理器上执行,如图3所示,并且只有运行时系统才需要知道实际的多处理器数量。 这种可扩展编程模型允许GPU架构通过简单地扩展多处理器和内存分区的数量来适应不同的显卡:从高性能爱好者GeForce GPU、专业的Quadro和Tesla计算显卡到各种廉价的主流GeForce GPU(请参阅以获取所有支持CUDA的GPU的列表)。



更多信息可以来这里获取==>>电子技术应用-AET<<

mmexport1621241704608.jpg

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。