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