NCCL(Nvidia Collective multi-GPU Communication Library) Nvidia英偉達的Multi-GPU多卡通信框架NCCL 學習;PCIe 速率調研;


為了了解,上來先看幾篇中文博客進行簡單了解:

內容摘錄:

  • 通信性能(應該主要側重延遲)是pcie switch > 同 root complex (一個cpu接幾個卡) > 不同root complex(跨cpu 走qpi)。ib的gpu direct rdma比跨cpu要快,所以甚至單機八卡要按cpu分成兩組,每組一個switch,下面四個卡,一個ib,不通過cpu的qpi通信,而是通過ib通信。- 摘自評論
  • 對於多個GPU卡之間相互通信,硬件層面上的實現有Nvlink、PCIe switch(不經過CPU)、Infiniband、以及PCIe Host Bridge(通常就是借助CPU進行交換)這4種方式。而NCCL是Nvidia在軟件層面對這些通信方式的封裝。

保持更新,更多內容,請參考cnblogs.com/xuyaowen; 

PCIe 速率

 

z390 芯片組資料:

https://ark.intel.com/content/www/cn/zh/ark/products/133293/intel-z390-chipset.html 

P2P 顯卡通信性能測試:

cuda/samples/1_Utilities/p2pBandwidthLatencyTest 

nvidia 驅動安裝:

https://www.cnblogs.com/xuyaowen/p/nvidia-driver-cuda-installation.html 

nccl 編譯安裝過程:

git clone git@github.com:NVIDIA/nccl.git

cd nccl

make -j src.build (進行編譯)

cd build 

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/yourname/nccl/build/lib # 添加環境變量;也可以配置環境變量.bashrc;

export C_INCLUDE_PATH=/home/yourname/nccl/build/include (設置 C 頭文件路徑)

export CPLUS_INCLUDE_PATH=/home/yourname/nccl/build/include (設置C++頭文件路徑)

測試是否安裝成功:

git clone https://github.com/NVIDIA/nccl-tests.git
cd nccl-tests 
make CUDA_HOME=/path/to/cuda NCCL_HOME=/path/to/nccl (具體編譯,可以參考官方文檔)
./build/all_reduce_perf -b 8 -e 256M -f 2 -g <ngpus> 

才是


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM