【2023 · CANN訓(xùn)練營(yíng)第一季】——聽(tīng)CANN首席架構(gòu)師解密TIC C算子開(kāi)發(fā)

前言:2023年5月昇騰AI開(kāi)發(fā)者峰會(huì)上,昇騰CANN首席架構(gòu)師閆長(zhǎng)江老師解密了全新的TIK C算子編程體系肛搬。正好CANN訓(xùn)練營(yíng)開(kāi)設(shè)了TIK C算子開(kāi)發(fā)的課程,學(xué)習(xí)完成后再聽(tīng)大神的串講,有種豁然開(kāi)朗的感覺(jué)来涨。

CANN訓(xùn)練營(yíng)的TIK C算子課程參見(jiàn):

https://www.hiascend.com/zh/developer/courses/detail/1627494761683783682

????????閆老師的演講包括三部分內(nèi)容:第一部分是基礎(chǔ)概念塔橡,包括CANN的基礎(chǔ)知識(shí)梅割,以及Ascend C算子并行計(jì)算的硬件和理論基礎(chǔ);第二部分講述了Ascend C算子編程的關(guān)鍵概念(核函數(shù)和編程范式)和編程實(shí)踐葛家,以及算子測(cè)試程序的編程方法户辞;第三部分講述了Ascend C算子在cpu和npu上的孿生調(diào)試。

????????下面是老師演講的PPT惦银。

一咆课、基礎(chǔ)知識(shí)

一)異構(gòu)計(jì)算架構(gòu)CANN

二)算子的硬件基礎(chǔ)

????????下面這張圖末誓,清晰展示了AICore的內(nèi)部架構(gòu)及模塊功能,也講述了Global Mem和Local Mem的關(guān)系书蚪,Local Mem靠近計(jì)算單元喇澡,帶寬非常高,但容量不大殊校,一般是幾百KB到幾MB晴玖;而Global Mem容量大,但帶寬不高为流。因此需要將Global Mem的數(shù)據(jù)搬運(yùn)到Local Mem上呕屎,進(jìn)行運(yùn)算,運(yùn)算完成后再將運(yùn)算結(jié)構(gòu)從Local Mem搬運(yùn)到Global Mem上敬察。

下面這張圖講述了一個(gè)Aicore的內(nèi)部的計(jì)算單元秀睛,其中的向量和矩陣計(jì)算單元都是單指令多數(shù)據(jù)計(jì)算,也就是一個(gè)指令周期可以實(shí)現(xiàn)一組數(shù)據(jù)的加和乘莲祸。

三)并行計(jì)算? ? ? ??

????????下面這張圖蹂安,講述了并行計(jì)算中的兩種常見(jiàn)方法:SPMD和流水線,這兩種方法都會(huì)提現(xiàn)到Ascend C的編程模型和編程方法中锐帜。

二田盈、Ascend C算子編程

核函數(shù)體現(xiàn)的是SPMD的編程思想,同時(shí)簡(jiǎn)化了用戶的代碼實(shí)現(xiàn)缴阎。開(kāi)發(fā)代碼時(shí)允瞧,只需要寫單個(gè)AI Core核的實(shí)現(xiàn)代碼。

Ascend C算子采用標(biāo)準(zhǔn)的C++和一組專門的類庫(kù)API進(jìn)行編程的蛮拔。這些API包括計(jì)算的述暂,數(shù)據(jù)搬運(yùn)以及同步等操作的API。API的操作對(duì)象是Tensor语泽,Tensor根據(jù)存儲(chǔ)位置不同分為GlobalTensor和LocalTensor贸典。

????????TPIPE的編程范式,實(shí)現(xiàn)了前述的流水線方式的并行計(jì)算踱卵。

算子編寫完成后廊驼,可以通過(guò)host側(cè)的應(yīng)用開(kāi)發(fā)接口,調(diào)用開(kāi)發(fā)好的算子進(jìn)行測(cè)試惋砂,驗(yàn)證妒挎。

????????下圖講述的是直接調(diào)用核函數(shù)的方式進(jìn)行算子代碼測(cè)試的。包括CPU和NPU兩種測(cè)試方法西饵,通過(guò)“__CCE_KT_TEST__”宏定義區(qū)分是運(yùn)行在CPU上的代碼還是NPU上的代碼酝掩。

三、Ascend C算子孿生調(diào)試

????????TIK C算子的調(diào)試手段豐富眷柔,可以在CPU期虾,也可以在NPU上調(diào)試原朝。這就是算子的孿生調(diào)試技術(shù)。

一)CPU域調(diào)試調(diào)優(yōu)

????????在CPU側(cè)調(diào)試時(shí)镶苞,可以使用gdb工具進(jìn)行調(diào)試喳坠,還有指令LOG和NPUcheck主動(dòng)錯(cuò)誤分析工具兩大神器。指令log功能會(huì)把真正執(zhí)行的指令隊(duì)列列出來(lái)茂蚓,也就是在運(yùn)行CPU的核函數(shù)調(diào)用方式的編譯運(yùn)行后壕鹉,會(huì)生成*.cce的文件,數(shù)量和定義的AiCore的數(shù)量一致聋涨,里面記錄某個(gè)核上的實(shí)際指令序列晾浴。


二)NPU的仿真調(diào)試能力??

????????提供了強(qiáng)大的指令日志和數(shù)據(jù)日志功能,便于分析和調(diào)試問(wèn)題牍白。從下面的圖脊凰,可以看出double buffer的作用。

三)上板運(yùn)行調(diào)試能力:打印板上運(yùn)行統(tǒng)計(jì)淹朋,以及支持打印數(shù)據(jù)功能

最后笙各,閆老師對(duì)本次演講的內(nèi)容做了小結(jié):

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钉答,一起剝皮案震驚了整個(gè)濱河市础芍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌数尿,老刑警劉巖仑性,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異右蹦,居然都是意外死亡诊杆,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門何陆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)晨汹,“玉大人,你說(shuō)我怎么就攤上這事贷盲√哉猓” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵巩剖,是天一觀的道長(zhǎng)铝穷。 經(jīng)常有香客問(wèn)我,道長(zhǎng)佳魔,這世上最難降的妖魔是什么曙聂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮鞠鲜,結(jié)果婚禮上宁脊,老公的妹妹穿的比我還像新娘断国。我一直安慰自己,他們只是感情好榆苞,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布并思。 她就那樣靜靜地躺著,像睡著了一般语稠。 火紅的嫁衣襯著肌膚如雪宋彼。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,785評(píng)論 1 314
  • 那天仙畦,我揣著相機(jī)與錄音输涕,去河邊找鬼。 笑死慨畸,一個(gè)胖子當(dāng)著我的面吹牛莱坎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寸士,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼檐什,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了弱卡?” 一聲冷哼從身側(cè)響起乃正,我...
    開(kāi)封第一講書(shū)人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎婶博,沒(méi)想到半個(gè)月后瓮具,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凡人,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年名党,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挠轴。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡传睹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岸晦,到底是詐尸還是另有隱情欧啤,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布委煤,位于F島的核電站堂油,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏碧绞。R本人自食惡果不足惜府框,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迫靖,春花似錦院峡、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至盹牧,卻和暖如春俩垃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背汰寓。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工口柳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人有滑。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓跃闹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親毛好。 傳聞我的和親對(duì)象是個(gè)殘疾皇子望艺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容