NCCL不同原语操作的算力带宽与总线带宽
带宽表示操作期间的数据传输速率,分为两种类型:
算法带宽 (Algorithm Bandwidth)
公式:algbw=S/t
其中 S 是数据大小,ttt 是时间。
用途:
用于计算任何大规模操作所需的时间,通过将操作大小除以算法带宽。
反映操作本身的效率。
算法带宽使用最常用的带宽公式:size (S) / time (t)。只需用操作的大小除以算法带宽,就能计算出任何大型操作需要多少时间。
总线带宽 (Bus Bandwidth)
定义:反映 GPU 间通信速度,与硬件的峰值带宽相比,不受节点数量影响。
重要性:
提供一个反映硬件使用效率的度量。
对于集体操作,算法带宽会随节点数量变化,而总线带宽则提供一个更一致的硬件能力对比。
虽然算法带宽对发送/接收等点对点操作很有意义,但它并不总是有助于测量集体操作的速度,因为理论峰值算法带宽并不等同于硬件峰值带宽,通常取决于ranks。大多数基准仅提供时间测量,这对于大型系统来说很难解释。其他一些基准也提供了算法带宽,但根据ranks的不同,带宽也不同(随着ranks的增加而降低)。为了提供一个能反映硬件最佳使用情况的数字,NCCL 测试引入了 "总线带宽 "的概念(测试输出中的 "busbw "列)。这个数字是通过对算法带宽应用一个公式得出的,以反映 GPU 之间的通信速度。使用该总线带宽,我们可以将其与硬件峰值带宽进行比较,与使用的ranks无关。该公式取决于集体操作
原文地址:https://blog.csdn.net/weixin_43791937/article/details/140682631
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!