日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

什么是AI通信加速庫DeepNCCL

DeepNCCL是為阿里云神龍異構產品開發的一種用于多GPU互聯的AI通信加速庫,在AI分布式訓練或多卡推理任務中用于提升通信效率。本文主要介紹DeepNCCL的架構、優化原理和性能說明。

產品簡介

DeepNCCL基于NCCL(NVIDIA Collective Communications Library)通信算子的調用,能夠實現更高效的多GPU互聯通信,無感地加速分布式訓練或多卡推理等任務。

DeepNCCL的關聯架構布局圖如下所示:

image

架構層

說明

AI模型

DeepNCCL在AI場景下使用時,具備通用性能,適用模型包括但不限于LLM大模型和SD文生圖等AI模型。

AI框架層

在AI框架層,支持的AI框架和功能如下:

  • 支持通用的AI框架,例如PyTorch、TensorFlow、Mxnet等AI框架。

  • 支持基于AI框架之上的并行框架,例如Megatron、DeepSpeed、Collossal-AI等衍生框架。

  • DeepNCCL通過底層Deepytorch實現了PyTorch框架的充分兼容和無感分布式訓練性能優化,增加融合優化等額外調優手段。

    說明

    如需了解Deepytorch的更多信息,請參見什么是Deepytorch Training(訓練加速)

DeepNCCL通信加速

接口層

在接口層,通過DeepncclWrapper封裝nccl-base函數,提供了對通信算法的通用支持。支持的NCCL通信算法包括allreduce(全局歸約)、reduce-scatter(分散歸約)、allgather(全收集)等。

集合算法層

在集合算法層,通過集合通信編譯技術,針對不同的機型構建自適應拓撲算法,實現NCCL Runtime充分兼容和無感的集合通信拓撲優化。

網絡層

在網絡層,通過對阿里云的VPC、RDMA或者eRDMA網絡基礎設施進行適配優化,實現網絡層無感的通信優化。

優化原理

DeepNCCL通信加速庫在AI分布式訓練或多卡推理任務中,具有顯著的通信優化效果。具體說明如下:

單機優化

單機內的優化主要針對不同硬件拓撲機型的通信優化,以PCIe互連的機型和NVLink互連的機型為例,具體說明如下:

  • PCIe互連拓撲優化:該機型的多GPU卡之間共享PCIe帶寬,通信容易受限于物理帶寬。針對PCIe互連拓撲的通信優化特點,理論上,可以采用基于流水線的PS(Parameters Server:參數服務器)模式梯度規約算法CPU-Reduce大幅降低通信耗時。該算法按照GPU到CPU再到GPU的順序構建流水線,將梯度規約的計算分散到多個設備上運行,來減少通信瓶頸。

    例如,在通信數據量超過4 MB的場景,PCIe互連拓撲優化方案相比NCCL原生在性能上提升了20%以上。

  • NVLink互連拓撲優化:NCCL默認使用的Binary-Tree算法在V100機型上并不能充分發揮多通道性能。針對NVLink互連拓撲的通信優化,可以通過擴展單機內部不同的N-Trees拓撲結構組合,實現了拓撲調優并發揮多通道性能。

    例如,在通信數據量超過128 MB的場景下,NVLink互連拓撲優化方案相比NCCL原生在性能上提升了20%以上。

多機優化

多機優化體現在通信算子編譯優化、TCP多流優化、多機CPU-Reduce優化三個方面,具體說明如下:

  • 通信算子編譯優化:針對阿里云上不同機型,以及網卡與GPU的不同拓撲連接等特點,相比較基于全局拓撲結構實現的Allreduce、Allgather或Reduce-scatter等算法,Hybrid+算法支持單機和多機的分層通信,充分利用單機內部高速帶寬的同時降低了多機之間的通信量,通信算子編譯優化方案相比NCCL原生在性能上提升了50%以上。

  • 通信多流優化:通常情況下,因網絡帶寬沒有被充分利用,會導致上層集合通信算法的跨機性能無法達到最優。而采用基于TCP/IP的多流功能,提升分布式訓練的并發通信能力,可以實現多機訓練性能提升5%~20%。

  • 多機CPU-Reduce:該優化繼承了單機內CPU-Reduce高效的異步流水線,并將跨機Socket通信也設計為流水線形態,實現多機通信全過程流水化,有效減少通信延遲,提高整體訓練性能。

    例如,在通信量較大的Transformer-based模型的多機訓練場景下,多機CPU-Reduce優化方案可將端到端性能提升20%以上。

性能說明

DeepNCCL通信加速庫具有Allreduce單機優化、Allreduce多機優化、Reduce-scatter多機優化以及Allgather多機優化性能,具體說明如下:

特性

支持范圍

性能提升率說明

Allreduce單機優化

支持A10的8卡機型,例如ecs.ebmgn7ix.32xlarge。

相比NCCL原生,使用DeepNCCL進行Allreduce單機優化后,當通信數據量為512 B~2 M時,其通信性能提升10%~100%。

Allreduce多機優化

支持V100或A10等機型,例如

ecs.gn6v-c10g1.20xlarge或

ecs.ebmgn7ix.32xlarge。

  • 相比NCCL原生,使用DeepNCCL進行Allreduce雙機優化后,當通信數據量為128 M~256 M時,其通信性能提升10%~20%。

  • DeepNCCL目前支持最多在8臺機器上進行協同訓練。

Reduce-scatter多機優化

支持V100或A10等機型,例如

ecs.gn6v-c10g1.20xlarge或 ecs.ebmgn7ix.32xlarge。

  • 相比NCCL原生,使用DeepNCCL進行Reduce-scatter雙機優化后,其通信性能提升30%。

  • DeepNCCL目前支持特定的多機進行擴展,即2機2卡、2機4卡、2機8卡、4機8卡、7機8卡或8機8卡機型。

allgather多機優化

支持V100或A10等機型,例如

ecs.gn6v-c10g1.20xlarge或

ecs.ebmgn7ix.32xlarge。

  • 相比NCCL原生,使用DeepNCCL進行Allgather雙機優化后,其通信性能提升80%。

  • DeepNCCL目前支持最多在20臺機器上進行協同訓練。

相關文檔

針對分布式訓練或者多卡推理中的AI通信場景,在不同的GPU云服務器上安裝DeepNCCL通信庫,可以加速分布式訓練或推理性能。具體操作,請參見安裝并使用Deepnccl