理论教育 两种架构的异同对比

两种架构的异同对比

时间:2023-06-23 理论教育 版权反馈
【摘要】:同时,也增加了AMD Cypress架构GPU在优化过程中的难度。两者同样采用了层次式的内存架构:线程私有的寄存器;可被同一线程块内所有线程共享并可被程序员控制的本地内存;可被所有线程访问且大容量的全局内存。不同的是,在NVIDIA架构中,调度单元warp包含32个线程;而在AMD架构中,调度单元wavefront包含64个线程。除硬件层次外,两者具有相同的线程组织形式。

两种架构的异同对比

通过前两节的论述,从优化的角度讲,NVIDIA架构GPU和AMD架构GPU在架构上的主要差异是基本执行单元设计上的差异:CUDA核心采用了标量化的设计,而SC采用了向量化的设计。此外,NVIDIA GPU寄存器是32位的标量化设计,而AMD GPU的寄存器为128位的向量化设计。这种设计上的差异也决定了两者在处理向量化指令方式上的不同。

对于Fermi架构,每个CUDA核心内部都有一个全功能的浮点数处理器。对于4D矢量指令,NVIDIA GPU会结合4个CUDA核心共同完成。如图3-11所示,一条4D的矢量指令在NVIDIA GPU上执行时,会转换为相互独立的4条标量指令,并被分配到不同的CUDA核心上执行。这种实现方式的特点就是灵活,无论是1D、2D、3D还是4D指令,都拆分成相互独立的1D指令来执行。CUDA的这种流处理器架构的设计放弃了单独追求高浮点数计算吞吐量的目标,而是通过优化处理器内部结构来换取更高的执行效率,同时也大大提高了架构的灵活性和可扩展性

AMD Cypress架构GPU沿用了传统GPU的SIMD架构,每个SC拥有5个共享指令发射端口的1DALU,并被组织为5路VLIW(Very Long Instructionword,超长指令字)处理器,在每个时钟周期内,一条VLIW指令可同时执行5个标量操作。从宏观上看,AMD Cypress架构GPU确实是SIMD架构,因为SC内部的5个ALU共用一个指令发射端口。然而,这5个ALU与传统GPU的ALU不同,它们是相互独立的,并能各自组合处理任意的1D/2D/3D/4D/5D指令,完美支持Co-issue(矢量指令和标量指令并行执行),因此,从微观上看,AMD GPU可以称为5D超标量架构。

在VLIM体系中,通过将多个短指令合并成一条长VLIW指令的方式来提高计算资源的利用率,最大程度缓解了标量指令效率低下的问题。而另一方面,在通用计算中,并不能将所有的计算指令都组装成合适长度的向量化指令。因此,SC的这种向量化的设计,也会降低计算资源的利用率。同时,也增加了AMD Cypress架构GPU在优化过程中的难度。因此,AMD最新的GCN架构GPU采用了标量化的设计,重新组织了计算单元。

尽管NVIDA架构和AMD架构存在着差异,但从宏观上看,两者在整体设计上存在着相似性

978-7-111-56928-2-Chapter03-14.jpg相同的硬件层次架构。NVIDIA和AMD架构都采用了层次式的硬件架构,基础架构由可扩展的计算单元阵列组成,而计算单元由计算核心构成。计算核心的操作由所属的计算单元的指令发送单元控制。(www.daowen.com)

978-7-111-56928-2-Chapter03-15.jpg相似的内存层次架构。两者同样采用了层次式的内存架构:线程私有的寄存器;可被同一线程块内所有线程共享并可被程序员控制的本地内存(NVIDIAGPU称为共享内存);可被所有线程访问且大容量的全局内存。前两者为片上内存,具有较高的访存带宽和较低的访存延迟,但容量有限;后者成为片外内存,容量大,但具有较高的访存延迟和相对较低的访存带宽。充分利用片上资源进行数据本地化,以减少对本地资源的依赖,是GPU优化的重要方法。

978-7-111-56928-2-Chapter03-16.jpg相似的调度策略。两者都采用了多线程的调度策略。不同的是,在NVIDIA架构中,调度单元warp包含32个线程;而在AMD架构中,调度单元wavefront包含64个线程。两者都能有效控制大规模线程的并行执行,通过warp/wavefront的交替执行来隐藏访存延迟。同时线程间的调度都是通过硬件实现的,开销低。

978-7-111-56928-2-Chapter03-17.jpg相同的线程组织架构。两者都属于大规模并行处理器,可并行执行大量线程。除硬件层次外,两者具有相同的线程组织形式。将要执行的大量线程被组织成N维的线程空间;线程空间又进一步切分成不同的线程块,每个线程块只能在一个计算单元上调度执行,线程块间的执行是相互独立的。同一线程块内的线程可通过本地内存进行通信。每个线程也只能在一个处理核心上执行。

这些硬件和软件架构的相似性,为研究分析GPU程序在不同GPU架构上优化方法和策略的共性提供了可能,也为进一步实现不同GPU架构间的性能可移植创造了条件。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈