AMD的加速处理单元(APU)将CPU和GPU集成在同一块芯片上。该公司的r系列处理器本质上采用了两个组件,并将它们放入同一块芯片中(参见“APU混合四核x86和384核GPU”).CPU和GPU仍然使用各自的内存独立运行,甚至当它们与嵌入式g系列一起进入系统芯片(SoC)时(参见“APU目标是嵌入式应用程序”).CPU和GPU在架构上的紧密结合,在降低功耗的同时提高了性能,但在这些情况下,CPU和GPU的内存是不同的。APU方法正在演变。
|
下载本文的。pdf格式 这种文件类型包括高分辨率图形和原理图。 |
新的异构统一内存访问(hUMA)设计将用于未来的异构系统架构(HSA)配置。HSA规范CPU和GPU,提供同等的、集成的内存和缓存支持(图1).它还允许CPU和GPU软件更紧密的集成。指令集和语义太不一样了,所以运行在它们上的代码之间仍然有主要的区别,但是现在这两者将能够以更少的开销更快地合作。这种类型的开销是一个原因英伟达在开普勒GPU架构中增加了动态并行支持和直接访问网卡(参见“GPU架构改进了嵌入式应用支持”).
此外,HSA在所有cpu和gpu之间提供相同的缓存一致性和虚拟内存映射(图2).这很重要,因为这意味着CPU和GPU应用程序代码之间共享的数据转换更少。具有独立内存空间的cpu和gpu必须在内存地址不同的cpu和gpu之间复制数据。
此外,HSA方法意味着CPU/GPU边界不会限制数据访问。GPU将与CPU访问相同的数据,反之亦然。程序员过去非常注意CPU和GPU内存之间需要复制哪些数据。这通常意味着破坏或复制数据结构。
共享虚拟内存环境也提高了更好的GPU管理和GPU应用隔离的可能性。到目前为止,独立的gpu在运行的应用程序之间往往没有内存保护,即使应用程序是独立的。
例如,现在的GPU可能在处理显示和渲染杂务的同时,也在执行与显示无关的计算杂务。不良或恶意的编程可能导致其中一个任务破坏另一个任务。在没有内存保护的CPU上也是如此。
我们已经看到了内存保护和虚拟内存对cpu的重要性。HSA可以在GPU方面提供类似的改进。这对GPU应用程序的动态使用大有帮助,这些应用程序通常只能在单个应用程序或操作系统中使用。
内存管理也将改善GPU应用程序。具有分页支持和动态内存分配的虚拟内存可以极大地简化编程任务,同时提供更好的安全性和内存利用率。
统一的方法还可以通过以更低的开销提供更高的性能来降低系统功率需求。HSA会产生多大的影响还有待观察,但潜力是巨大的。与cpu软件集成的细粒度电源管理将在GPU端找到它的方式。
|
下载本文的。pdf格式 这种文件类型包括高分辨率图形和原理图。 |