拉菲1娱乐

拉菲1娱乐


新闻资讯

拉菲1娱乐 > 新闻资讯 > 安多公司拉斯科公司ldquo异构统一内存访问和amp今年将在卡维里举行

安多公司拉斯科公司ldquo异构统一内存访问和amp今年将在卡维里举行

日期:2018-06-19 阅读 15

AMD想谈谈HSA,异构系统架构( HSA ),它对系统架构未来的展望。为此,它上周召开了一次新闻发布会,讨论它所称的异构统一内存访问( hUMA )。该公司概述了它正在做什么,以及为什么,确认和重申了它在过去几年里一直在说的话。

中央HSA概念是,系统将具有多种不同类型的处理器,连接在一起并作为对等体运行。两种主要的处理器是传统的:通用处理器和更专业的处理器。

现代GPU具有巨大的并行运算能力,尤其是浮点运算,但不太适合具有大量分支的单线程代码。现代CPU非常适合于具有大量分支的单线程代码,但不太适合于大规模并行数字运算。在CPU和GPU之间划分工作负载,将每个工作负载用于其擅长的工作负载,推动了通用GPU ( GPU )软件的开发和开发。

即使将GPU和CPU集成到同一个芯片中,GPGPU对软件开发人员来说也相当尴尬。CPU和GPU都有自己的内存池。在物理上,这些芯片可能使用主板上的相同芯片(因为大多数集成GPU出于自己的目的而切割系统内存的一部分)。然而,从软件的角度来看,这些是完全分离的。

这意味着每当CPU程序想要在GPU上进行一些计算时,它必须将所有数据从CPU的内存复制到GPU的内存中。当GPU计算完成后,所有的数据都必须拷贝回来。这种来回复制的需要浪费了时间,并且使得在CPU上运行的代码和在GPU上运行的代码难以混合和匹配。

复制数据的需要也意味着GPU不能使用与CPU相同的数据结构。虽然确切的术语因编程语言而异,但CPU数据结构广泛使用指针:本质上,指(或实际上指)其他数据段的内存地址。这些结构不能简单地复制到GPU内存中,因为CPU指针指的是CPU内存中的位置。由于GPU内存是分开的,所以复制时这些位置都是错误的。

hUMA是AMD提出解决这个问题的方式。通过hUMA,CPU和GPU共享一个内存空间。GPU可以直接访问CPU内存地址,允许它读写CPU也在读写的数据。

hUMA是一个高速缓存一致性系统,这意味着CPU和GPU将始终看到内存中数据的一致视图。如果一个处理器进行了更改,那么另一个处理器将看到更改的数据,即使旧值正在缓存。

从易用性的角度来看,这一点很重要。在非高速缓存相干系统中,程序必须明确表示它们已经改变了其他处理器可能已经高速缓存的数据,以便这些其他处理器可以丢弃它们陈旧的高速缓存副本。这使得硬件更简单,但是引入了很大范围的软件错误,导致难以检测、诊断和修复的错误。使硬件强制缓存一致性符合AMD在HSA背后的动机:使开发人员更容易一致地使用不同的处理器类型。

CPU中使用的内存地址通常不是对应于RAM中物理位置的地址。现代操作系统和软件都使用虚拟内存。每个进程都有自己的专用地址集。每当访问地址时,CPU都会将这些虚拟内存地址映射到物理内存地址。虚拟地址集的总数可以而且经常大于系统上安装的物理内存量。操作系统使用分页来弥补差异:某些虚拟地址的内存可以写入磁盘,而不是保留在物理内存中,从而允许将该物理内存用于其他虚拟地址。

每当CPU尝试访问已写入磁盘的虚拟地址,而不是驻留在物理内存中时,它都会调用操作系统来检索所需的数据。然后操作系统从磁盘上读取并将其放入内存中。这个被称为按需分页虚拟内存的系统,对于今天经常使用的每个操作系统都是通用的。

然而,这是传统CPU / GPU设计的一个问题。如前所述,在传统系统中,数据必须从CPU内存拷贝到GPU内存,GPU才能访问它。此复制过程通常在独立于CPU的硬件中执行。这使得它有效但能力有限。特别是,它通常无法处理已写入磁盘的内存。a要复制的所有数据必须驻留在物理RAM中,并固定在那里,以确保在复制操作期间不会移出磁盘。

hUMA也解决了这个问题。hUMA系统中的GPU不仅可以使用CPU地址,还可以使用CPU请求分页的虚拟内存。如果GPU试图访问写在磁盘上的地址,CPU将进入生命周期,调用操作系统查找并加载相关的数据位,并将其加载到内存中。

合在一起,hUMA的这些特性使得基于CPU的计算和基于GPU的计算之间的切换更加简单。GPU可以直接使用CPU数据结构和内存。对按需分页虚拟内存的支持意味着GPU也可以无缝地使用比物理内存更大的数据集,操作系统使用其尝试过的真正按需分页机制。

除了对GPU编程有用之外,这也可能在GPU的传统领域:图形中找到用途。通常,3D程序必须使用大量相对较小的纹理来将纹理应用于其3D模型。当GPU可以访问请求分页时,可以根据需要使用单个大纹理(甚至比GPU的内存更大)加载纹理部分。id软件利用现有的硬件为敌方领土设计了一种类似的技术:地震战争,并称之为巨大的纹理。有了hUMA,开发人员将获得内置的巨大的类纹理功能。

AMD长期以来一直需要HSA。推土机处理器模块于2011年底推出,将两个整数内核配对为单个共享浮点单元。每个核心对可以运行两个线程,但是如果两个线程都大量使用浮点代码,它们就必须竞争共享浮点单元。AMD的理论是浮点密集型代码将使用GPU,所以CPU中浮点功率的相对缺乏无关紧要。但那并没有发生,而且还没有发生。这有几个原因,但最大的一个原因是CPU和GPU代码混合的不便和低效,因为必须进行内存复制和锁定。HSA消除了这些步骤。尽管这仍然不能使GPU编程变得容易——许多程序员将不得不学习新的技术来利用它们的大规模并行性——但它无疑使编程变得更容易。

HSA hUMA上市的第一台处理器代号为Kaveri。它将使用AMD推土机衍生的蒸汽压路机核心和GPU组合2 - 3个计算单元(两个整数核心,但共享浮点)。GPU将可以完全访问系统内存。

Kaveri将于下半年上映。

HSA不仅仅适用于集成GPU的CPU。原则上,共享对系统存储器访问的其他处理器可以是任何东西,例如密码加速器,或者可编程硬件,例如FPGAs。它们也可能是其他CPU,通常推测是x86 / ARM芯片的组合。kaveri实际上将嵌入一个小ARM核心,用于在CPU上创建安全执行环境。离散GPU可以类似地使用HSA来访问系统存储器。

AMD面临的最大困难是仅仅拥有hUMA是不够的。开发人员实际上必须编写利用它的程序。hUMA当然会让开发混合CPU / GPU软件变得更容易,但是鉴于AMD的市场份额很低,开发人员不太可能急于重写他们的软件来利用它。我们询问公司代表英特尔或NVIDIA是否将实施HSA。我们还在等待答复。

该公司自夸其HSA基金会拥有广泛的行业支持,包括ARM有限公司、主要ARM供应商高通公司、三星和TI,以及嵌入式图形公司的想象力。如果这组公司接受HSA,我们当然有可能看到它成为为如此多的平板电脑和智能手机供电的ARM片上系统的标准功能。不清楚的是,鉴于AMD在平板电脑市场上的次要地位以及在智能手机市场上的不存在位置,这将如何帮助AMD。

AMD s倒数第二张幻灯片确实指出了一种可能的(尽管可能是暂时的)拯救方式:游戏控制台。今年晚些时候发布的PlayStation 4将包含一个AMD CPU / GPU。人们普遍认为下一代Xbox也将效仿。尽管这两种方式都没有官方消息,但其中一个或两个处理器都可能是HSA部件。这将为AMD提供稳定的收入来源,并确保为HSA系统编写和设计稳定的软件来源。这反过来又可以为HSA的广泛应用提供动力和愿望。

更新:一位读者指出,在接受PlayStation 4首席设计师gamaasutra的采访时马克·塞尔尼说,CPU和GPU都可以完全访问所有系统的内存,这强烈表明它确实是一个HSA系统。