均衡負載發揮HSA異質運算架構的潛能 智慧應用 影音

均衡負載發揮HSA異質運算架構的潛能

  • DIGITIMES企劃

超微(AMD)嵌入式事業群客戶技術支援小組資深工程師Scott Lin
超微(AMD)嵌入式事業群客戶技術支援小組資深工程師Scott Lin

美商超微半導體(AMD)積極導入HSA異質性運算架構與hUMA異質性統合記憶體存取,使得應用程式能夠將各項工作細分,直接分派到各個CPU、GPU、DSP等其它元件,使整個SoC均衡負載、執行效率提高同時降低耗能;在軟體、函式庫與開發套件廣泛支援HSA之外,AMD也與眾多處理器業者一同建構異質運算架構聯盟,加速業界對HSA的導入,帶給用戶視覺震撼的互動新體驗…

從APU到HSA AMD建構異質性多核心運算架構

超微(AMD)嵌入式事業群客戶技術支援小組(Custom Technology Enable)資深工程師Scott Lin指出,隨面板解析度提昇、手機攝影畫素提高、巨量數據(Big Data)及邁向4G LTE行動通訊基礎,龐大的運算與資料串流急需更高的處理器與圖形處理效能。AMD從2010年就整合處理器與繪圖核心在矽晶片電路端,2012年導入處理器與繪圖核心電路單元之間雙向時脈管控,在處理器與繪圖核心依負載做動態時脈調整以均衡負載。

2014年則是HSA(Heterogeneous System Architecture)異質性運算架構發光的年代。它是一種讓整合於單一SOC內的CPU、GPU、DSP等所有元件都能和諧運作的智慧型架構,能使程式開發者撰寫SOC軟體如同過去的單一處理器軟體一般,加速本地用戶端或雲端伺服器裝置的浸潤式密集運算效能。

2012年6月,AMD與安謀(ARM)、Imagination、聯發科(MediaTek)、德儀(TI)、高通(Qualcomm)共同創立HSA異質系統架構基金會(HSA Foundation),2013年底,則新增高通(QUALCOMM)、三星(Samsung)、樂金(LG)等大咖,贊助會員也新增台灣工研院(ITRI)、博通(BROADCOMM)、威盛(VIA)、ST、ST Ericsson、SONY、新思(Synopsys)、美滿電子(Marvell),學院部份則有清華大學、英國布里斯托大學、愛丁堡大學、美國依利諾大學等。

細說HSA異質性運算架構

Scott Lin以圖表解釋HSA異質運算架構的程式化模型。在一個結合處理器與繪圖核心的APU晶片內部,處理器與繪圖核心之間,以及對外I/O端的音訊處理器(Audio Processor)、視訊加速引擎(Video Engine)、固定功能加速器(Fixed Function Acclerator)、DSP與影像訊號處理(Image Signal Processing)單元,均透過一致性且依用途排序的共享式記憶體匯流排(Share Memory, Coherency, User mode queues);透過HSA的軟體協定堆疊,傳統程式碼會排入處理器執行,圖形處理部份則排入繪圖核心執行;當執行到HSA架構的主函式庫或OpenCL 2.x Runtime執行函式庫時,像是執行HSA架構最佳化的JIT、Runtime與核心驅動程式時,則會依該應用程式碼的主要負載區,動態排入CPU、GPU、Audio、Video、Fixed、DSP或影像訊號處理單元等元件去執行,把工作均衡分散派給有能力處理的單元快速處理,使應用程式進一步挖掘APU硬體運算效能,增加整體執行效率進而節省系統耗能。

過去UMA(Uniform Memory Access)平台,多核處理器連接到一個共享記憶體區域,繪圖核心有獨立的繪圖記憶體,或由主機板記憶體劃分出一塊區域使用,彼此互不隸屬;APU時代的NUMA架構,多核處理器與繪圖核心連接到同一個記憶體匯流排,但處理器與繪圖核心各自存取自己的記憶體區域,同樣互不隸屬。

HSA架構下的APU,多核處理器與繪圖核心連接到同一個hUMA記憶體匯流排,並共享這塊記憶體的存取。其關鍵特色在於:
1.提供雙向內容一致性的記憶體存取。過去處理器與繪圖核心之間的溝通,需要先複製內容到一個記憶體區塊再傳遞到另一方;hUMA架構下處理器將記憶體分頁指位器複製到繪圖核心,無須做複製、傳遞的動作。
2.繪圖核心能直接存取虛擬記憶體(Virtual Memory)、應付分頁失誤(page faults),不再被限制只能存取被分頁鎖定的記憶體區域。
3.處理器與繪圖核心能動態且均衡的配置整個記憶體空間。

過去多核處理器加繪圖核心架構,當應用程式對繪圖核心發出需求時,只能透過OS核心與驅動程式解譯該需求後,以單一管線方式送出繪圖核心指令碼排入序列,造成整個系統運算資源的配置失衡。導入hUMA架構的HSA,除了保留從處理器傳遞給繪圖核心的分派工作序列,從繪圖核心回傳到處理器的回報管線之外,還新增了從應用程式端以及從硬體元件直接產生的繪圖核心標準指令序列;當執行經HSA最佳化的應用程式,各種對處理器、繪圖核心與其他元件的指令,直接從應用程式端若硬體元件端打散並均勻分派到各處理器多核、繪圖核心多處理單元內,使得整個SOC元件能夠負載均衡且和諧的協同執行。

HSA軟體產業生態與供應鏈

導入HSA、hUMA架構的AMD嵌入式產品解決方案,瞄準工業控制與自動化(Industrial Control & Automation)、嵌入式遊戲機(Embedded Gaming)、精簡型電腦(Thin Client)、數位看板(Digital Signage)與網通基礎設備(Communications Infrastructure)等市場。

Scott Lin說明AMD支援兩大軟體開發標準:
1.Khronos Group所發展出來的Open CL(Open Computing Language)加速型通用計算的程式介面(API)規範。
2.微軟的C++AMP(Accelerated Massive Parallelism)巨量平行運算加速架構。Open CL在HSA架構上的優勢,在於處理器與繪圖核心的記憶體定位指標(Pointers)可以共享,避免無謂的複製,降低分派指令的延遲並改進記憶體使用模式。在2013年Siggraph展中,已經有結合HSA架構下的Open CL 2.0的圖形處理技術的展示。

至於微軟C++AMP已整合於微軟Visual Studio開發環境,且成為Windows 8 Metro UI標準的函式API。在Visual Studio環境下開發C++語言時,只要使用Restrict與array_view兩個關鍵字,就可直接編譯出給繪圖核心做平行運算的指令碼,在HSA硬體平台上執行時能夠發揮並加速平行運算。

目前AMD HSA架構,在語言部份有OpenCL、C++(Bolt)、微軟C++ AMP、Java(Aparapi, OpenJDK)與Python;軟體開發工具有CodeXL及微軟Visual Studio,系統開發套件部份則有APP SDK 2.9。以Open CL為例,AMD提供了x264、Handbrake、FFMPEG、JPEG、VLC、OpenCV、GIMP、ImageMagick、IrfanView、Hadoop, Memcached、clMath、Aparapi(A parallel API for Java)、Bolt、Sumatra、Crypto++、Bullet physics library等包含開源碼(Open Source)的Lib/RT函式庫,目前有超過2,000個開源碼OpenCL函式庫,可應用於HSA異質運算的加速與優化。

HSA架構的軟體堆疊與系統元件

傳統應用程式透過OS API去存取處理器硬體。而HSA平台的軟體堆疊與系統元件圖中,底層為HSA硬體平台(HSA Platform),往上有處理器與繪圖核心區塊;在第三層OS區塊部份,則有LLVM Complier、HSAIL Finalizer、AQL Architected與Queuing language等系統元件;第四層為HSA執行函式庫架構(HSA Runtime Infrastructure),及第五層HSA加速應用程式(HSA Accelerated Application)。

如支援HSA架構最佳化的Bolt、Open CV等特定函式庫,經過HSA Runtime層產生HSAIL中介碼後,再分派到HSA Finalizer即時解碼、編譯,產生出可供繪圖核心執行的原生機器碼;Open CL執行函式庫也經由HSA Runtime層產生控制碼後,直些送到核心驅動程式去驅動繪圖核心硬體;而Direct X與其它執行函式庫,則透過傳統驅動程式去驅動繪圖核心與其他硬體加速元件。

AMD提供了統合型系統開發套件(Unified SDK),整合APP SDK 2.9與MEDIA SDK 1.0兩大套件於一體。前者提供Open Web-based的網頁瀏覽器,支援Open CL、C++ AMP,提供OpenCV, OpenNI, Bolt, Aparapi等函式庫開源碼,直接在Visual Studio IDE下提供OpenCL編輯工具的插入套件,並且支援Cmake;後者提供以繪圖核心加速視訊前端╱後端處理的函式庫,可均衡AMD多媒體視訊編解碼負載並降低延遲,函式庫同時支援Windows Store與傳統桌上型PC平台。

Scott Lin也快速的瀏覽像是HADOOP函式庫可加速應用10的15次方(Peta Bytes)等級的巨量資料分析(Big Data Analysis);HEVC(High Effiency Video Compress)如H.265壓縮協定,規定至少需從三個視角去處理,壓縮效能需求比H.264高出5?10倍,也是HSA最佳化編解碼程式著力之處。

目前AMD提供了Libre Office自由辦公室套裝軟體,可支援至4K解析度標準的x265 HEVC Codec,可做臉部辨識的Rabbit TV視訊社群交談╱播放軟體,支援語音╱手寫辨識的Dragon Notes,手勢控制的Eye Sight,Aftershot Pro以及訊連科技(CyberLink)的Cyberlink Photodirector 5相片編修軟體。Scott Lin最後總結,HSA是一個開放性且具備前瞻性的的產業標準,有廣泛的產業支援,提供視覺震撼與人機互動,易於程式碼撰寫、提供功耗最佳化,且可延長電池供電壽命。