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