最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【昇騰AscendCL應(yīng)用開發(fā)深入講解】① AscendCL概述

2023-04-01 17:01 作者:夢(mèng)中の象牙塔  | 我要投稿

??????? 體系化學(xué)習(xí)AscendCL應(yīng)用開發(fā)流程,目標(biāo)為對(duì)昇騰CANN有初步了解并且可以基于昇騰CANN獨(dú)立開發(fā)一個(gè)CV類圖片應(yīng)用。


??????? 通過本部分內(nèi)容,了解ACL(AdcendCL)的的功能架構(gòu)、基本概念以及接口的典型應(yīng)用流程與實(shí)現(xiàn)方法,能夠基于本部分的樣例,來擴(kuò)展進(jìn)行其他應(yīng)用的開發(fā)。

目錄

1 ACL簡(jiǎn)介

2 ACL基本概念

????Host

????Device

????同步/異步

????進(jìn)程/線程

????Context

????Stream

????Event

????AIPP

3 主要接口調(diào)用流程

????ACL的Hellow World代碼


1 ACL簡(jiǎn)介

????AscendCL(Ascend Computing Language,昇騰計(jì)算語(yǔ)言)接口是昇騰計(jì)算開放編程框架,是對(duì)低層昇騰計(jì)算服務(wù)接口的封裝。它提供運(yùn)行時(shí)資源(例如設(shè)備、內(nèi)存等)管理、模型加載與執(zhí)行、算子加載與執(zhí)行、圖片數(shù)據(jù)編解碼/剪裁/縮放處理等API庫(kù)實(shí)現(xiàn)在昇騰CANN平臺(tái)上進(jìn)行深度學(xué)習(xí)推理計(jì)算、圖形圖像預(yù)處理、單算子加速計(jì)算等能力。簡(jiǎn)單來說,就是同一的API框架,實(shí)現(xiàn)對(duì)所有資源的調(diào)用。

● AscendCL的優(yōu)勢(shì)如下:
??? 1、高度抽象:算子編譯、加載和執(zhí)行的API歸一,相比每個(gè)算子一個(gè)API,AcendCL大幅減少API數(shù)量,降低了復(fù)雜度;
??? 2、向后兼容:AsendCL能夠向后兼容,以確保軟件升級(jí)后,基于舊版本進(jìn)行編譯的程序依然可以在新版本上運(yùn)行;
??? 3、零感知芯片:同一套AsendCL接口可以實(shí)現(xiàn)應(yīng)用代碼統(tǒng)一,對(duì)于多款昇騰處理器可以無(wú)差異運(yùn)行。

● AscendCL的主要應(yīng)用場(chǎng)景如下:
??? 1、開發(fā)應(yīng)用:用戶可以直接調(diào)用AscendCL提供的接口,來開發(fā)圖片分類、目標(biāo)識(shí)別等應(yīng)用;
??? 2、供第三方框架調(diào)用:用戶可以通過第三方框架調(diào)用AscendCL接口,以便使用昇騰AI處理器的計(jì)算能力;
??? 3、供第三方開發(fā)lib庫(kù):用戶可以使用AscendCL封裝實(shí)現(xiàn)第三方lib庫(kù),以便提供昇騰AI處理的運(yùn)行管理、資源管理等能力。


2 ACL基本概念

Host

????指與Device相連的X86服務(wù)器、ARM服務(wù)器等,利用其提供的NN(Neural-Network)計(jì)算能力完成業(yè)務(wù)。

Device

??????? 指安裝了芯片的硬件設(shè)備,利用PCIe接口與Host側(cè)連接,為Host提供NN計(jì)算能力。
同步/異步
??????? 同步或異步是站在調(diào)用者和執(zhí)行者角度觀察的。在當(dāng)前場(chǎng)景下,若在Host調(diào)用接口后需要等待Device執(zhí)行完成后再返回,則表示Host的調(diào)度是同步的;若在Host調(diào)用接口后不等待Device執(zhí)行完成再返回,則表示Host的調(diào)度是異步的。

進(jìn)程/線程

??????? 如無(wú)特別注明,則表示是Host上的進(jìn)程/線程。

Context

??????? Context作為一個(gè)容器,管理所有對(duì)象(包括Stream、Event、設(shè)備內(nèi)存等)的生命周期。不同的Context的Stream、Event是完全隔離的,無(wú)法建立同步等待關(guān)系。

??????? Context分為兩種:
??????? 默認(rèn)Context:調(diào)用aclrtSetDevice接口來指定用于運(yùn)算的Device時(shí),系統(tǒng)會(huì)自動(dòng)隱式地創(chuàng)建一個(gè)默認(rèn)Context,一個(gè)Device對(duì)應(yīng)一個(gè)默認(rèn)Context,默認(rèn)Context不能通過aclrtDestroyContext接口來釋放。
??????? 顯式創(chuàng)建的Context:在進(jìn)程或線程中調(diào)用aclrtCreateContext接口,以顯式地創(chuàng)建一個(gè)Context。

Stream

??????? Stream用于維護(hù)一些異步操作的執(zhí)行順序,以確保按照應(yīng)用程序中的代碼調(diào)用順序在Device上執(zhí)行?;赟tream的kernel執(zhí)行和數(shù)據(jù)傳輸能夠?qū)崿F(xiàn)以下幾種類型的并行:
??? 1、Host運(yùn)算操作和Device運(yùn)算操作并行;
??? 2、Host運(yùn)算操作和“Host到Device的數(shù)據(jù)傳輸”并行;
??? 3、Device運(yùn)算操作和“Host到Device的數(shù)據(jù)傳輸”并行;
??? 4、Device內(nèi)的運(yùn)算并行。

??? ??? Stream分兩種:
??????? 默認(rèn)Stream:調(diào)用aclrtSetDevice接口指定用于運(yùn)算的Device時(shí), 系統(tǒng)會(huì)自動(dòng)隱式地創(chuàng)建一個(gè)默認(rèn)Stream,一個(gè)Device對(duì)應(yīng)一個(gè)默認(rèn)Stream,默認(rèn)Stream不能通過aclrtDestroyStream接來釋放。
??? ????顯式創(chuàng)建的Stream:在進(jìn)程或線程中調(diào)用aclrtCreateStream接口,以顯式地創(chuàng)建一個(gè)Stream。

Event

??????? 支持調(diào)用ACL接口來同步Stream之間的任務(wù),包括同步Host與Device之間的任務(wù)、Device與Device間的任務(wù)。
??????? 例如,若stream2的任務(wù)依賴stream1 的任務(wù),如果要保證stream1中的任務(wù)先完成,這時(shí)可創(chuàng)建一個(gè)Event,并將Event插入到stream1,在執(zhí)行stream2的任務(wù)前,先同步等待Event完成。

AIPP

??????? AIPP(AI Preprocessing)用于在Al Core上完成圖像預(yù)處理,主要有:
??? ????色域轉(zhuǎn)換:轉(zhuǎn)換圖像格式;
??? ????圖像歸一化:減均值/乘系數(shù);
??? ????摳圖:指定摳圖起始點(diǎn),摳出神經(jīng)網(wǎng)絡(luò)需要大小的圖片。

??????? AIPP區(qū)分為靜態(tài)AIPP和動(dòng)態(tài)AIPP。靜態(tài)AIPP和動(dòng)態(tài)AIPP只可選擇一種來處理圖片,不能同時(shí)配置靜態(tài)AIPP和動(dòng)態(tài)AIPP兩種方式。

● 靜態(tài)AIPP:
??????? 模型轉(zhuǎn)換時(shí)設(shè)置AIPP模式為靜態(tài),同時(shí)設(shè)置AIPP參數(shù),模型生成后,AIPP參數(shù)值被保存在離線模型(*.om) 中,每次模型推理過程采用固定的AIPP預(yù)處理參數(shù)(無(wú)法修改)。如果使用靜態(tài)AIPP方式,多Batch情況下共用同一份AIPP參數(shù)。

● 動(dòng)態(tài)AIPP:
??????? 模型轉(zhuǎn)換時(shí)僅設(shè)置AIPP模式為動(dòng)態(tài),每次模型推理前,根據(jù)需求,在執(zhí)行模型前設(shè)置動(dòng)態(tài)AIPP參數(shù)值,然后在模型執(zhí)行時(shí)可使用不同的AIPP參數(shù)。設(shè)置動(dòng)態(tài)AIPP參數(shù)值的接口請(qǐng)參見設(shè)置動(dòng)態(tài)AIPP參數(shù)。如果使用動(dòng)態(tài)AIPP方式,多Batch可使用不同的AIPP參數(shù)。


3 主要接口調(diào)用流程

ACL的Hellow World代碼

??????? 任何編程語(yǔ)言都有自己的Hellow World代碼,接下來同樣展示ACL的Hellow World代碼,以對(duì)其有一個(gè)初步的認(rèn)識(shí)。以下代碼功能為初始化ACL,初始化成功后即去初始化并結(jié)束:

????????通過華為云資源,在集成了昇騰310處理器(Device)的x86架構(gòu)的主機(jī)上運(yùn)行(Host),能夠得到以下運(yùn)行結(jié)果:


【昇騰AscendCL應(yīng)用開發(fā)深入講解】① AscendCL概述的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
武乡县| 遂昌县| 大同市| 长沙市| 上蔡县| 龙岩市| 东丽区| 溧阳市| 德阳市| 连云港市| 化隆| 汪清县| 天祝| 湖北省| 密云县| 墨竹工卡县| 个旧市| 论坛| 忻州市| 会泽县| 阳曲县| 阳山县| 红桥区| 崇阳县| 克东县| 龙里县| 当涂县| 大姚县| 永胜县| 太仆寺旗| 桂林市| 新建县| 镇远县| 五大连池市| 漠河县| 溆浦县| 嘉荫县| 九江市| 巴南区| 甘肃省| 沧源|