比喻:

比喻:

我目前正在学习 CUDA,我经常遇到这样的短语

“GPU 具有专用内存,其带宽是 CPU 内存的 5-10 倍”

这里供第二张幻灯片参考

那么带宽在这里到底意味着什么呢?具体来说,

  • CPU 带宽
  • GPU 的带宽
  • GPU 安装到主板上的 PCI-E 插槽的带宽。

我对计算机架构的背景很差,所以如果有人能对这些术语进行非常简单的解释,那将非常有帮助。

我对带宽的理解非常有限,它是指每秒从 CPU 到 GPU 传输的最大千兆字节数。但这并不能解释为什么我们需要定义三种类型的带宽。

答案1

比喻:

带宽的常见比喻是高速公路。车道越多,汽车行驶速度越快,则高速公路上同时行驶的汽车就越多。

假设您需要用卡车代替汽车将一大堆商品或邮件从一个城市运送到另一个城市,那么就需要用卡车代替汽车。如果您有一条单车道高速公路,那么只有一队卡车可以行驶,这样就减少了可以运输的商品数量,因此需要更长的时间才能全部运送完。相反,如果您有一条 10 车道公路,但每辆卡车的速度都很慢,那么运送所有货物仍然需要很长时间。

现在想象一下,你不是要送货到下一个城镇,而是要送货给父亲。要把货物从这个城市运到另一个国家,必须经过几个城市,而每个城市之间有不同的高速公路;有的窄,有的宽,有的上坡,有的下坡,等等。如果从城市 1 到城市 2 的道路是理想的,从城市 3 到城市 4(目的地)的道路也是理想的,但城市 2 和城市 3 之间的道路很糟糕,那么它就变成了瓶颈。这导致 3 和 4 之间的道路未得到充分利用,并减慢了总体运送时间。

应用:

回到计算机世界,将数据从一个地方传输到另一个地方的情况是一样的。你有 CPU、GPU 和 RAM(城市)等设备,以及电缆和公交车(道路,不要与公交车混淆,尽管这仍然有效)。像 CPU 这样的设备可以以一定的速率处理数据的输入和输出,可以可以称为带宽,尽管没有人真正这么称呼它。相反,带宽通常是指数据通过的路径。当您有一台设备吐出需要发送到其他地方的数据时。带宽是数据可以通过的数量(车道数)和速度(卡车速度)。

问题具体解释:

在你提到的例子中,他们指的是GPU 具有专用内存,其带宽是 CPU 内存的 5-10 倍不是 CPU 或 GPU 本身的带宽,而是数据在这些设备及其相关内存之间来回传递的带宽。具体来说,数据在 CPU 和主系统 RAM 之间传递的总线带宽低于数据在 GPU 和视频卡 RAM 之间传递的总线带宽。这是由于两个因素:宽度和速度。

GPU端:

如今,GPU 和视频 RAM 之间的总线宽度通常为 128 位,因为视频 RAM 与 GPU 集成在同一个适配器中。这两个组件由同一家公司组装,这意味着它们可以紧密集成 GPU 和视频 RAM,从而提供极高的传输速度。此外,如今的视频 RAM 往往是专用的 GDDR3 内存,这意味着它可以非常快速地访问(读/写)数据。最后,GPU 是一种专用的 CPU,由于图形编程的性质,它可以以极快的速度执行各种疯狂的算术运算。

CPU 端:

另一方面,CPU 和系统 RAM 之间的总线通常只有 64 位。造成这种情况的原因有很多,但兼容性往往是主要的限制因素。另外,请记住,系统通常由来自不同来源的组件构建而成。一家制造商制造 CPU,另一家(或两家或三家)制造商制造 RAM,还有一家制造商制造总线所在的主板。无法提前知道系统中将存在哪些组件(哪个 CPU?哪种 RAM?无数种主板型号中的哪一种?),因此它们必须符合标准,而标准通常会降低到最低标准。如果其中一个 RAM 模块比其他模块慢,则它们都必须降低速度以适应慢速的模块。如果主板只能处理 400MHz RAM,那么 800MHz 内存必须以半速运行,依此类推。所有这些因素都限制了 CPU 和系统 RAM 之间的总带宽。RAM 本身,即使 DDR3 也可能比专用视频 RAM 慢。最后,与 GPU 相比,CPU 是一种通用处理器,因此总体而言速度会比较慢。

概括:

总之,该幻灯片暗示了视频卡的处理器和内存作为一个单元的性能远远超过系统的处理器和内存作为一个单元。

答案2

带宽可以想象成水管的直径。水管越宽,单位时间内流经某一部分的水量就越大。因此,设备的带宽越大,单位时间内传输的数据量就越大。

答案3

带宽只是表示您的设备每次可以传输多少数据。

您不必定义三种不同的带宽,这仅意味着系统中的每个连接都有一个带宽,并且其中的每一条线路都可能成为某些设备的瓶颈。

例如:

242 MB/s 意味着每秒可以传输 242 MB。现在,如果您的应用程序需要在大量 RAM 上执行大量内存操作,那么您的内存带宽就会成为瓶颈,即使您的 CPU 可以更快地计算工作。

相关内容