国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

【2023 · CANN訓(xùn)練營第一季】運行資源管理初探

2023-05-07 20:37 作者:白子不擺爛版  | 我要投稿

【2023 · CANN訓(xùn)練營第一季】運行資源管理初探

一、申請運行資源

申請運行管理資源順序:Device->Context->Stream

推薦這三者都顯式的創(chuàng)建,這樣有助于我們理清初始化的思路。

但是也可以隱式創(chuàng)建

  • 創(chuàng)建Device后不調(diào)用函數(shù)創(chuàng)建Context和Stream,系統(tǒng)會在調(diào)用Device創(chuàng)建函數(shù)時默認創(chuàng)建的Context和Stream,如果二者需要作為借口參數(shù)時,直接傳NULL即可。

  • 不顯式創(chuàng)建Device,則需要顯式創(chuàng)建Context和Stream,創(chuàng)建Context時系統(tǒng)內(nèi)部會調(diào)用接口指定運行的Device。

所用到的函數(shù):

note:Context創(chuàng)建后只能在該線程下使用,跨線程使用的時無法使用其他線程的Context。

二、API內(nèi)容

1.Device管理

相關(guān)函數(shù):

aclError aclrtSetDevice(int32_t deviceId) //指定當(dāng)前進程或線程中用于運算的Device,同時隱式創(chuàng)建默認Context。同步接口。

aclError aclrtResetDevice(int32_t deviceId) //復(fù)位當(dāng)前運算的Device,釋放Device上的資源,包括默認Context、默認Stream以及默認Context下創(chuàng)建的所有Stream,同步接口

aclError aclrtGetDevice(int32_t *deviceId) 獲取當(dāng)前正在使用的Device的ID,同步接口。

aclError aclrtGetRunMode(aclrtRunMode *runMode)//獲取當(dāng)前昇騰AI軟件棧的運行模式

aclError aclrtGetDeviceCount(uint32_t count)//獲取可用Device的數(shù)量,同步接口。

2.Context管理

相關(guān)函數(shù):

aclError aclrtCreateContext(aclrtContext *context, int32_t deviceId) //在當(dāng)前進程或線程中顯式創(chuàng)建一個Context。同步接口

aclError aclrtDestroyContext(aclrtContext context) //銷毀一個Context,釋放Context的資源,同步接口。只能銷毀通過aclrtCreateContext接口創(chuàng)建的Context。

aclError aclrtSetCurrentContext(aclrtContext context) //設(shè)置線程的Context,同步接口。

aclError aclrtGetCurrentContext( aclrtContext *context) //獲取線程的Context,同步接口。如果用戶多次調(diào)用aclrtSetCurrentContext接口設(shè)置當(dāng)前線程的Context,則獲取的是最后一次設(shè)置的Context。

3.Stream管理

相關(guān)函數(shù):

aclError aclrtCreateStream(aclrtStream stream) //在當(dāng)前進程或線程中創(chuàng)建一個Stream,同步接口。

aclError aclrtDestroyStream(aclrtStream stream) //銷毀指定Stream,只能銷毀通過aclrtCreateStream接口創(chuàng)建的Stream,同步接口。

三、申請&釋放運行資源代碼驗證學(xué)習(xí)

簡單測試這些函數(shù)的用法:

編譯使用的cmake如下,隨便在sample中找了個C++的工程簡單改了改,有空后面弄個makeFile用一下,要簡單一些

為了輸入編譯cmake簡單,搞了個簡單腳本build.sh協(xié)助運行一下

測試的代碼,其內(nèi)容為:acl初始化后讀取device數(shù)量,并設(shè)置要用的device,依次創(chuàng)建Context和Stream等,并按照創(chuàng)建順序的逆序銷毀。

這里切用戶踩了一個小坑,就是發(fā)現(xiàn)切完沒有用戶,搗鼓了半天,突然看到網(wǎng)上有人建議輸入 bash 一下,才出來用戶?

運行build.sh?

生成makefile文件,輸入make?

在out下生成了main執(zhí)行文件,運行它?

發(fā)現(xiàn)報錯,在社區(qū)文檔中查詢aclError?

于是我們創(chuàng)建該文件,再次運行。運行成功?

ps:該文僅是為了記錄CANN訓(xùn)練營的學(xué)習(xí)過程所用,不參與任何商業(yè)用途,有代碼問題可以私下與我交流修改



【2023 · CANN訓(xùn)練營第一季】運行資源管理初探的評論 (共 條)

分享到微博請遵守國家法律
衡水市| 永平县| 新余市| 商丘市| 泰安市| 曲水县| 遵化市| 马鞍山市| 武山县| 定日县| 沂水县| 甘谷县| 武夷山市| 民县| 贵港市| 湘西| 嘉义县| 循化| 东方市| 松原市| 莆田市| 通山县| 保靖县| 万盛区| 邛崃市| 临桂县| 河源市| 平武县| 上蔡县| 淄博市| 淮阳县| 固镇县| 永济市| 赤水市| 年辖:市辖区| 海盐县| 黑龙江省| 林甸县| 哈巴河县| 广元市| 平邑县|