GPU 内存带宽和速度有什么区别?

GPU 内存带宽和速度有什么区别?

我查看了 Nvidia 10 系列显卡的规格,发现它们指定了内存速度和内存带宽。内存速度以 Gbps 表示,内存带宽以 GB/秒表示。对我来说,内存速度除以 8 应该等于内存带宽,因为 8 位组成一个字节,其他所有单位都相同,但事实并非如此。

我想知道是否有人可以向我解释一下,什么实际上表示实际的数据传输速率。如果有 2 个 GPU,一个具有更高的内存速度(Gbps),另一个具有更高的内存带宽(GB/秒),哪一个可以在某个固定的时间范围内传输更多数据(或者这是不可能的,并且这两个事情以某种方式相关联)?

我是不是漏掉了什么?我似乎在任何地方都找不到好的答案……这里真正重要的是什么?为什么两个测量值都用几乎相同的单位表示(因为一个字节是 8 位,如果将一个测量值转换为位或字节,则一个测量值应该等于另一个测量值)?

证据这里这里(单击“规格”部分中的“查看完整规格”)。

答案1

这里指定了两个不同的内容。我从您链接的页面复制了 Nvidia 规范,以便更好地显示它。

在此处输入图片描述

一个是内存芯片数据线接口速度为 8gbps,这是 GDDR5 规格的一部分,接下来是总内存速度 256GB/s。

GDDR5 内存通常为 32 位宽,因此计算结果(对于 1070)如下:

  • 每条线路 8 gbps
  • 每芯片 32 行
  • 卡上有 8 个存储芯片

将其乘以,我们得到内存速度为 2048gbps,将其除以 8,我们得到内存带宽为 256GB/s。

每块芯片 32 位的 8 块芯片也与 256 位的内存接口宽度相匹配,因此您可以轻松地计算出 (8gbps * 256 位)/8 位/字节(整齐地取消为简单的“256”)并得出相同的数字。

对于 1080:10gbps * 256b / 8 = 320GB/s
对于 1050:7gbps * 128b / 8 = 112GB/s


如果您有两台设备具有相同的 gbps 但不同的 GB/s,则说明内存组中的芯片数量不同。通常,您希望选择更高的总内存带宽(GB/s),因为这通常是实际的有用内存带宽。

一个每针 10gbps 但只有 4 个芯片的设备的总带宽将为 160GB/s((10 * 32 * 4)除以 8),这将低于我上面展示的 1070 的 8 个芯片上的 8gbps(256GB/s)。

答案2

GeForce 10 的内存带宽范围为 64 位至 384 位。

这是 GeForce 1030 2GB GDDR5:

在此处输入图片描述

有 2 个 RAM 芯片

在此处输入图片描述

美光将其 GDDR5 芯片的规格定为 4GB 或 8GB。这是基于使用 8 个 32 位芯片,因此默认为 256 位,而“8GB”实际上是 8 x 1GB。

就 1030 而言,可以看出它们只有 2 个内存芯片。

对于这款 GTX 1080 Ti 11GB

在此处输入图片描述

那么就可以看到有 11 个内存芯片,其中一个在 GPU 本身的右侧明显缺失。

GTX 1080 Ti 基于 Titan X,后者是一款较早的显卡,拥有完整的 12GB 内存。然而,尽管缺少内存芯片,但 1080 Ti 的速度略快一些,提供 352 位而不是 384 位。这要归功于使用更快的内存芯片。

因此,在 1000 个系列中我们看到(https://en.wikipedia.org/wiki/GeForce_10_series):

  • 2、3、4、5、6、8、11 或 12 个内存芯片,可实现 64、96、128、160、192、256、352 或 384 位的内存总线宽度
  • 5、6、7、8 或 9 Gbps GDDR5 速度
  • GeForce 1030 DDR4 上的 2.1 Gbps DDR4
  • 8、9、10 或 11.4 Gbps GDDR5x

之前的 900 系列(不包括任何超低价卡)有 4、6、7+1、8 或 12 个芯片,速度为 5-7 Gbps GDDR5,而 700 系列有 1、2、4、8 或 12 个 GDDR5,速度为 5-7 Gbps,或 2 或 4 个 DDR3 芯片,速度为 1.8 Gbps。在此之前,600 系列有 2、4 或 6 个 DDR3 芯片,速度为 1.8 Gbps,以及 4、6 或 8 个 GDDR5 芯片,速度为 3.2 - 6 Gbps。在此之前,500 系列有 6、8、10 或 12 个 GDDR5 芯片,速度为 3.4 - 4.1 Gbps,或 2 或 4 个 DDR3 芯片,速度为 1.8 Gbps。

Nvidia 1600 和 2000 系列产品包括:

  • 4 x 1GB 8 Gbps GDDR5 芯片(GTX 1650 GDDR5)
  • 4 个 1GB 12 Gbps GDDR6 芯片(GTX 1650 GDDR6 和 GTX 1650 Super)
  • 6 x 1GB 8 Gbps GDDR5 芯片(GTX 1660)
  • 6 个 1GB 14 Gbps GDDR6 芯片(GTX 1660 Super 和 RTX 2060)
  • 6 x 1GB 12 Gbps GDDR6 芯片(GTX 1660 Ti)
  • 8 x 1GB 14 Gbps GDDR6 芯片(RTX 2060 Super、2070、2070 Super、2080)
  • 8 x 1GB 15.5 Gbps GDDR6 芯片(RTX 2080 Super)
  • 11 x 1GB 14 Gbps GDDR6 芯片(RTX 2080 Ti)
  • 12 个 2GB 14 Gbps GDDR6 (Titan RTX)

对于 3000 系列:

  • 6 x 2GB 15 Gbps GDDR6 (RTX 3060)
  • 8 x 1GB 14 Gbps GDDR6(RTX 3060 Ti、RTX 3070)
  • 8 x 1GB 19 Gbps GDDR6x (RTX 3070 Ti)
  • 10 x 1GB 19 Gbps GDDR6x (RTX 3080)
  • 12 个 1GB 19 Gbps GDDR6x (RTX 3080 Ti)
  • 12 个 2GB 19.5 Gbps GDDR6x (RTX 3090)

(值得注意的是,GDDR6x 采用的是 PAM4,也就是说它不再使用 0 和 1,而是有 4 种不同的状态,即 00、01、10 或 11,而不是 0 或 1。因此实际内存时钟速度低于 GDDR6)

需要注意的是,内存性能并不是显卡性能的唯一因素,例如,1650 GDDR6 比 GDDR5 版本慢约 10%,尽管内存速度提高了 50%,部分原因是由于该卡的功率限制导致核心时钟速度略低,该卡设计用于无需外部电源连接器。但总体而言,可以看出:

  • “总线宽度”是 32 的倍数,等于卡上的内存芯片数量
  • 对于 GDDR5(已过时),比特率可以是 5 到 9 Gbps 之间的任何值
  • 对于 GDDR5x(已过时),比特率跃升至 8-11 Gbps
  • 对于 GDDR6,通常达到 12-14 Gbps
  • 适用于 GDDR6x 19-19.5 Gbps
  • DDR3 和 DDR4 仅为 2 Gbps 左右

因此,内存带宽从根本上来说:

  • 总内存总线宽度(从 1 个内存芯片的 32 位到 12 个芯片的 384 位)x 内存比特率(即 2 - 19.5 Gbps)/ 8(每字节的位数)

我们可以将其重新排列如下:

  • 内存芯片数量 x 内存比特率 x 4(内存芯片中的字节数)

或者我们可以举例来说,GTX 3060 是 12GB,而 GTX 3070 是 8GB,并且注意到 3060 显然是 6 x 2GB 芯片,而 3070 是 8 x 1GB,速度更快(尽管 (较新的) 3060 从 14 Gbps 提升到 15 Gbps GDDR6 这一事实并不直观)。

答案3

我以为你已经有答案了,但我还是想从平庸的角度分享一个简单的答案。

假设我们关注的是 RAM:

  1. 内存带宽是指传输数据时的下载/上传速度。单位是(Gbps),即千兆位

  2. 内存速度是指读取/写入速度。单位是(GB/秒),即千兆字节

相关内容