CPU 频道

新法让CPU/GPU融合处理器性能暴增113%

  【IT168 资讯】北卡罗莱纳州大学和AMD公司的研究人员们最近找到了一种新方法,能够让AMD APU、Intel Sandy Bridge这种集CPU、GPU于一体的融合型处理器获得平均20%以上的性能提升,最多可翻一番还多。工程师们主要是利用了x86处理器的一些独特性质,比如说数据预取和大容量缓存,从而在GPU上加速并行任务的执行。

  研究论文作者之一、电子与计算机工程副教授周惠阳博士(Dr. Huiyang Zhou)认为:“芯片厂商开发了 ‘融合架构’的处理器,将CPU、GPU整合在单独一颗芯片上。这种方法降低了制造成本,让计算机更加高效,但是CPU核心、GPU核心仍然都几乎完全在 执行各自不同的功能,很少能够合作执行任何程序,因此没有预想得那么高效。这就是我们要争取解决的问题。”


▲AMD APU

  他进一步解释说:“我们的方法是让GPU核心去执行计算型功能,同时让CPU从片外主内存中预取GPU所需要的数据。这样做的效率更高,因为它能让CPU、GPU去做各自擅长的事情:GPU的长项是进行计算,CPU则适合做出决定、弹性获取数据。”

  其实CPU、GPU从主内存中获取数据的速度是差不多的,但如果能让CPU来提前判断GPU所需数据,并拿来做好准备,GPU就可以减轻负担,全身心投入到执行和计算中去了,效率自然可以得到提升。

  在一个由CPU辅助进行的GPGPU处理器中,CPU启动一个GPU程序后,会创建一个预执行程序。该程序使用编译器算法从GPU内核中自动生成,包含 GPU内核多个线程块的内存访问指令。CPU预执行程序会在GPU内核之前运行,这是因为:第一,CPU预执行线程仅包含来自GPU内核的内存拾取指令, 没有浮点计算;第二,相比于GPU标量核心,CPU的运行频率更高,指令级的并行度也更高。

  研究人员们还利用了CPU二级缓存的预取能力,来提高CPU的内存带宽,因此GPU线程访问内存对三级缓存的依赖及其延迟都大为降低。

  此外,因为预执行程序是直接由用户级的应用程序控制的,精度和弹性都非常高。

  工程师们通过对一系列基准测试进行试验,最后得出结论称这种方法可将处理器性能平均提升21.4%,最多可达惊人的113%。

  这篇名为《CPU-GPU融合架构上的CPU辅助GPGPU》(CPU-Assisted GPGPU on Fused CPU-GPU Architectures)的论文将于二月底在新奥尔良举行的第18届国际高性能计算机架构研讨会上公布。该论文的作者还有北卡罗来纳州大学的在校学生Yi Yang、Ping Xiang(看来都是华裔人士),以及来自AMD公司的Mike Mantor,而为研究提供资助的是美国国家科学基金会和AMD公司。

  很显然,AMD未来的Fusion APU非常有希望用到这些技术。

0
相关文章