● 前所未有的并行构架
作为DX11的重要组成部分,并行kernel的出现极大地改善了图形线程的执行效率,同时也将构架体系并行度的问题提到了前台上。传统的RV构架一直到RV870为止都是不具备严格意义上的并行设计的,而Cayman构架的设计虽然具备了并行性的雏形,但其ALU团簇部分依旧是一个整体。
并行kernel示意
在Graphics Core Next中,AMD大力改进了整个构架的并行度,以CU为单位进行了完成了并行化管理结构。整个体系拥有2级线程仲裁机制,最外围的线程仲裁机制负责整个构架个并行单元之间的kernel管理工作,而CU内部则具备单独的仲裁机制。而且在未来的构架中还可能会将若干CU捆绑成一个类似GPC的结构,结构内部共享一套几何资源和一套纹理资源,这将极大地提升Graphics Core Next的并行处理能力。
不仅如此,在前面的ALU改进部分我们已经看到,即便是在CU内部,其CTA级的并行度也得到了极大地改善,CU内部的4组vector ALU能够并行完成wavefront的吞吐,这极大地提升了vector ALU单元的运算效率。
除此之外,AMD还大幅改进了新构架的原子操作能力,原子操作可以保证若干线程构成的线程块的操作不会被进一步分割或者影响,同时让多线程块完成快速的操作以及切换,原子操作针对多线程并行执行设置了诸多保护机制,它可以协助管理线程“从生到死”的整个过程,这对于线程块的快速并行执行有极其重要的意义。
最后,有了上述这些改进,AMD在Graphics Core Next中终于开始提倡乱序执行这一概念了。并行的类GPC结构以及二级的CU结构,能够允许不同的kernel以及不同的CTA以乱序的形式进入队列,对于经过充分线程优化的DirectX 11游戏应用以及其他通用计算程序而言,新构架与传统的RV构架的执行效率几乎就是天渊之别。