转自: http://www.expreview.com/27728.html
此前PS4已经使用了AMD的统一寻址技术,现在AMD也正式宣布了hUMA异构统一内存访问技术,它将成为未来APU的基石。
从2006年收购ATI之后,AMD一直力推的就是Fusion融合的概念,他们希望GPU和CPU不再是互相独立的单位,而是可以互相辅助,发挥各自的特长。APU的出现算是AMD融合理念的第一步,但是APU实际上只是解决了CPU和GPU的集成问题,真正的融合理念还很远,其中一个关键问题就是CPU和GPU的统一寻址问题,为此AMD还成立了HSA基金会,拉拢了高通、ARM等大腕一同推荐CPU和GPU融合大业。
AMD力推的HSA路线图,2013年是解决GPU和CPU统一寻址的关键
AMD如此痴迷于异构运算的原因就在于目前的CPU在浮点性能上与GPU的差距越来越大,2002年的顶级CPU——Pentium 4的浮点性能是12.24GFLOPS,当年的Radeon 9700 Pro浮点性能是31.2GFLOPS,二者的差距不过是2-3倍。但是十年后再来看,Intel去年推出的最强消费级处理器Core i7-3970X的浮点性能不过336GFLOPS,而AMD的Radeon HD 7970 GE显卡的浮点性能已经是4301GFLOPS,性能是前者的13x,差距还在进一步扩大。
既然GPU有着如此强大的性能,那么使用GPU来加速运算不是更好吗?这是AMD的目的,也是GPU通用计算的最终目的,但是要想实现这个目的就得需要解决几个难题,首先就是CPU和GPU都有各自的内存系统,联合运算就需要二者使用相同的内存系统。
此前索尼的设计师在谈到PS4为何不是一套简单的“高端PC”时就提到了一个问题,那就是PS4使用的是统一寻址设计,8GB GDDR5既是GPU的内存系统也是CPU的内存系统。因为PS4使用的是AMD的APU,这个统一寻址设计其实是AMD的功劳,如今他们也正式宣布了这项技术——hUMA( Heterogeneous Uniform Memory Access,异构统一内存访问),它将成为未来APU的基石。
与hUMA相对的还有UMA(Unified Memory Access)和NUMA(Non-Unified Memory Access),UMA是指所有内核使用一条内存寻址总线,目前的多核CPU内部基本上都是UMA寻址了,因为他们的内核是一样的,而NUMA自然就不是统一寻址了,AMD的hUMA则是在GPU、CPU之间进行两个完全不同的架构之间进行统一寻址,二者通过一条双向存储总线使用共同的内存系统。
hUMA设计的主要特点有:
1.双向一致性内存(Bi-Directional Coherent Memory),不论是GPU还是CPU在处理器过程中对内存中的数据做了什么改变,另外一方总是能立即看到更改后的数据。
2.可调页内存(Pageable Memory),GPU可以处理(take)页面错误,不再受页面锁定内存的限制。
3.完整内存空间(Entire Memory Spac),GPU和CPU可以动态分配整个内存空间。
目前的NUMA系统的内存操作,CPU和GPU各自独立
hUMA系统下CPU和GPU拥有统一的内存空间
有了hUMA这种异构统一寻址之后,AMD称其可以简化编程难度,降低编程开发的成本。该技术支持主流的编程语言——Python、C++及Java等,开发者无需专用API即可简化特殊架构的开发工作。AMD表示引入hUMA之后能效也变高了,因为现在为CPU开发的代码可以运行在GPU上了,反之亦然。
目前除了索尼的PS4主机之外还没有实际产品使用hUMA技术,Kaveri应该是第一个使用hUMA设计的APU产品,其CPU核心为Steamroller架构,性能会比目前的Piledriver核心有明显提升,而Kavri APU预计会在今年底发布。
此前PS4已经使用了AMD的统一寻址技术,现在AMD也正式宣布了hUMA异构统一内存访问技术,它将成为未来APU的基石。
从2006年收购ATI之后,AMD一直力推的就是Fusion融合的概念,他们希望GPU和CPU不再是互相独立的单位,而是可以互相辅助,发挥各自的特长。APU的出现算是AMD融合理念的第一步,但是APU实际上只是解决了CPU和GPU的集成问题,真正的融合理念还很远,其中一个关键问题就是CPU和GPU的统一寻址问题,为此AMD还成立了HSA基金会,拉拢了高通、ARM等大腕一同推荐CPU和GPU融合大业。
AMD力推的HSA路线图,2013年是解决GPU和CPU统一寻址的关键
AMD如此痴迷于异构运算的原因就在于目前的CPU在浮点性能上与GPU的差距越来越大,2002年的顶级CPU——Pentium 4的浮点性能是12.24GFLOPS,当年的Radeon 9700 Pro浮点性能是31.2GFLOPS,二者的差距不过是2-3倍。但是十年后再来看,Intel去年推出的最强消费级处理器Core i7-3970X的浮点性能不过336GFLOPS,而AMD的Radeon HD 7970 GE显卡的浮点性能已经是4301GFLOPS,性能是前者的13x,差距还在进一步扩大。
既然GPU有着如此强大的性能,那么使用GPU来加速运算不是更好吗?这是AMD的目的,也是GPU通用计算的最终目的,但是要想实现这个目的就得需要解决几个难题,首先就是CPU和GPU都有各自的内存系统,联合运算就需要二者使用相同的内存系统。
此前索尼的设计师在谈到PS4为何不是一套简单的“高端PC”时就提到了一个问题,那就是PS4使用的是统一寻址设计,8GB GDDR5既是GPU的内存系统也是CPU的内存系统。因为PS4使用的是AMD的APU,这个统一寻址设计其实是AMD的功劳,如今他们也正式宣布了这项技术——hUMA( Heterogeneous Uniform Memory Access,异构统一内存访问),它将成为未来APU的基石。
与hUMA相对的还有UMA(Unified Memory Access)和NUMA(Non-Unified Memory Access),UMA是指所有内核使用一条内存寻址总线,目前的多核CPU内部基本上都是UMA寻址了,因为他们的内核是一样的,而NUMA自然就不是统一寻址了,AMD的hUMA则是在GPU、CPU之间进行两个完全不同的架构之间进行统一寻址,二者通过一条双向存储总线使用共同的内存系统。
hUMA设计的主要特点有:
1.双向一致性内存(Bi-Directional Coherent Memory),不论是GPU还是CPU在处理器过程中对内存中的数据做了什么改变,另外一方总是能立即看到更改后的数据。
2.可调页内存(Pageable Memory),GPU可以处理(take)页面错误,不再受页面锁定内存的限制。
3.完整内存空间(Entire Memory Spac),GPU和CPU可以动态分配整个内存空间。
目前的NUMA系统的内存操作,CPU和GPU各自独立
hUMA系统下CPU和GPU拥有统一的内存空间
有了hUMA这种异构统一寻址之后,AMD称其可以简化编程难度,降低编程开发的成本。该技术支持主流的编程语言——Python、C++及Java等,开发者无需专用API即可简化特殊架构的开发工作。AMD表示引入hUMA之后能效也变高了,因为现在为CPU开发的代码可以运行在GPU上了,反之亦然。
目前除了索尼的PS4主机之外还没有实际产品使用hUMA技术,Kaveri应该是第一个使用hUMA设计的APU产品,其CPU核心为Steamroller架构,性能会比目前的Piledriver核心有明显提升,而Kavri APU预计会在今年底发布。