[發明專利]一種在CANN計算構架下自動優化晟騰AI處理器性能及精度的方法在審
| 申請號: | 202210854068.0 | 申請日: | 2022-07-13 |
| 公開(公告)號: | CN115409165A | 公開(公告)日: | 2022-11-29 |
| 發明(設計)人: | 孫亞楠;梁子軒;宋孝天;歐玉威;馮雨麒 | 申請(專利權)人: | 四川大學 |
| 主分類號: | G06N3/063 | 分類號: | G06N3/063;G06N3/04;G06N3/08 |
| 代理公司: | 成都時譽知識產權代理事務所(普通合伙) 51250 | 代理人: | 李雙 |
| 地址: | 610000 四*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 cann 計算 構架 自動 優化 ai 處理器 性能 精度 方法 | ||
本發明公開了一種在CANN計算構架下自動優化晟騰AI處理器性能及精度的方法,包括如下步驟:步驟一,獲取神經網絡中所有的算子,根據算子的數據類型進行二進制編碼;步驟二,初始化候選解種群,生成預設數量的候選解;步驟三,適應度評估,以生成的候選解設置進行神經網絡的訓練,得到性能數據,若候選解個體的性能數據以及溢出數據都滿足預設的,則將其性能數據的倒數作為其適應度;步驟四,選擇候選解進行交叉、變異以生成下一代種群;步驟五,判斷是否滿足預設的中止條件,若滿足,輸出最佳方案,根據最佳方案對昇騰AI處理器性能及精度進行優化;若不滿足,返回步驟三。通過本發明,可以實現在滿足性能要求的同時盡可能地提高精度。
技術領域
本發明涉及AI處理器領域,具體是一種在CANN計算構架下自動優化晟騰AI處理器性能及精度的方法。
背景技術
CANN(Compute Architecture for Neural Networks)異構計算架構,是專門面向AI場景的統一異構計算架構,CANN可以釋放昇騰硬件澎湃的算力,通過提供多層次的編程接口,支持用戶快速構建基于昇騰平臺的AI應用和業務。對上支持主流前端框架(如MindSpore,TensorFlow,PyTorch等),向下對用戶屏蔽系列化芯片的硬件差異,可以在昇騰平臺的多款AI處理器(NPU)上做計算,以全場景、低門檻、高性能的優勢,滿足用戶全方位的人工智能訴求。昇騰910AI處理器是人工智能(AI)專用的神經網絡處理器,其算力高達256T,最新款算力高達310T,是業界主流處理器算力的2倍,可配套MindSpore訓練框架。當前業界大多數深度神經網絡訓練腳本基于TensorFlow的Python API開發,默認運行在CPU/GPU/TPU上。為了使其能夠利用NPU的澎湃算力執行訓練,提升訓練性能,CANN提供了使用TensorFlow在NPU上進行模型適配訓練的功能。
在神經網絡的訓練過程中,算子是支持網絡計算的基本單元,常見的算子如卷積、池化、矩陣乘等。大多數的深度學習模型的算子的數據類型是32位單精度浮點數(FP32),但是CANN由于硬件層面的限制以及軟件實現的不同,其更親和16位精度浮點數(FP16)的算子,并且限定了某些算子必須為FP16(例如Conv2D)。使用FP16進行運算可以加快處理器的計算速度,但是會不可避免地發生數據溢出的問題,這會導致模型精度的降低,甚至破壞模型的訓練過程。使用FP32進行運算雖然能保證精度,但是又增加了NPU的計算開銷,從而對性能產生影響。
性能和精度是衡量深度神經網絡在NPU上適配訓練效果的兩個重要指標,其中性能指的是網絡模型在NPU上訓練速度,而精度指的是模型訓練結束后在對應任務上的表現(以圖像分類為例,此時的精度為模型的分類準確率)。在理想情況下,在NPU上訓練的性能應當優于在GPU上訓練的性能,在NPU上訓練的精度應當與GPU上訓練得到的精度持平。但是由于CANN在使用混合精度訓練神經網絡時對網絡中各個算子指定的精度可能存在不合理的情況,進而導致性能和精度無法同時滿足要求。為了解決上述情況,CANN提供了自動混合精度,訓練模式以及損失縮放功能。
雖然這兩個功能有助于NPU訓練神經網絡的性能和精度,但是問題并不能完全得到解決,仍然可能出現某些float32算子在訓練由于適配問題占據大量時間導致的性能不達標問題,以及某些float16算子數據溢出導致的精度不達標問題。此時,需要用戶手動修改混合精度算子的黑白名單,白名單允許將當前float32類型的算子,降低精度到float16,黑名單不允許將當前float32類型的算子,降低精度到float16。用戶通過黑白名單在內置優化策略基礎上進行調整,自行指定哪些算子允許降精度,哪些算子不允許降精度,從而使得性能和精度達標。在現有的技術方案中,算子的黑白名單調整都是由用戶根據訓練過程中采集到的性能數據和溢出數據進而判斷應當添加哪些算子到白名單,添加哪些算子到黑名單,進而優化昇騰AI處理器訓練神經網絡的性能及精度。這種優化方式需要用戶對昇騰AI處理器算子問題的有豐富知識以及經驗,并且需要不斷地人工調試以優化性能和精度,非常耗費用戶的精力,如果知識經驗不足,還有可能在精度與性能之間兜圈子,出現精度上升了性能下降了、性能上升了精度下降了的情況
發明內容
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川大學,未經四川大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210854068.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種鋼筋混凝土支撐結構
- 下一篇:一種反滲透膜凈水器





