來源:貿澤電子 在2014年,斯坦福大學教授Mark Horowitz發表了一篇題目為“計算的能源問題(以及我們該怎么辦)”的論文。這篇具有深遠意義的論文,討論了當前半導體行業所面臨的最熱門的、與登納德縮放比例定律(Dennard Scaling)和摩爾定律(Moore’s Law)失效相關的挑戰。 如果可以的話,我想借用并改編一下Mark的論文標題,這樣我就可以就機器學習推斷應用為什么應該考慮專用硬件,分享一下我的觀點。 專用硬件加速實在必行 首先,讓我們考慮一下問題的癥結所在。大約在2005年,處理器內核時鐘頻率的增長進入了瓶頸。縮小工藝尺寸和降低內核電壓不再像以前一樣能夠為我們帶來優勢。其根本的問題,就是計算已經達到了功率密度(W/mm2)的極限。 如果我們在同一個裸片上放置更多的內核,我們就可以在相同的功耗預算下增加運算數量,但其前提是我們還還要在一定程度上降低時鐘頻率,以抵消額外內核所消耗的能量。AMD和英特爾都是在2005-2006年期間發布了他們的首個雙核處理器,這并不是巧合。然而,隨著我們繼續嘗試增加內核的數量,我們必須考慮每個運算所消耗的能量和每個運算所需的芯片面積。此外,我們還需要確保我們能夠通過N來有效地實現并行算法,其中N是內核的數量。對于所有的算法來說,這一問題的通用解決方案,或者說“計算飽和的靈丹妙藥”仍然是一個難以捉摸的問題,現在最好的解決方法就是應用“自適應硬件”。 事實證明,無論您的處理器設計是使用多核CPU、GPU還是SoC實現的,在處理器級的總體功耗分布都將大致相同。所以假若我們估算出以下的情況便較為接近真實情況: 內核=30% 內部存儲器(L1、L2、L3)=30% 外部存儲器(DDR)=40% 在上面的分析中,我們沒有考慮的是還存在另外一個總體優化的方式,那就是專用硬件加速器優化的實現方式。我們可以對專用硬件進行優化以極高效地執行特定的功能。通常情況下,這種硬件是為了減少外部存儲器訪問而設計的,其同時減少了時延與功耗。我們可以對專用硬件進行優化,以便給定算法的數據運動部分使用本地化存儲器(BlockRAM、UltraRAM)來進行中間結果的存儲。 設計高效加速器是多維度的設計問題 如何實現硬件優化來處理我們的特定算法?(Mark很好地回答了這一問題,即必須將算法從“所有算法的空間”移動到“受限空間”。) 如何保持攜帶數據的加速器,以確保計算加速器在每個時鐘周期都是飽和的? 如何最大限度地減少通信開銷? 如何優化正在處理的運算符的動態范圍? 如何最大限度地減少外部存儲器,甚至是本地存儲器的使用? 如何消除指令處理管道開銷? 如何安排操作以確保數據重用,從而使存儲器流量最小化,并且使存儲器訪問相關的運算數量最大化? 自適應硬件的戰略優勢這里,我們將討論和評估賽靈思的自適應硬件及DNNDK如何應對上述這些尖銳的問題和挑戰,特別是當它涉及到機器學習推斷時。在進行下一次設計之前,我建議您回顧一下Mark有關這個主題的精彩演講,然后再考慮如何在您的下一次設計中使用自適應硬件來實現您的戰略優勢。 在這篇文章的第2部分中,我們將討論和評估賽靈思的自適應硬件及DNNDK(現在已經發布Vitis AI統一軟件平臺)如何應對這些挑戰,特別是當它涉及到機器學習推斷時。 人工智能引發能源問題,我們該怎么辦?(二) |