接前一篇文章:軟考 系統架構設計師系列知識點之雜項集萃(92)
第169題
人工智能技術已成為當前國際科技競爭的核心技術之一,AI芯片是占據人工智能市場的法寶。AI芯片有別于通常處理器芯片,它應具備四種關鍵特征。()是AI芯片的關鍵特點。
A. 新型的計算范式、信號處理能力、低精度設計、專用開發工具
B. 新型的計算范式、訓練和推斷、大數據處理能力、可重構的能力
C. 訓練和推斷、大數據處理能力、可定制性、專用開發工具
D. 訓練和推斷、低精度設計、新型的計算范式、圖像處理能力
正確答案:B。
解析:
新興的計算范式、訓練和推斷、大數據處理能力、可重構的能力。
清華大學《人工智能芯片技術白皮書(2018)》詳細講述了相關內容。
2.2 新型計算范式
AI 計算既不脫離傳統計算,也具有新的計算特質,包括:
1. 處理的內容往往是非結構化數據,例如視頻、圖像及語音等,這類數據很難通過預編程的方法得到滿意的結果。因此,需要通過樣本訓練、擬合及環境交互等方式,利用大量數據來訓練模型,再用訓練好的模型處理數據。
2. 處理的過程通常需要很大的計算量,基本的計算主要是線性代數運算,典型的如張量處理,而控制流程則相對簡單。對于這類運算,大規模并行計算硬件較傳統通用處理器更為適合。
3. 處理的過程參數量大,需要巨大的存儲容量,高帶寬、低延時的訪存能力,以及計算單元和存儲器件間豐富且靈活的連接。數據本地化特征較強,適合數據復用和近內存計算。
2.3 訓練和推斷
AI 系統通常涉及訓練(Training)和推斷(Inference)過程。簡單來說,訓練過程是指在已有數據中學習, 獲得某些能力的過程;而推斷過程則是指對新的數據,使用這些能力完成特定任務(比如分類、識別等)。 對神經網絡而言,訓練過程就是通過不斷更新網絡參數,使推斷(或者預測)誤差最小化的過程;推斷過程則是直接將數據輸入神經網絡并評估結果的正向計算過程。雖然訓練和推斷有很多類似的基本運算,都需要具有大量的并行處理,高內存帶寬和低延遲操作,但是兩者在計算和存儲資源方面的需求方面存在顯 著的差異。
訓練:首先,對于訓練來說,計算精度非常重要,因為它直接影響推斷的準確度。支持訓練的硬件必須支持具有較長字長的浮點數或定點數。其次,訓練中通常同時包括正向和反向的計算過程,需要多次迭代, 計算量要求非常高。這就需要支持訓練的芯片不僅要具有強大的單芯片計算能力,還要具備很好的擴展性, 可以通過多芯片系統提供更強大的計算能力。再次,訓練過程,特別是離線訓練,必須處理大量的數據(高達1015到1018 字節),因此,它對內存數量、訪問內存的帶寬和內存管理方法的要求都非常高。第四,由于訓練需要更新(寫入)和使用(讀取)神經網絡中的參數(權重),因而需要更復雜的數據同步技術。最后, 重要參數的頻繁寫入也要求存儲器能支持更快速的寫入(特別是對于在線訓練),這對于一些存儲器技術來 說是很大的挑戰。
推斷:對推斷來說,運算和存儲的需求都遠遠低于訓練。但由于推斷的應用場景多種多樣,部署在從云到端的各種設備,如數據中心、自動駕駛汽車、智慧家庭和IoT設備等,其需求和約束呈現出多樣化的特點。 對于多數應用來說,速度、能效、安全和硬件成本等是最重要的考慮因素,而模型的準確度和數據精度則 可以依具體情況適當降低。 雖然目前大部分機器學習方法都可以比較清晰地劃分為訓練和推斷的過程,但還有一些領域,比如增強學習(Reinforcement Learning)和在線學習(On-line Learning)則處于持續學習和改進模型的進程中。因此,在未來的AI應用當中,訓練(學習)和推斷在更多場景下會是交織在一起的。
2.4 大數據處理能力
人工智能的發展高度依賴海量的數據。滿足高效能機器學習的數據處理要求是AI芯片需要考慮的最重 要因素。一個無法回避的現實是,運算單元與內存之間的性能差距越來越大,內存子系統成為芯片整體處理能力提高的障礙,也就是通常所說的“內存墻”。人工智能工作負載多是數據密集型,需要大量的存儲和各層次存儲器間的數據搬移,導致“內存墻”問題更加突出。為了彌補計算單元和存儲器之間的差距,學術界 和工業界正在兩個方向上進行探索:(1)富內存的處理單元。增加片上存儲器的容量并使其更靠近計算單元, 使得數據計算單元和內存之間的數據移動成本(時間和功耗)大大減少。(2)具備計算能力的新型存儲器。 直接在存儲器內部(或更近)實現計算。這種方法也被稱為存內計算(Process-in-Memory PIM)或近數據計算(Near Data Computing NDC)。
2.5 數據精度
低精度設計是AI芯片的一個趨勢,在針對推斷的芯片中更加明顯。對一些應用來說,降低精度的設計不僅加速了機器學習算法的推斷(也可能是訓練),甚至可能更符合神經形態計算的特征。近期已經證明, 對于學習算法和神經網絡的某些部分,使用盡可能低的精度(例如二進制數據)就足以達到預期效果,同時可以節省大量內存和降低能量消耗。通過對數據上下文數據精度的分析和對精度的舍入誤差敏感性,來動態地進行精度的設置和調整,將是AI芯片設計優化的必要策略。
2.6 可重構能力
人工智能各領域的算法和應用還處在高速發展和快速迭代的階段,考慮到芯片的研發成本和周期,針對特定應用、算法或場景的定制化設計很難適應變化。針對特定領域(包括具有類似需求的多種應用)而不針對特定應用的設計,將是AI芯片設計的一個指導原則,具有可重構能力的AI芯片可以在更多應用中大顯身手,并且可以通過重新配置,適應新的AI算法、架構和任務。
2.7 軟件工具
就像傳統的CPU需要編譯工具的支持, AI芯片也需要軟件工具鏈的支持,才能將不同的機器學習任務和神經網絡轉換為可以在AI芯片上高效執行的指令代碼,如NVIDA GPU通過CUDA工具獲得成功。 基本處理、內存訪問及任務的正確分配和調度將是工具鏈中需要重點考慮的因素。當工具鏈將神經網絡或其它模型映射到AI芯片上時,也有很多優化代碼的機會,比如神經網絡剪枝、權重壓縮和動態量化等。目前,AI算法開發框架如TensorFlow、Caffe和PyTorch等,在AI應用研發中已經起到了至關重要的作用。對AI芯片來說,構建一個集成化的流程,將AI模型的開發和訓練,硬件無關和硬件相關的代碼優化, 自動化指令翻譯等功能無縫的結合在一起,將是成功部署的關鍵要求。