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

安裝并使用DeepNCCL

DeepNCCL是阿里云神龍異構產品開發的用于多GPU互聯的AI通信加速庫,能夠無感地加速基于NCCL進行通信算子調用的分布式訓練或多卡推理等任務。開發人員可以根據實際業務情況,在不同的GPU云服務器上安裝DeepNCCL通信庫,以加速分布式訓練或推理性能。本文主要介紹在Ubuntu或CentOS操作系統的GPU實例上安裝和使用DeepNCCL的操作方法。

說明

關于DeepNCCL的更多信息,請參見什么是AI通信加速庫DeepNCCL

使用限制

  • 已創建阿里云GPU實例,且GPU實例需滿足以下限制:

    • 操作系統為Ubuntu 18.04或更高版本,以及CentOS 7.x或更高版本。

    • 已安裝GPU Driver、CUDA 11.4或更高版本。

      創建GPU實例時,選擇鏡像后,建議您同時選中安裝GPU驅動選項,然后依次選擇CUDA版本、Driver版本以及cuDNN版本,具體操作,請參見創建GPU實例

  • 僅部分GPU實例支持使用DeepNCCL。

    DeepNCCL支持的NCCL通信算法如下所示,本文以常用的allreduce(全局歸約)通信算法為例展示DeepNCCL的優化效果。

    NCCL通信算法

    支持的GPU實例

    說明

    allgather(全收集)

    多機優化

    • V100:ecs.gn6v-c10g1.20xlarge、ecs.gn6e-c12g1.24xlarge、ecs.ebmgn6e.24xlarge、ecs.ebmgn6v.24xlarge

    • ecs.ebmgn7e.32xlarge、ecs.ebmgn7ex.32xlarge、ecs.sccgn7ex.32xlarge、ecs.gn7e-c16g1.32xlarge

    • 訓練2個機型提升60%。

    • 多機最大支持擴展20個機型。

    reduce-scatter(分散歸約)

    多機優化

    • V100:ecs.gn6v-c10g1.20xlarge、ecs.gn6e-c12g1.24xlarge、ecs.ebmgn6e.24xlarge、ecs.ebmgn6v.24xlarge

    • ecs.ebmgn7e.32xlarge、ecs.ebmgn7ex.32xlarge、ecs.sccgn7ex.32xlarge、ecs.gn7e-c16g1.32xlarge

    • 訓練2個機型提升60%。

    • 多機最大支持擴展8個機型。

    allreduce(全局歸約)

    多機優化:

    • V100:ecs.gn6v-c10g1.20xlarge、ecs.gn6e-c12g1.24xlarge、ecs.ebmgn6e.24xlarge、ecs.ebmgn6v.24xlarge

    • ecs.ebmgn7e.32xlarge、ecs.ebmgn7ex.32xlarge、ecs.sccgn7ex.32xlarge、ecs.gn7e-c16g1.32xlarge

    • 訓練2個機型提升40%。

    • 多機最大支持擴展8個機型。

    單機優化:

    A10:ecs.ebmgn7ix.32xlarge

    ebmgn7ix單機在512 B~2 MB下訓練效率提升10%~100%。

安裝DeepNCCL

  1. 根據GPU實例的操作系統,選擇不同方式安裝DeepNCCL。

    Ubuntu操作系統

    • (推薦)PyPi安裝方式

      執行以下命令,直接從阿里云Pip源中安裝最新的DeepNCCL 2.1.0。

      pip install deepnccl
    • .deb安裝包方式

      1. 執行以下命令,從OSS中直接下載DeepNCCL的.deb安裝包。

        本步驟以下載DeepNCCL 2.1.0版本為例。

        wget http://aiacc.oss-cn-beijing.aliyuncs.com/deepnccl/release/2.1.0/deb/deep-nccl-2.1.0.deb
      2. 執行以下命令,安裝DeepNCCL。

        dpkg -i deep-nccl-2.1.0.deb

    CentOS操作系統

    • (推薦)PyPi安裝方式

      執行以下命令,直接從阿里云Pip源中安裝最新的DeepNCCL 2.1.0。

      pip install deepnccl
    • .rpm安裝包方式

      1. 執行以下命令,從OSS中直接下載DeepNCCL的.rpm安裝包。

        本步驟以下載DeepNCCL 2.1.0版本為例。

        wget http://aiacc.oss-cn-beijing.aliyuncs.com/deepnccl/release/2.1.0/rpm/deep-nccl-2.1.0.rpm
      2. 執行以下命令,安裝DeepNCCL。

        rpm -i deep-nccl-2.1.0.rpm
  2. 執行以下命令,查看DeepNCCL是否安裝成功。

    ldconfig -p | grep nccl

    回顯結果如下圖所示,顯示libnccl.so.2表示DeepNCCL已安裝成功。

    Dingtalk_20240429113223.jpg

使用DeepNCCL

DeepNCCL(包括aiacc-nccl-plugin)安裝成功后,您可以直接使用DeepNCCL的通信優化功能,無需再進行其他配置。以下示例通過nccl-tests展示DeepNCCL在V100兩機16卡模型上,采用allreduce通信算法進行加速的效果。

腳本示例

NVIDIA nccl-tests中下載nccl-tests軟件包,按照nccl-tests軟件包中的README.md中的說明,復制以下腳本示例來加載優化算法。

mpirun --allow-run-as-root \
  --np 16 -npernode 8  \
  --hostfile hostfile \
  -mca btl_tcp_if_include eth0 \
  -x NCCL_DEBUG=info \
  -x NCCL_ALGO=Ring \
  ./build/${op}_perf -b 256K -e 1G -d $datatype -f 2 -g 1 -w 10 -n 100

算法加載與當前機型拓撲有關,如下圖所示,表示優化算法加載成功。

已加載.png

性能提升效果

相比NCCL優化性能(Baseline),使用DeepNCCL在V100兩機16卡模型上進行分布式優化時,采用allreduce通信算法,其優化提升效果顯著,具體busbw值如下圖所示:

  • ①:表示使用NCCL(Baseline)進行分布式優化時,其優化性能的busbw值。

  • ②:表示使用DeepNCCL進行分布式優化時,其優化性能的busbw值。

deepNCCL.png

卸載DeepNCCL

如果您的業務暫不需要使用DeepNCCL優化能力,您可以通過以下方式卸載DeepNCCL。

Ubuntu操作系統

  • 如果您采用PyPi安裝方式安裝了DeepNCCL,則執行以下命令卸載DeepNCCL。

    pip uninstall deepnccl
  • 如果您采用.deb安裝包方式安裝了DeepNCCL,則執行以下命令卸載DeepNCCL。

    dpkg -r deep-nccl

CentOS操作系統

  • 如果您采用PyPi安裝方式安裝了Deepnccl,則執行以下命令卸載Deepnccl。

    pip uninstall deepnccl
  • 如果您采用.rpm安裝包方式安裝了Deepnccl,則執行以下命令卸載Deepnccl。

    rpm -e deep-nccl