今天我們再來看一篇論文。
隨著現在AI的快速發展,使用FPGA和ASIC進行推理加速的研究也越來越多,從目前的市場來說,有些公司已經有了專門做推理的ASIC,像Groq的LPU,專門針對大語言模型的推理做了優化,因此相比GPU這種通過計算平臺,功耗更低、延遲更小,但應用場景比較單一,在圖像/視頻方向就沒有優勢了。
整個AI的工業界,使用FPGA的目前還比較少,但學術界其實一直在用FPGA做很多的嘗試,比如通過簡化矩陣運算,使FPGA可以更好的發揮其優勢。
今天看的這篇論文,是一篇關于FPGA和ASIC在大模型推理加速和優化方向的綜述,我們看下目前的研究進展。
Introduction
Transformer模型在自然語言處理(NLP)、計算機視覺和語音識別等多個領域都取得了顯著的成就。特別是,這些模型在機器翻譯、文本分類、圖像分類和目標檢測等任務中表現出色。Transformer模型需要比傳統神經網絡(如循環神經網絡、長短期記憶網絡和卷積神經網絡)更多的參數和計算操作。例如,Transformer-B模型包含1.1億參數,執行21.78億次浮點運算,而Vision Transformer (ViT)-B模型包含8600萬參數,執行16.85億次浮點運算。
GPU的局限性:
盡管GPU在加速大型深度學習模型方面發揮了主要作用,但它們的高功耗限制了在邊緣環境中的適用性。因此,大多數大型深度學習模型在GPU服務器環境中處理,給數據中心帶來了沉重的負擔。
FPGA和ASIC的優勢:
FPGA和ASIC在并行處理、設計靈活性和功耗效率方面具有優勢,被用作各種深度學習模型的專用加速平臺。通過壓縮和設計優化技術,可以優化FPGA和ASIC上的加速器性能,如吞吐量和功耗效率。
該論文對FPGA和ASIC基于Transformer的加速器的最新發展進行全面回顧,探索適合于FPGA/ASIC的模型壓縮技術,以及對最新的FPGA和ASIC加速器的性能進行比較。
研究背景
論文中這部分內容比較長,對Transformer模型和Vision Transformer (ViT)模型的進行了詳細介紹,包括它們的基本組件、不同的模型變體以及它們在計算上的特點,包含了很多理論部分,有興趣的讀者可以看原文,我只總結一下大概的內容。
Transformer模型主要由編碼器(Encoder)和解碼器(Decoder)組成。編碼器處理輸入序列生成上下文向量,而解碼器使用編碼器的上下文向量和前一步的輸出標記來生成下一步的標記。編碼器和解碼器的核心操作模塊包括多頭自注意力(MHSA)和前饋網絡(FFN)。通過MHSA,Transformer能夠訓練 token 之間的全局上下文信息,從而實現高精度。基于Transformer架構的也有不同的模型,如BERT、GPT等,他們的預訓練和微調方法也均有不同。這些模型在不同的NLP任務中表現出色,但大型模型如GPT-3由于參數眾多,難以在FPGA或ASIC上實現。
Vision Transformer (ViT)是針對計算機視覺任務提出的Transformer模型,主要用于圖像分類。與原始Transformer架構不同,ViT只使用編碼器,并且在編碼器之前進行LayerNorm操作。ViT通過將輸入圖像分割成固定大小的patches,然后通過線性投影生成Transformer輸入tokens。ViT的編碼器操作和圖像分類任務的執行方式也有詳細說明。基于ViT架構也有多種模型變體,如DeiT、Swin Transformer和TNT,這些模型通過不同的方式改進了ViT,例如通過知識蒸餾、層次結構和窗口機制、以及改進的patch嵌入方法來提高性能。
Transformer模型壓縮
要想在FPGA/ASIC上應用Transformer,肯定需要對模型進行改進,要讓算法對硬件實現更加的友好。目前有常用的方式:
量化(Quantization):
量化是將模型的參數和激活值從通常的32位浮點數轉換為低精度數據格式(如INT8或INT4)的過程。這樣做可以有效減少內存需求,同時加快計算速度并降低功耗。比如線性量化的過程,并通過量化感知訓練(QAT)或后訓練量化(PTQ)來恢復因量化而可能損失的準確性。還可以通過優化權重和激活值的量化策略來實現高壓縮比和最小的準確性損失。
剪枝(Pruning):
剪枝是通過識別并移除模型中不重要的參數來減少模型大小的方法。剪枝可以基于不同的粒度,如細粒度、標記剪枝、頭部剪枝和塊剪枝。結構化剪枝(如標記、頭部和塊剪枝)會改變模型結構,而無結構化剪枝(如細粒度剪枝)則保留了模型結構,但可能導致內存利用效率低下。合理的Pruning可以在內存效率和準確性之間找到平衡點來實現SOTA性能。
硬件友好的全整數算法(Hardware-friendly fully-integer algorithm):
Transformer模型中的非線性操作(如Softmax和GeLU)需要高精度的浮點運算,這在FPGA或ASIC硬件上難以高效實現。為了解決這個問題,研究者們提出了一些近似算法和量化技術,以便在硬件上以整數形式處理這些非線性函數,從而減少對浮點運算的需求。
硬件加速器設計優化
在這一節,論文中詳細探討了針對FPGA和ASIC平臺的Transformer模型加速器的各種優化技術。其實這一節的內容跟上一節是一個道理,都是在講如何讓大模型算法更好的適應FPGA/ASIC的平臺。論文中也是花了很大的篇幅對每一個優化方法做了詳細分析,這里我也只是總結一下論文中使用到的優化方法,具體的內容還是建議有興趣的讀者看原文。
稀疏性(Sparsity)
計算優化(Computing Optimization)
內存優化(Memory Optimization)
硬件資源優化(Hardware Resource Optimization)
芯片面積優化(Chip Area Optimization)
軟硬件協同設計(Hardware-Software Co-design)
這些優化技術都可以幫助提高加速器的性能,降低功耗,并實現更高效的Transformer模型推理。
性能比較
這一部分主要是對基于FPGA和ASIC的Transformer加速器的性能進行了分析和比較。
FPGA加速器性能比較:
下面這個表,展示了不同的加速器模型使用在數據格式、工作頻率、功耗、吞吐量(GOPS)、推理速度(FPS)以及所使用的FPGA資源(如DSP、LUT、FF和BRAM)的統計。
對于基于FPGA的加速器,分析的這些指標都是FPGA芯片的關鍵資源。
可以看到,這些模型其實都有各自的優勢和劣勢,某些設計可能在吞吐量上有優勢,而其他設計可能在能效比或推理速度上有優勢。
ASIC加速器性能比較:
下面這個表是不同模式在數據格式、工作頻率、制造工藝、芯片面積、功耗、吞吐量以及片上內存大小的統計。
對于ASIC加速器,性能比較則側重于諸如芯片面積和技術節點等ASIC設計的關鍵指標。這些因素影響著ASIC芯片的成本、能耗以及計算效率。
Further work
在前面的幾節中,論文中調研了不同模型在FPGA/ASIC上的性能比較,本節作者提出了當前FPGA和ASIC基Transformer加速器研究的一些潛在方向和未來趨勢。
復雜任務的加速器:
除了傳統的分類任務外,檢測和分割等更復雜的任務對計算能力的要求更高。學術界正在探索如何通過剪枝和優化來降低這些任務所需的能量消耗。
異構計算平臺:
異構平臺也是目前非常火的一個方向,如何將CPU、GPU、FPGA和ASIC集成到一個平臺上,以利用每種處理器的優勢。這種異構架構可以提高吞吐量,降低延遲,并提高能源效率。
混合網絡性能提升:
結合卷積神經網絡(CNN)和Transformer的混合網絡正在受到關注。
調度算法和通信協議:
為了充分利用異構計算平臺的潛力,需要開發高效的調度算法和通信協議,優化處理器之間的數據流,減少瓶頸,提高整體性能。
硬件-軟件協同設計:
軟硬件協同設計方法可以進一步優化Transformer模型的加速。通過迭代模擬和優化,可以找到最佳的硬件和軟件配置,以實現最低的延遲和最高的能效。
新應用和模型的開發:
隨著新技術的發展,如擴散模型和LLM,需要開發新的應用和模型來利用這些技術。這可能涉及到開發新的硬件加速器,以支持這些模型的特定計算需求。
其實論文中講了這么多,我最關心的還是商業的部署,GPU的功耗就決定了它的應用場景不會特別廣,像邊緣計算設備,基本告別那種大功耗的GPU,FPGA/ASIC在這方面就會顯得有優勢。但目前來看,除了上面提到的LPU,現在ASIC已經在很多場景使用用于做一些“小模型”的推理任務,像現在比較火的AI PC,AI手機,都是在端側運行參數量較小的大模型,但FPGA在AI 端側的應用還任重而道遠。
-
FPGA
+關注
關注
1629文章
21736瀏覽量
603319 -
asic
+關注
關注
34文章
1200瀏覽量
120501 -
AI
+關注
關注
87文章
30887瀏覽量
269065 -
深度學習
+關注
關注
73文章
5503瀏覽量
121157 -
大模型
+關注
關注
2文章
2448瀏覽量
2701
原文標題:FPGA/ASIC在AI推理加速中的研究
文章出處:【微信號:傅里葉的貓,微信公眾號:傅里葉的貓】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論