解析HSA----CPU+GPU异构系统架构

2014年07月22日 09:53    发布者:eechina
先来了解一下HSA

HSA全称为Heterogeneous System Architecture,翻译成中文就是“异构系统架构”,强调的是CPU+GPU异构计算。



我们认为,现在的CPU发展已经遇到了瓶颈,传统CPU架构决定了它无法在并行运算上做出更大的贡献。

而CPU+GPU运算就能很好地解决这个难题:GPU作为一个多重单位运算体系,在并行计算上有得天独厚的优势,通过CPU与GPU的结合让串行工作与并行工作协调处理,将大幅度提高计算机的计算能力。

2012年6月份,AMD联合ARM、Imagination、联发科、德州仪器共同组建了非营利组织“异构系统架构基金会”(HSA Foundation),随后吸引了三星电子、高通以及大批行业公司、科研机构的加盟,到2013年1月份已经成为开放式行业标准。

如今HSA联盟正逐~步~扩~展~

第一款使用HSA架构的APU产品由Kaveri担任,也就是TrinityAPU处理器的正式继任者。

Kaveri实现了架构整合,在指令集架构(ISA)的层面上完成CPU、GPU完全一致性内存,支持统一寻址,GPU可以通过CPU指针使用可分页系统内存。这款史上最强APU Kaveri已经发布啦!



HSA的关键技术:hUMA

在过去,即便GPU和CPU已整合到同一个芯片上(GPGPU技术),芯片在运算时要定位存储的位置仍然得经过繁杂的步骤,这是因为CPU和GPU的数据储存区相互独立,当CPU程序需要在GPU上进行部分运算时,CPU必须将存储区上的所有的资料复制到GPU的存储上,而当GPU上的运算完成时,这些资料还要再复制回到CPU存储。这些步骤都会不断耗费时间以及降低程序处理的效率。

为了解决这个问题,HSA联盟公布了hUMA技术,透过hUMA,CPU和GPU能共享同一个存储空间,并且CPU能够直接存取GPU的存储位址,不必像过去得花工夫再将GPU的运算资料复写到CPU上,So easy~

UMA的诞生解决了系统中计算核心访问与读取内存的问题,在一个真正的UMA系统资源内,所有的计算核心都将共享一个单一的内存地址空间,并且CPU或GPU中任意一个处理单元做出的更新,对其他所有处理单元均可见。

除此之外透过hUMA GPU还可以支持分页内存管理,GPU可以产生缺页异常,不再受限于传统上的页表锁定内存,而且内存整体空间得到了有效利用,CPU和GPU进程可以从整个内存空间中动态分配内存,避免了以前硬性分配造成资源浪费的尴尬。

那么, HSA架构体系将为我们的生活带来哪些改变的可能性呢?

HSA异构体系的未来

由于HSA是一种开放性的标准,在未来发展道路上有着更多的可能性,通过异构体系可以融合不同厂商的芯片优势,而CPU/GPU的协作运算将带来更加明显的功耗优势。

而且异构体系的开放性使得芯片厂商更容易去开拓新市场——不仅仅局限于PC,包括服务器、嵌入式领域、平板手机游戏机等等都将成为HSA联盟的市场目标。



对消费者而言,我们可以体验到更加极速的计算性能,系统将高负载计算交由GPU完成,GPU中每一个流处理器都相当于一个CPU核心。试想下GPU中成百上千的流处理器合作运算,那会是一种完全不同的用户体验。

我们相信,HSA体系的出现将引发芯片市场的新一轮改革,当然,这还需要包括系统以及APP在内的生态圈合作支持才行。hUMA将会支援C++和Java等开发语言,或许在不久的将来,我们就能看到HSA体系遍地开花,涌现出各种各样更高效、更优质的设备。