GPU在AI業務中的核心技術與應用

雲集技術學社發表於2022-01-11

1月6日,業內某AI平臺研發負責人在信服雲《雲集技術學社》系列直播課上進行了《GPU在AI業務中的核心技術與應用》的分享,詳細介紹了GPU的發展、GPU的架構以及如何利用GPU最佳化AI系統。以下是他分享內容摘要,想要了解更多可以關注雲集技術學社。

看點一:GPU介紹

GPU指的是圖形處理器,又稱顯示核心、視覺處理器、顯示晶片,是一種專門在個人電腦、工作站、遊戲機和一些移動裝置上做影像和圖形相關運算工作的微處理器。顯示卡用於協助CPU進行影像處理,作用是將CPU送來的影像訊號經過處理再輸送到顯示器上,由主機板連線裝置、監視器連線裝置、處理器和記憶體組成,GPU是顯示卡的處理器。

GPU分為獨立GPU和整合GPU。獨立GPU一般封裝在獨立的顯示卡電路板上,使用專用的顯示儲存器,獨立顯示卡效能由GPU效能與視訊記憶體頻寬共同決定。獨立GPU效能更高但因此係統功耗、發熱量較大。整合GPU常和CPU共用一個Die共享系統記憶體。整合GPU的製作由CPU廠家完成,因此相容性較強,並且功耗低、發熱量小。但如果顯示卡執行需要佔用大量的記憶體,整個系統執行會受限,此外系統記憶體的頻率通常比獨立顯示卡的視訊記憶體低很多,因此一般整合GPU效能比獨立GPU更低。

GPU的使用場景非常多,大的方面分為三個使用場景。 第一個是HPC高效能運算,主要用於CAE模擬、物理化學、石油勘探等高效能運算場景。 第二個是圖形視覺化/渲染,主要用於3D圖形的加速渲染等相關細分場景。 第三個是AI智慧計算,主要用於影像識別、語音識別、情感分析、無人駕駛等相關細分場景。此外,像現在非常火熱的數字孿生和元宇宙,它的背後也是由強大的GPU算力支撐。

談及GPU的發展史,不得不提到英偉達、英特爾和AMD三大巨頭。這三家公司在上世紀90 年代就進入了GPU市場。在2000年到2007年前後,由於個人PC的發展,GPU在遊戲和個人桌面顯示領域上有著非常大的市場需求,三大巨頭的GPU主要圍繞圖形影像顯示加速開發。2007年到2017年,三大巨頭開始切入通用計算領域,GPU產品不僅應用於圖形影像的加速顯示,更應用於一般計算的加速場景。2018年後,各家公司GPU產品開始圍繞人工智慧演算法的加速進行開發。回望國外GPU巨頭的一個發展,會發現這樣的一個有趣的現象,GPU巨頭的股價尤其是英偉達、AMD在最近的三五年得到了飛速的發展,和他們對應的GPU產品的算力提升幾乎是一致的。

看點二:GPU架構

由於現在市面上GPU的主流產品主要還是英偉達的軟硬體產品佔主流,因此以英偉達為例,在英偉達的GPU架構當中有幾個核心的概念,比如SP、SM、cuda core、tensor core等。SP是cuda core,意思是一個執行緒在每個時鐘週期裡執行一條浮點或整數指令。SM又包含一組cuda core,多個cuda core可以並行執行。而tensor core是在最新的幾代GPU架構中出現的硬體執行單元,專門用於做矩陣乘法加速。

英偉達 Tesla GPU的算力發展經歷了十多年的變遷,早期的Fermi架構只有512個cuda core ,而2020年釋出的A100已經有6912個cuda core,在這十幾年的演變從物理算力來看已經發展了十倍,同時還增加了像tensor core這樣具有創新性的硬體加速單位,促進了AI的執行計算。

目前,行業為實現AI計算,主要採用的晶片有 通用型的 GPU可定製的FPGA、以及 專用的ASIC。而GPU,尤其是英偉達的GPU,由於cuda統一的開發模型以及成熟的軟體站,它的開發週期相對較短,因此現在AI領域所有的應用開發和AI框架都是基於GPU開發的。

AI三要素分別是資料、算力和演算法。資料被視為AI的燃料,只有具備足夠多的資料,AI的應用才有可能發展。缺少了資料,AI是不可能發展的。但是有了資料之後,就要考慮如何去挖掘資料的價值,如何利用算力更快地挖掘資料的價值。因此算力在AI領域又被稱為發動機。有了資料有了算力,挖掘什麼樣的價值以及如何挖掘價值,那就要考慮演算法。

在AI領域,現在用的最多的是深度神經網路。深度神經網路早在上個世紀七八十年代就已經被科學家提出,但是到上個世紀末,深度網路都沒有在應用中得到廣泛的普及。其中主要的原因就是在上個世紀及2000年初,計算機的算力還不足以支撐當時神經網路的計算,導致演算法遲遲不能在工業場景落地,而隨著GPU的效能的逐步提升,讓深度神經網路的演算法能夠以更高效的速度進行運算。因此人工智慧得到發展也是大大得益於算力的發展。

隨著在AI領域演算法的複雜度越來越高、模型的引數量越來越多,對於算力的要求以及計算加速的需求也逐漸增大。由於AI的模型越來越複雜,對於AI計算最佳化的需求比較旺盛,因此需要解決AI系統的計算效能問題。

一般來說 評估一個AI系統的效能,主要有兩個指標, 第一個是算力,算力指的是每秒峰值浮點運算次數,是一個 AI系統的效能上限。 第二個指標是頻寬,頻寬的意思是每秒峰值記憶體資料的儲存量。在最佳化AI系統的時候,都會從這兩個維度去評估是否已經達到了物理的極限,如果沒有就要採取相應的最佳化措施使其達到或者儘可能接近物理的上限,這樣整個AI的系統的計算效能才有可能是最優的。

看點三:GPU在AI領域的應用

在AI領域中,GPU的應用主要有兩個場景, 第一個是訓 練場景,即利用GPU加速AI演算法的訓練。利用GPU加速AI演算法迭代訓練又分為單機單GPU、單機多GPU、多機多GPU三種情況,其中最簡單的是單機單GPU。單機多GPU指的是在一臺伺服器上利用多個GPU進行演算法訓練。多機多GPU是將資料或者模型分佈到不同的節點進行協同計算。多機多GPU又分為模型的並行和資料的並行兩種計算方式,現在業界重點或者主流的分散式的策略都是資料並行的這種方式。

現有的AI演算法,即深度學習演算法,卷積層佔整個卷積神經網路計算時間的90%以上,卷積計算的本質是是矩陣乘法,其最佳化主要有三種型別,一是演算法層面基於FFT或WINOGRAD的加速。二是利用各個GPU的廠家深度最佳化的矩陣乘法庫,像cuBlas,英特爾的MKL等等。三是在硬體層面,比如使用tensor core、cube等等去專門最佳化矩陣的乘法。

另外,GPU還有一種加速AI訓練速度的方式就是利用低精度指令來加速AI的計算。GPU指令也分為單精度、半精度和整型三類。精度越低、指令的吞吐越強,但是數字表達能力越弱。在開發的時候預設使用的是單精度的制定,訓練出來的模型直接可以使用,但是如果考慮到加速,就不得不在演算法層面進行一些最佳化,使得在低精度的條件下,也能夠讓模型的訓練的效果滿足業務的要求。

第二個場景是推理場景,即利用GPU加速AI演算法推理。AI模型最佳化和AI系統編譯最佳化是實現AI推理計算最佳化的兩個核心路徑。針對AI模型,GPU可以透過低精度的加速計算、張量分解、網路剪枝等多種方式進行最佳化。針對AI系統編譯,GPU則可以利用硬體體系中立的計算圖最佳化和硬體體系相關的最佳化和程式碼生成。

針對AI訓練和推理的計算最佳化,深信服也構建了雲邊協同AI異構計算平臺。利用AI演算法,深信服探索了像病毒檔案高層次特徵提取技術、網路安全異常檢測技術、資料智慧分級分類技術等在實際業務中的AI應用。

還想學習雲端計算的更多內容嗎?敬請鎖定下期直播,雲集技術學社還將邀請更多的專家,分享他們對雲端計算技術的理解和實踐經驗。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70009737/viewspace-2851623/,如需轉載,請註明出處,否則將追究法律責任。

相關文章