人工智能的飛速發(fā)展,需要強大的算力作為支撐,這背后NIVIDIA可謂是當(dāng)之無愧的功臣。NIVIDIA先進(jìn)的GPU技術(shù)和優(yōu)異的軟件生態(tài),使其在競爭中脫穎而出,成為市場霸主。目前人工智能在圖像處理及語音識別領(lǐng)域的研究取得了很好的發(fā)展,在手機和安防領(lǐng)域也有很多產(chǎn)品落地。在落地過程中,依然會面臨設(shè)備算力的問題,而移動端GPU則自然而然的進(jìn)入了人們的視野。
移動端GPU廠商的發(fā)展史
在移動端GPU市場中,沒有形成一家獨大的競爭格局。目前主要的移動端GPU廠商有高通,arm和imaginaton。高通的adreno來自ATI的imageon,ATI最早被AMD收購,后來高通收購了AMD的移動設(shè)備資產(chǎn),取得了AMD的矢量繪圖與3D繪圖技術(shù)和相關(guān)知識產(chǎn)權(quán)。后來高通結(jié)合AMD的手機圖形技術(shù)發(fā)展為自家的Adreno圖形處理器。另一家移動計算的巨頭ARM,ARM在移動CPU的市場地位可謂遙不可及,但是在GPU領(lǐng)域,它確是諸多廠商中的一家,他的GPU業(yè)務(wù)也并非一開始就擁有,而是后來組建的。其GPU技術(shù)來自一家名為Falanx的公司,這家公司是早起從挪威大學(xué)脫離出來的一個名為mali的研究小組的成員組建的,最早定位于PC領(lǐng)域,失利后轉(zhuǎn)向SoC GPU設(shè)計。隨著SoC市場的不斷壯大,以及移動計算的發(fā)展,ARM收購了Falanx,組建了自己的GPU事業(yè)部。最后一家,Imagination Technologies,這是一家專注于GPU技術(shù)的公司,最早在桌面級GPU的競爭中失利,后來轉(zhuǎn)戰(zhàn)移動端,Intel,三星,蘋果,聯(lián)發(fā)科,展訊曾經(jīng)都是他的客戶,一度被認(rèn)為是全球最大的移動GPU廠商。這家公司可謂命運多舛,曾經(jīng)作為蘋果的供應(yīng)商,由于iphone的每代產(chǎn)品在圖形性能方面都比arm公版的Mali GPU有優(yōu)勢,一度讓Imagination風(fēng)光無二,但是隨著蘋果宣布自研GPU,Imagination的股票出現(xiàn)了斷崖式下跌,公司瀕臨破產(chǎn)。后來將其業(yè)務(wù)進(jìn)行拆分,MIPS業(yè)務(wù)出售給Tallwood MIPS,而GPU業(yè)務(wù)則出售給中國背景的私募基金Canyon Bridge。這一收購也填補了國內(nèi)在GPU領(lǐng)域的空白。
在市場占有率方面,由于ARM以及高通的捆綁銷售,Imagination并無優(yōu)勢,但是鑒于在物聯(lián)網(wǎng)以及人工智能領(lǐng)域,目前三家都還沒有建立起強大的生態(tài),因此未來誰能稱雄并未可知。
在技術(shù)方面三家GPU廠商架構(gòu)差異比較明顯,而且對外披露都比較少,相比較來說Imagination發(fā)面對于技術(shù)方面會開放一些。
Imagination的GPU Rogue架構(gòu)淺析
在關(guān)于GPU的宣傳中很容易看到一個詞core,而且高端GPU也都是成千上萬的core。其實宣傳中的core并非CPU上“核”的概念。而真正意義上的核心,應(yīng)該是AMD GCN架構(gòu)中的Compute Unit, NVIDIA Maxwell架構(gòu)中的SMM以及PowerVR Rogue架構(gòu)中的USC等。對應(yīng)于編程語言,應(yīng)該是OpenCL中的Compute Unit(簡稱CU)。而宣傳中所謂的core,則是OpenCL中的ProcessElement(簡稱PE)。
目前GPU采用的是多層級的線程技術(shù),硬件結(jié)構(gòu)和軟件概念的對照如下圖所示:從硬件結(jié)構(gòu)看,首先是GPU設(shè)備,叫做device;一個GPU包含多個CU,而每個CU又包含多個計算通道。從OpenCL的軟件架構(gòu)看,每個NDRange對應(yīng)一個GPU設(shè)備,其包含多個work-group,而每個work-group必須在一個CU上執(zhí)行,也就是說,每個CU可以執(zhí)行多個work-group,但是每個work-group不可以拆分到多個CU上去執(zhí)行;每個work-group包含多個work-item,一個計算通道執(zhí)行一個work-item。
簡單介紹一下計算通道,SIMD叫做單指令多數(shù)據(jù)流(Single instruction MultipleData),目前所有的GPU都術(shù)語SIMD,一般都是16路或者32路SIMD。
關(guān)于線程的調(diào)度,首先介紹一個概念,AMD的wavefront或者NIVIDIA的warp,這是指線程調(diào)度的最小單位,也就是說,在GPU中每次執(zhí)行一個warp,一般一個warp包含32個線程;對于AMD顯卡則是一個wavefront包含64個work-item。下文中對這一概念統(tǒng)稱為warp,線程和work-item通用。在Rogue架構(gòu)中每個warp也是包含32個線程。
如下圖所示,是Rogue架構(gòu)的示意圖,GPU中包含有多個USC(個數(shù)與產(chǎn)品型號有關(guān)),每個USC包含著色器,駐留槽,執(zhí)行單元,存儲器,紋理單元等等等。這樣每個work-item在自己的生命周期中都包含自己的片上存儲在Unified store中,shared local memory隱藏在common store中,這樣每個USC都可以在warp之間進(jìn)行零開銷的上下文切換。
線程的執(zhí)行過程如下圖:
圖中的Residency Slots中包含很多slot,每個slot代表一個warp,空的表示目前還沒有部署warp。而部署了warp的slots一共有三個狀態(tài),綠色表示active,黃色表示ready,可以執(zhí)行了,紅色表示阻塞;active的warp接下來會在執(zhí)行單元上執(zhí)行,如圖右側(cè)所示,所有的32個work-item同時并行執(zhí)行。Ready的會在下一個執(zhí)行周期被調(diào)度執(zhí)行;阻塞的則是因為讀寫等原因進(jìn)入該狀態(tài)。
下圖是USC中流水線示意圖,其中包含4個warp的調(diào)度。Warp0首先被執(zhí)行,warp0會一直執(zhí)行到它進(jìn)入阻塞狀態(tài),例如讀寫全局存儲,此時調(diào)度器會停止調(diào)度warp0,開始執(zhí)行warp1;因為warp中的所有工作項執(zhí)行相同的kernel代碼,因此就有相同的特性,例如同時進(jìn)入阻塞;在warp2進(jìn)入阻塞狀態(tài)時,warp0讀寫結(jié)束,進(jìn)入read狀態(tài);最后在調(diào)度器調(diào)度完warp3后,重新開始調(diào)度warp0。這樣并發(fā)執(zhí)行可以實現(xiàn)對內(nèi)存訪問延遲的隱藏。因此在編程實現(xiàn)中一般使用較大的工作組,來實現(xiàn)warp切換對內(nèi)存訪問的延遲(當(dāng)然,這不是絕對的,在實際中還要考慮寄存器等資源的消耗情況)。
下圖展示了Rogue架構(gòu)下得PowerVR Series7XT系列的架構(gòu)圖。
該系列的GPU擁有2到16個USC,因此具有100GFLOPS到1.5TFLOPS的可擴展性能。如下圖展示了該系列GPU的USC架構(gòu)。
以GT7400為例,其擁有128個FP32ALU核心,256個FP16 ALU核心。每個USC中包含16個pipelines,每個pipelines中含有多個ALU。其中的SFU可以原生的處理FP16、FP32(上一代會全部推給FP32),因此這一代架構(gòu)可以避免沒有必要的高精度操作,提升了性能并降低了功耗。
目前Imagenition已經(jīng)發(fā)布了最新的GPU架構(gòu)Furian,該架構(gòu)相對于多年來已成業(yè)界標(biāo)桿的Rogue架構(gòu)有了在性能方面有了更大的提升。
-
gpu
+關(guān)注
關(guān)注
28文章
4678瀏覽量
128612 -
人工智能
+關(guān)注
關(guān)注
1791文章
46691瀏覽量
237179
原文標(biāo)題:移動GPU淺談
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論