為了了解,上來先看幾篇中文博客進行簡單了解:
- 如何理解Nvidia英偉達的Multi-GPU多卡通信框架NCCL?(較為優秀的文章)
- 使用NCCL進行NVIDIA GPU卡之間的通信 (GPU卡通信模式測驗)
- nvidia-nccl 學習筆記 (主要是一些介面介紹)
- https://developer.nvidia.com/nccl (官方網站)
- https://github.com/NVIDIA/nccl (官方倉庫)
- https://www.cnblogs.com/xuyaowen/p/heterogeneous-system-architecture.html GPU 相關架構
- https://www.nvidia.cn/data-center/nvlink/ (NVLink)
- https://docs.nvidia.com/deeplearning/sdk/nccl-developer-guide/docs/overview.html (nccl doc)
內容摘錄:
- 通信性能(應該主要側重延遲)是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 [email protected]: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>
才是
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/157112.html
標籤:Linux
上一篇:【原創】(十)Linux記憶體管理 - zoned page frame allocator - 5
下一篇:服務狀態控制
