软硬兼施 了解新一代显卡的“隐藏实力”
2021-05-23

显存访问革命
在AMD推出RX 6000系列显卡的时候,同时宣布了一个“新技术”——Smart Access Memory,简称SAM。它其实就是一种让处理器可以访问全部显存,即拥有全部权限(Full Access)的技术(图1)。

①

在十几年前,当显卡接口转向PCIe插槽时,显卡与处理器的通信能力就是PCIe总线的重要“卖点”。当然,处理器和显卡的通信并不是直接访问处理器或者GPU,那样会扰乱数据处理的,GPU通过PCIe通道访问的主要是内存数据,而处理器访问的当然就是显存里的数据了。只不过由于当初设计的问题,处理器访问显存的范围被定在了256MB,也就是最初几代PCIe高端显卡(图2)的显存容量。
不过之后随着显卡显存容量的提升,这个能力似乎被遗忘了,于是处理器访问显存时需要的BAR(基础地址寄存器)就没有升级过,访问权限一直保持在256MB,显卡和处理器只能交流少量的数据。但PCIe规范本身其实并没有这种限制,反而有ResizabIe BAR Capabilitv(可调节大小的BAR容量)这个功能(图3)。Smart Access Memory实际上就是终于“想起”并用上了这个功能,只要按照PCIe规范调节BAR,就可以让处理器获得访问全部显存的权限了。


④

⑤
英特爾和英伟达也随后推出了类似功能,大部分主板直接以PCIe规范的Resizable BAR Capability技术为名(图4),一般直接简称为BAR。也有部分主板比较个性,例如华擎将这一功能命名为CAM(Clever Access Mempry)(图5)。
至于为什么现在处理器和GPU厂商都突然想起来了这个功能,其实很简单,相对于目前的显卡,PCIe4.0×16插槽拥有了“太大”的带宽,比如我们测试支持PCIe 4.0的RTX 30系列、RX 5000/6000系列显卡时,使用PCIe 3.0×16(或PCIe 4.0×8)还是PCIe 4.0×16插槽,表现并没什么区别,说明有很大的接口带宽根本处于闲置状态。……
