技术关注:AMD揭露HSA运算架构细节
IThome 发表于:13年05月14日 10:10 [转载] DOIT.com.cn
芯片制造商AMD发表HSA运算架构的新技术:hUMA,来解决CPU与GPU间的重覆资料拷贝问题。
2012年,AMD就携手ARM、高通、三星、联发科等厂商成立HSA(Heterogeneous Systems Architecture)基金会,希望拓展CPU和GPU协同运算的新架构,并辅助此架构发展的异质运算新软体开发环境。
日前,AMD进一步公开说明此运算架构的新技术:hUMA(heterogeneous Uniform Memory Access)。透过hUMA,CPU和GPU能共享同一个存储空间,并且CPU能够直接存取GPU的存储位址,不必像过去得花工夫再将GPU的运算资料复写到CPU上。
过去CPU和GPU的存储池仍独立运作
换句话说,以过去技术发展的状态,即便GPU和CPU已整合到同一个芯片上(GPGPU技术),芯片在运算时要定位存储的位置仍然得经过繁杂的步骤,这是因为CPU和GPU的存储池仍然是独立运作。
先前为了解决两者存储池独立的运算问题,当CPU程式需要在GPU上进行部分运算时,CPU都必须从CPU的存储上复制所有的资料到GPU的存储上,而当GPU上的运算完成时,这些资料还得再复制回到CPU存储上。这些步骤都会不断耗费时间以及程式处理的效能。
此外,复制资料的步骤也代表着,当CPU正在运作时,GPU就无法同时运算相同的资料。而当不同程式语言间的关键术语(exact terminology)变化时,CPU资料架构会启动指标器(pointers)来指示相关的资料,但是,因为CPU的指标器是指示到CPU存储上的位置,而GPU的存储又是另一个独立架构,因此这样的架构若复制到GPU上运作,反而会产生位置错置的问题。
而hUMA技术,就是来解决两者存储独立的问题。
hUMA能让GPU直接存取CPU的存储位置
hUMA像个连贯快取的系统,让CPU和GPU能共享同一个存储空间,让CPU和GPU在存储上看到的资料都能维持一致,如果其中一方上的资料改变,即便旧资料经过快取,另一方还是能看到经改变的资料。换句话说,hUMA能让GPU直接存取CPU的存储位置,当CPU在读写资料时,GPU也能同时读写资料。
此外,hUMA也能用在CPU的需要配置虚拟存储(demand-paged virtual memory)上。当GPU要存取写在磁碟上的位置时,CPU就能让作业系统去寻找,并加载相关的资料进存储中。
第一款支援hUMA的产品将会是AMD的Kaveri APU,预计今年下半年上市。根据AMD表示,hUMA将会支援C++和Java等开发语言。