英特爾助力龍蜥加速 AI 應用及 LLM 性能

操作系統的發展離不開南北向軟硬件生態的擴展和支持,龍蜥社區也離不開各合作伙伴的共創。在 2023 龍蜥操作系統大會全面擁抱智算時代分論壇上,英特爾 AI 軟件工程師王華強從兩方面分享了英特爾至強處理器平臺上的兩個重點算力和內存帶寬,以及英特爾 xFasterTransformer 開源項目(主要用於 CPU 平臺)、xFT 開發軟件圖、軟件架構和特點以及基於 xFT 平臺大語言模型對比公開的性能數據。以下爲本次分享原文:

(圖/英特爾 AI 軟件工程師王華強)

2023 年 12 月,英特爾發佈了第五代至強的服務器平臺,在 2023 年初發布了第四代至強服務器平臺。服務器發佈通常稱之爲 jtalk,一代 CPU 注重於特性,注重架構的升級,引入很多的特性。這一代 CPU 力度優化,會帶來更多的 CPU 核心數,更高的 CPU 頻率。剛發佈的第五代至強服務器屬於密度優化,第四代屬於架構升級。

第四代至強可擴展處理器引入的一些新特性其中一個是內存畫面,引入 DDR5 規格的頻率支持。第四代 DDR5 頻率支持 4800MT 每秒,第五代 CPU 支持 5600MT 每秒,對比第三代 3200MT 每秒,內存帶寬幾乎翻一倍。另外一個提升來自數據總線,第四代至強開始支持 PCIE5.0 的數據總線,PCIE5.0 速度已經跑到 32GB 每秒,組件帶寬的提升爲 CPU 引入更多的設備帶來了可能。這些設備其中之一就是 CXL,第四代至強支持 CXL1.1 。在這代平臺上,開始有一個專門的系列 AMX 系列,支持 HBM 的內存。針對一些細分的業務領域,在芯片上集成了衆多的加速器,QAT、IAA,可以加速加解密、壓縮解壓縮的業務。在對這些業務進行加速的同時,可以節省 CPU 的資源,起到 offload 作用。加速器用於網絡負載均衡方面集成了 DLB 加速引擎。對於人工智能 AI,特別引入一個 AR 加速引擎,稱之 AMS 加速引擎,AMS 主要做矩陣的運算。

大語言模型算法的基礎就是 transform,再往下分可能是 atention、MLP 各種算法。這些算法需要很多變化,要有很多運算。典型算法是向量乘向量的計算,或者是矩陣乘矩陣的運算,大語言模型對算力的要求很高。

接下來回顧英特爾 CPU 尤其是服務器,瞭解一下算力如何演進。

在瞭解英特爾算力演進前先了解大語言模型向量乘向量或者矩陣乘矩陣,它們要做的事情都可以往下 breakdown 成 A 乘 B 再加上 C 這樣的運算。爲了完成乘加的運算,在早期平臺比如像第一代 SKYLAKE 平臺上需要三條指令去完成這樣的運算。在後來的 CPU 上引入了 VNNI,如果數據的精度是 8bit,比較整齊用一條 VNNI 指令就可以完成乘加的運算。第四代引入了 AMX 矩陣運算單元,可以完成一個 A 矩陣乘 B 矩陣得到 C 矩陣。如果運算的 A 矩陣和 B 矩陣數據是 8bit 整形,可以一次性完成 16 行 64 列的 A 矩陣乘 64 行 16 列的矩陣。如果數據精度是 16bit 浮點,可以完成 16 行 32 列乘 32 行 16 列的矩陣相乘。

大語言模型對於硬件資源的另一需求體現在內存帶寬上。要進行一次推理需要將所有的模型權重訪問一遍,以 LLM 模型爲例有 70 個並列參數,這些模型參數通常大於硬件容量,所以模型參數通常放在內存中。每進行一次推理,需要將參數或者模型權重訪問一遍,需要很大的內存帶寬。

第四代引入了 HBM 支持,但不是第四代所有的芯片都支持,只有 Max 系列的 CPU 上會集成 64GB 的 HBM 內存,再加上系統在 DDR 通道上支持的內存,實現了 1TB 每秒內存帶寬的內存區域,兼顧了內存速度和內存容量。

對於內存帶寬的擴展,第四代至強 CPU 同時支持 CXL 內存,在分享前先介紹 CXL 總線的一些基礎知識。CXL 內存協議分爲三個內存子協議:CXLIO、CXL.Cache、CXL.Memory。CXLIO 類似 PCle 總線,CXL.Cache 支持 CXL.Cache 設備,例如 CPU 網卡顯卡,只要支持了 CXL.Cache 協議,就可以由硬件來保持網卡 GPU 等之間的一致性。CXL.Memory 類似普通內存。CXL 協議是由衆多廠家推出的協議,第四代至強服務器已經開始支持 CXL1.1 設備,可以用 CXL1.1 所支持的 CXL.Memory 進行內存擴展。原有 8 個 DDR 通道可以用 CXL 再擴展 4 個通道,結合 CXL 內存可以將內存帶寬做 50% 的提升。

FasterTransformer 項目用於 GPU 推理,xFasterTransformer 主要注重 CPU 平臺例如 Llama、ChatGLM 平臺大語言模型推理的優化。xFasterTransformer 關注英特爾硬件的加速特性,對於英特爾平臺尤其至強平臺有特別優化。該項目遵循了 Apache 開源協議,歡迎大家下載試用。

xFasterTransformer 在 2023 年 3 月份開源,開源初就支持 ChatGLM 系列以及 Llama 小模型。數據精度除了 Float 外還支持 BF16、INT8 等混合精度。它支持分佈式推理,如果一臺服務器算力不夠,可以搭建小型集羣進行分佈式推理。在第四季度對該項目做了更新,支持百度百窗系列的模型推理,支持 Llama2 模型推理,該模型在分佈式小集羣上進行推理,支持了 8bit 轉型的數據精度。在 2024 年 Q1 會做一些優化例如使用 FP16 數據精度、使用 AMX 做優化,也會對 batching 做進一步優化。

xFT 整個軟件架構建立的硬件是英特爾各種各樣的 xeon 平臺,也可能是支持 HBM 的 xeon 等,不同的硬件平臺有不同的硬件特性。例如第四代第五代支持 AMX,但是在第一代並不支持 AMX 加速引擎,硬件的適配工作由軟件架構的最底層的庫進行適配。上圖右邊 OneCCL 做分佈式通訊框架,OeDNN 做計算,IG 庫還沒有開源,專門針對大語言模型集中運算的特點所作的庫。xFT 針對 Transformer 的算法做了一些封裝,包括 atention、MLP 等。值得一提的是,這些算法都支持分佈式計算,如果使用 atention 算力時間過長,可以使用集羣方式將計算分佈到多個機器上。xFT 從接口上支持 C++ 和 Python 接口。

xFT有三個特點,上面提到第一個特點是分佈式計算,另外 xFT 集成開發基於 C++,保證推理框架的高性能。除此之外 xFT 也有其他的一些優化特點:實現了 Flash Attention 優化,CPU 版本通過 Flash Attention 可以減少內存帶寬。多進程通信實現了內存零拷貝的算法,基於 GEMV 算法實現了零拷貝需求。針對 Attention、Normlous 算法,針對模型特點做了一些融合。

上圖展示最近公開的性能數據。性能測試平臺是在支持 HBM 第四代的 MAX CPU 上進行測試的,衡量性能指標採用 Next Token,推理出的模型首次詞的平均時間。兩個模型分別是 Llama 2 7B 模型和 Llama 2 13B 模型,從比較常用的 1024 Input token 參數來看,選用 Llama 2 7B 模型的平均 latency 是 59 毫秒,Llama 2 13B 模型輸入 1024 尺寸產生的 latency 是 94 毫秒。

原文鏈接

本文爲阿里雲原創內容,未經允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章