隨著人工智能技術的迅速發展,近年來AI計算需求呈爆炸式增長。為了滿足這一需求,越來越多的公司和研究機構開始關注專用處理器的開發,其中,神經網絡處理單元(NPU)因其在處理深度學習任務方面的高效性而受到廣泛關注。
然而,盡管NPU在某些特定任務中表現出色,獨立發展的可能性卻受到質疑。不久前,剛剛獲得1億美元投資的Imagination便突然決定放棄獨立開發三代的NPU IP,轉而將類似的功能添加到其GPU產品中。
Imagination新任創新和工程主管Tim Mamtora直言:“和其他所有公司一樣,我們看到了NPU的潛力就想著‘是的,我們應該做其中一種’。但在開發出表現出色的硬件后卻出現各種問題,與之配套的軟件堆棧是什么?我們如何向我們的客戶和開發人員展示它等等。”
作為曾經博通IC設計部門的總工程師,Tim Mamtora認為開發AI加速器是非常困難的,尤其是考慮到AI模型和框架的演進速度以及AI軟件基礎設施的碎片化狀態。可以說,AI軟件堆棧方面的挑戰才是導致Imagination決定停止開發NPU的真正原因。
此前被大多數人寄以厚望的NPU,其局限性正逐漸暴露出來。
NPU獨立工作的局限性
眾所周知,NPU是一種專為神經網絡計算而設計的處理器,具備高并行度和低功耗的特點。它的架構通常針對矩陣運算進行了優化,這是深度學習模型訓練和推理中常見的運算類型。然而,NPU在獨立工作時也存在一些局限性。
NPU主要針對深度學習任務進行優化,盡管在特定的AI推理任務中表現卓越,但在處理其他類型的計算任務時,如圖形渲染、傳統數據處理等,NPU的能力卻顯得不足。這使得NPU在多樣化應用場景中的適用性受到限制。
在生態方面,目前NPU的生態系統相對較小,開發者面臨的工具和框架選擇較少。這導致NPU的推廣和應用受到不小的阻礙,企業往往需要同時開發和維護多個處理器,這加大了開發和運營的復雜性。Imagination對此深有體會,因為遷移和優化最終客戶的算法并在產品的整個生命周期內提供支持,這是一件非常具有挑戰性的事。據Mamtora透露,Imagination的一些NPU IP的客戶希望為下游客戶定制軟件,他們又不得不將這方面的技術支持推回給 Imagination。
另外,盡管NPU在AI計算中具有潛力,但市場對新技術的接受需要時間。許多企業在決策時仍傾向于使用成熟的GPU,特別是在需要圖形處理的應用中,而在大多數應用中,圖形處理都是必不可少的。
NPU發展的正解
在當前的市場上,提及NPU技術的發展,則不得不聯想到一家國內的IP供應商芯原股份。在接受集微網采訪時,芯原股份執行副總裁、IP事業部總經理戴偉進指出,公司用于人工智能的NPU IP已被72家客戶用于其128款人工智能類芯片中,已在全球范圍內出貨超過1億顆。
芯原股份真正開始NPU IP的開發實際是在2017年,戴偉進指出,當時一些采用芯原GPU IP的客戶對芯片PPA提出了更高的要求,同時還需要有一定的可編程性。如果完全設計一顆高性能的ASIC芯片顯然不符合可編程的特性,此外由于市場需求迅速迭代,ASIC芯片必須經歷的研發生產周期將導致難以快速響應市場變化。于是,芯原便著手開發新的NPU IP以固化一部分AI計算功能,打造GPU+GPGPU+NPU的可擴展AI計算平臺。
GPU IP作為芯原成熟的核心業務,已在圖形渲染領域得到了廣泛應用。而芯原的GPGPU IP在深度學習訓練和推理中也同樣表現優異。NPU、GPU和GPGPU的協同發展能夠彌補彼此的短板,形成更強大的計算平臺。
在復雜的AI任務中,NPU可以專注于執行深度學習模型中的特定運算,而GPU或GPGPU則負責處理圖形渲染和其他計算任務。這種資源互補使得系統能夠在多任務環境中表現更佳,從而提高整體效率。
如上圖所示,芯原的GPU、GPGPU和NPU緊密地結合在一起,三者的協同工作能夠提供更大的靈活性。開發者可以根據實際需求選擇最合適的計算資源,使得系統具有更好的可擴展性。這種靈活性在處理多樣化的AI應用時尤為重要,尤其是在邊緣計算和實時推理場景中。
戴偉進強調,三者的緊密結合主要體現在指令級融合,這種融合意味著三者在硬件層面上能夠共享指令集,從而實現更高效的協同工作。
以芯原的VIP9X00CC為例,其實現GPGPU模塊和NPU模塊的指令級融合,并采用SIMT(單指令流多數據流)并行計算架構,允許單個指令同時對多個數據元素進行操作。這種架構通常用于GPU,使用SIMT架構使得在執行AI計算任務時,能夠實現更高效的并行處理。
VIP9X00CC還支持DLP/ILP/TLP并行性,保證NPU和GPGPU能夠靈活地處理不同類型的并行計算任務。
戴偉進進一步指出,芯原NPU的設計包含了多年的優化經驗,特別是在數據組織、壓縮、遷移和計算方面,而VIP9X00CC將NPU的設計理念和GPU的并行計算能力相結合,大幅提高了整體的AI計算效率。
值得一提的是,VIP9X00CC中NPU和GPGPU還共享內存和常量寄存器,共享內存資源對于提高數據處理速度和減少內存訪問延遲非常重要。
“面對所有的計算需求,我們的軟件能夠將其按運算類型的不同來進行分類,并同步分配給對應的NPU或GPGPU模塊快速完成運算,”戴偉進指出,“但如果是獨立的兩顆NPU和GPGPU,則意味著大量的數據交互和額外的內容轉化成本。”
至于戴偉進提到的軟件,也是Imagination獨立發展NPU業務的核心痛點,芯原是如何做到的呢?戴偉進表示,芯原依據多年經驗建立了完整的軟件體系,芯原Acuity工具、庫和軟件堆棧能夠支持,且不論是端側還是云側,芯原都采用通用的軟件棧。
芯原的AI計算框架支持多種圖形API,如Microsoft DirectX、Microsoft DirectML、Vulkan、OpenGL、OpenGL ES等;支持SYCL、OpenCL、CUDA等并行編程模型;同時也支持多種AI和機器學習框架,如PyTorch、PaddlePaddle、ONNX Runtime、JAX、TensorFlow等。這種廣泛的支持使得芯原的NPU IP能夠適應不同的AI應用需求,這種融合不僅降低了開發者的學習成本,也有助于提升NPU的市場接受度。
也正因如此,芯原的NPU IP才會在市場上獲得亮眼表現。而關于未來的NPU市場前景,戴偉進認為,隨著人工智能從云端走向邊緣端,NPU將迎來更加明顯的爆發式增長。
從云到邊緣,NPU的黃金時刻
隨著人工智能應用的普及,數據隱私和實時處理的需求推動了邊緣計算的發展。NPU可以在邊緣設備上提供高效的AI計算能力,滿足這些需求。
例如AI PC、AI Phone的問世,以及智慧AR眼鏡、智慧駕駛汽車開始導入人工智能,大型AI模型正逐漸被優化以適應邊緣設備。而NPU可以專門針對這些優化后的模型進行加速,提供更好的性能和效率。
同時,NPU還可以為特定的AI工作負載提供定制化的硬件加速,這對于執行特定任務(如圖像識別、語音處理)的邊緣設備來說是一個重要的優勢。在邊緣設備上,能效比是一個關鍵考慮因素。NPU的設計可以針對AI工作負載進行優化,以提供更高的能效比,這對于電池供電的設備尤為重要。因此,戴偉進認為,智慧AR眼鏡、智慧家居等領域,NPU還將迎來一波發展機遇。
另外,面臨龐大的AI計算需求,分布式計算將成為更好的選擇。而NPU可以在不同的計算節點上提供協同工作的能力,使得AI應用可以在多個設備之間實現高效地分配和執行。所以在整個從云到端的全流程中,NPU都將得到充分的市場空間。
在這樣一個肉眼可見的高速增長階段,戴偉進認為,芯原以及其他NPU供應商不僅需要加大投入以保證技術優勢,也需要及時針對流行的AI算法和模型進行優化,確保NPU能夠高效運行最新的AI應用。此外,還需要保證可擴展性,提供不同性能和功耗級別的NPU產品系列,以滿足從高端服務器到低端IoT設備的復雜需求。
小結
在AI計算的浪潮中,NPU的發展正迎來新的轉折點。Imagination的決定提醒我們,獨立工作的NPU并非AI計算的正解,還是需要與GPU等協同工作,方能實現最佳的性能和效率。
芯原股份的成功案例為我們提供了寶貴的經驗。它通過構建一個包含GPU、GPGPU和NPU的可擴展AI計算平臺,實現了不同計算資源的有機結合。這種融合策略不僅提升了AI計算的整體性能,還為客戶提供了更大的靈活性和可擴展性,以適應不斷變化的市場需求。
面向未來,NPU的發展需要更加注重生態系統的建設。這意味著不僅要在硬件上進行創新,還要在軟件工具、開發框架和支持服務上進行投入。通過構建一個健康、開放的生態系統,NPU技術才能更好地融入各種應用場景,滿足不同客戶的需求。
總之,NPU作為AI計算領域的重要參與者,其未來發展將更加依賴于與其他處理器的協同和生態系統的完善。只有在硬件、軟件和生態系統上實現全面優化,NPU才能在AI計算的浪潮中立于不敗之地。
【來源:愛集微】