HCCL開源了!華為集合通信庫開源鏈接、拓撲算法、常用接口 原創(chuàng)
激動啊!我們華為HCCL終于開源了!
視頻分享在這:
??華為集合通信庫開源了!HCCL開源鏈接、拓撲算法、常用接口_嗶哩嗶哩_bilibili??
一、HCCL相關鏈接
源碼位置(需注冊華為賬號才可下載)
??cann-hccl: cann-hccl,是基于昇騰硬件的高性能集合通信庫(Huawei Collective Communication Library,簡稱HCCL)。??
HCCL主頁
HCCL官方視頻教程
HCCL文檔
??HCCL接口簡介-集合通信接口-CANN商用版8.0.RC2開發(fā)文檔-昇騰社區(qū)??
HCCL性能測試工具
??工具介紹-HCCL性能測試工具-訓練推理開發(fā)工具-開發(fā)工具-CANN商用版8.0.RC2開發(fā)文檔-昇騰社區(qū)??
二、HCCL介紹
2.1 概述
華為集合通信庫(Huawei Collective Communication Library,簡稱HCCL)是基于昇騰AI處理器的高性能集合通信庫,提供單機多卡以及多機多卡間的數(shù)據(jù)并行、模型并行集合通信方案。
HCCL的軟件架構如下圖所示,分為“通信框架”、“通信算法”與“通信平臺”三個模塊,本源碼倉中包含了其中紫色底紋所示的“
通信框架”與“
通信算法”兩個模塊的源碼。
- 適配層,圖引擎與單算子適配,進行通信切分尋優(yōu)等操作。
- 集合通信業(yè)務層,包括通信框架與通信算法兩個模塊:
- 通信框架:負責通信域管理,通信算子的業(yè)務串聯(lián),協(xié)同通信算法模塊完成算法選擇,協(xié)同通信平臺模塊完成資源申請并實現(xiàn)集合通信任務的下發(fā)。
- 通信算法:作為集合通信算法的承載模塊,提供特定集合通信操作的資源計算,并根據(jù)通信域信息完成通信任務編排。
- 集合通信平臺層,提供NPU之上與集合通信關聯(lián)的資源管理,并提供集合通信維測能力。
2.2 支持的拓撲算法
HCCL源碼倉提供了Mesh、Ring、Recursive Halving-Doubling(RHD)、PairWise四種拓撲算法的實現(xiàn)源碼。
算法 | 描述 | 原理與耗時 |
Mesh | Server內通信算法,是Mesh互聯(lián)拓撲的基礎算法。 | Mesh |
Ring | Server內和Server間通信算法,是基于環(huán)結構的并行調度算法。 Server間通信場景下,適用于小規(guī)模節(jié)點數(shù)(<32機,且非2冪)和中大規(guī)模通信數(shù)據(jù)量(>=256M)的場景。 | Ring |
RHD | Server間通信算法,遞歸二分和倍增算法,當通信域內Server個數(shù)為2的整數(shù)次冪時,此算法具有較好的親和性。 | RHD |
Pairwise | Server間通信算法,比較算法,僅用于AllToAll與AlltoAllV算子,適用于數(shù)據(jù)量較?。?lt;=1M * RankSize)的場景。 | PairWise |
Star | Server內通信算法,Star算法適用于有根節(jié)點的通信操作(如Broadcast、Reduce、Gather、Scatter等),利用星型拓撲或全連接拓撲一步完成通信操作。 | Star |
2.2.1 服務器內的Ring拓撲
如下圖所示,可構建4個邏輯ring環(huán):
左圖的黃線表示PCIe,藍線表示HCCS(High-speed Custom Communication System)是華為為其昇騰(Ascend)系列 AI 處理器設計的高速互連技術。
2.2.2 服務器間的Halving doubling
2.2.2 服務器內和間拓撲算組合
這里針對AllReduce集合通信
框內代表服務器內,框間代表服務器間。
三、HCCL常用接口
四、源碼居然有一些中文注釋
多少年源碼里面沒看到中文了,看的我快哭了!
