当前的CPU和GPU是分立设计的处理器,不能高效率地协同工作,编写同时运行于CPU和GPU的程序也是相当麻烦。由于CPU和GPU拥有独立的地址空间,应用程序不得不明确地控制数据在CPU和GPU之间的流动。CPU代码通过系统调用向GPU发送任务,此类系统调用一般由GPU驱动程序管理,而驱动程序本身又受到其他调度程序管理。这么多的环节造成了很大的调用开销
为了充分释放并行处理器的计算能力,架构设计者必须打破既有格局,采用新的思路。设计者必须重塑计算系统,把同一个平台上分立的处理单元紧密整合成为不断演进单颗处理器,同时无需软件开发者的编程方式发生重大的改变,这是HSA设计中的首要目标。
异构系统架构(HSA,Heterogeneous System Architecture)用一句话来概括就是:一种智能计算架构,通过无缝地分配相应的任务至最适合的处理单元,使CPU、GPU和其他处理器和谐工作在单一芯片上。上一代APU虽然已经将CPU和GPU无缝融合在了一起,但并没有实现“分配相应的任务至最适合的处理单元”,这就是HSA架构的精髓,也是AMD未来APU想要努力实现的方向。
HSA系统的几大特性:
1. 任何处理单元的数据可以轻易地被其它处理单元所访问;
2. 异构计算不仅包括GPU,还包括其它专用处理单元或协处理器;
3. 编程人员不用知道程序在什么处理单元上运行;
4. GPU和其它处理单元无缝访问虚拟内存,解决数据搬迁瓶颈,数据无需复制。
在硬件层面,HSA架构当中的异构统一内存访问是一项关键技术。