OpenCL開發工具資源與封包處理應用 智慧應用 影音
Hackthon
IBM 數位行銷

OpenCL開發工具資源與封包處理應用

  • DIGITIMES企畫

超微半導體(AMD)嵌入式方案事業群產品經理Kelly Gillilan
超微半導體(AMD)嵌入式方案事業群產品經理Kelly Gillilan

美商超微半導體(AMD)除了推出全系列符合OpenCL規範的嵌入式應用產品之外,並與產業合作夥伴協同開發,藉由AMD的Accelerated Parallel Processing(APP,加速平行運算)技術的多個應用程序、程式碼範例與函式庫,能發揮出APU、GPU等異質性多核架構下的平行運算效能,像是在網際網路封包上的深入監測、過濾、轉發的處理,使得新一代網通設備能夠網路定義軟體化、雲端化…

AMD建構異質化多核心的加速處理器架構

Viosoft Corporation處長Charles Chiou

Viosoft Corporation處長Charles Chiou

超微(AMD)嵌入式解決方案部門產品行銷經理Kelly Gillilan指出,當今多核心處理器分為同質性多核(Homogeneous)與異質性多核(Heterogeneous)的差異,在於後者由兩種以上不同性質的核心所組成。以記憶體讀寫與串列運算見長的x86 CPU,與多顆浮點/3D圖形運算的GPU核心的異質性多核心,正是AMD所提出的加速處理器(Accelerated Processing Unit, APU)架構的概念。2012年6月,AMD與安謀(ARM)、Imagination、聯發科(MediaTek)、德儀(Texas Instrument)、高通(Qualcomm)成立的異質系統架構基金會 (Heterogeneous System Architecture, HSAFoundation),一同推動異質化多核心的普及。

由Khronos Group所發展出來的OpenCL(Open Computing Language),是業界第一個公開且免費的加速型通用計算的程式介面(API)規範;AMD是OpenCL早期導入者與支援者,與技術合作夥伴創造多個應用程序、程式碼範例與函式庫,藉由AMD的Accelerated Parallel Processing(APP,加速平行運算)技術,以OpenCL充分發揮出異質性多核系統的平行運算加速效益,協助提供效能與計算效率。

AMD提供全系列符合OpenCL異質性平行處理的應用產品,從低功耗G系列APU具備4.5?18W設計功耗,最高80GFLOPs運算效能,到高效能R系列的具備17?35W設計功耗,500GFLOPs的運算效能。獨立型GPU產品如AMD Radeon E6460 GPU採BGA封裝、MXM模組或PCIe附加介面卡形式,設計功耗20W,搭配25GB/s頻寬的GDDR5記憶體,發揮192GFLOPS運算效能;E6760 GPU採BGA封裝、MXM模組或PCIe附加介面卡,設計功耗35W,51GB/s頻寬的GDDR5記憶體,576GFLOPs的浮點運算效能;E6970 GPU則採MXM模組設計,功耗95W,搭配115GB/s頻寬的GDDR5記憶體,發揮1.3TFLOPs的浮點運算效能。

OpenCL基本概念與撰寫模式

Kelly Gillilan指出與過去用於影像處理的OpenGL(Open Graphic Language)所不同的,是OpenCL把GPU納入做為運算用途。OpenCL所定義的Platform是指由系統主控(Host,通常指CPU)加上在OpenCL框架下,允許由應用程序共享資源的平台,以及具備多個執行程式內核設備(Kernels on Devices)的集合;每一個Compute Device至少1到多個Compute Unit(計算單元),而每一個Computer Unit內部至少有1到多個最基本的處理元素(Processing Element)。

以C語言的陣列乘積的迴路範例為例,傳統寫法可能是int i; for (i=0;i
OpenCL的記憶體模式分為四大塊:Global Memory指每一個Compute Device以及內部Compute Unit能接觸只能讀(read-only)的記憶體區域;Global/Constant Memory DataCache則是給OpenCL函式庫執行使用;每一個Compute Device(指CPU或GPU)都有其專屬的區域性記憶體(Local Memory),每一個Compute Unit內部最基本的Compute Unit,也有自己專屬的私有記憶體區域(Private Memory)。

OpenCL程式撰寫模式也分成:1.由主控(Host)所執行的程式碼。2.標頭(Header)。每個要被分配出去平行運算的程式碼片段,需有Header以及宣告(Declarations)來定義。3.執行核心(Kernels),由OpenCL函式指派且分配到每個核心的部份。

AMD建議業界:1.創造可以在Windows或Linux下執行的開發環境。2.下載最新AMD Catalysts software驅動程式。3.下載AMD APP SDK開發套件2.下載Windows 7以後的版本。4.執行SDK內部的程式範例。5.試著建立與執行一個程式範例。6.開始撰寫程式,修改移植SDK內的程式範例。7.建立自己的程式碼並寫入硬體平台,並透過模擬器或除錯程式環境下來執行。

AMD也設立OpenCL Zone專屬網頁,開發者可以去免費下載新手開始的訓練技術文件、APP SDK開發套件等。還有其他產業合作夥伴,如Sage Electronic Engineering的Sage Probe/EDK硬體除錯套件,Texus Multicore Technologies (TMT)公司協助多核心的程式碼撰寫、演算法移植、除錯的諮詢服務等。

Viosoft以OpenCL做加速網路封包處理的應用

接下來由Viosoft公司台灣區經理Charles Chiou講解以OpenCL開發工具與資源,在AMD APU平台下做網路封包處理的實例。他認為傳統CPU與GPU透過較慢的PCI/PCIe匯流排溝通,形成網路封包的傳輸瓶頸、功耗與成本也偏高;APU內建80個以上的Radeon繪圖運算單元來做平行運算,可應用於視覺運算與網路交易安全性的編解碼作業,無論在單位效能╱瓦的表現,或者系統體積尺寸上,比傳統CPU搭獨立GPU還來得出色,因應下一代可程式化網路封包處理的需求。

Charles Chiou以澳洲Vodafone業者為例,Vodafone提供像上Facebook封包免費,透過其它網路ISP業者連網有折扣,以及像觀看廣告內容封包與網路商店購物等零費率(這部份由廣告供應商負責),要達到這樣依內容性質、來源做不同計費準則的網路封包計費機制,只監控封包流量的傳統網通設備如路由器、防火牆、NAT網路轉址、VPN虛擬私網設備已無法應付。

Viosoft目前跟AMD合作進行Teranium專案計畫,藉由OpenCL加上GPU來加速封包處理。以x86架構來控制、監測基本網路封包集中式的數據資料,同時針對網路時代的各式各樣的封包,區分出計時內容、用戶創造的內容,針對特定觀眾的廣告或促銷活動,同時過濾垃圾信件、防範病毒及網路惡意封包攻擊等等。

Charles Chiou指出網通設備技術的當前主流是Deep Content Inspection(深度內容監控);但為了適應零費率、發送端付費、有基本額度的網路封包需求,網通設備要再進化到具備系統內容處理(Systemic Content Processing)技術,以軟體定義方式監測、過濾、分派各式各樣的封包。Viosoft在一部採雙AMD APU晶片系統建構的1U機架式系統,具備雙10Gbit區域網路介面,在其中一顆APU晶片導入OpenCL最佳化的網路封包程式後,可以充分發揮出卸載引擎(offload engine)功能,同時IP封包轉發效能提高到50%(5Gbps)。

Viosoft正與AMD合作進行Teranium專案,也就是4x10Gbit(4埠)網路介面驅動程式的最佳化,同時具備深度封包監測(Deep-Packer Inspection)的可延伸框架,可以繞過Linux核心的TCP/IP軟體堆疊層。他們研究發現,只是卸除CPU負載還不夠,正確策略是將大量封包處理從CPU移到GPU內進行平行處理,當然像設備驅動程式碼、數據封包調度程式碼與控制面板程式碼仍然得擺在CPU內執行。同時嘗試如何降低記憶體複製次數、CPU/GPU溝通瓶頸與排程負擔。

啟動OpenCL加速平行運算效能提昇數十到上百倍

Charles Chiou以實際OpenCL的加速效能做說明。以CPU搭外接AMD Radeon 5450HD GPU卡,以及配置Embedded G系列APU的Persimmon板,分別以單純CPU以及GPU在OpenCL下啟用APP加速平行運算進行DES編碼、DES解碼、AES編碼與AES解碼。在DES編碼部份,Radeon HD 5450從0.25增加到8.0,G-APU更可以從0.57爆增到52.67;在DES解碼部份,Radeon HD 5450從0.25增加到5.5,G-APU從0.62爆增到52.25;AES編碼部份,Radeon HD 5450從0.11增加到13.4,G-APU從0.85爆增到59;AES解碼,Radeon HD 5450從0.4增加到9,G-APU更可以從0.62增加為72.42,整體來說有22?120倍的效能提昇。

最後Charles Chiou介紹Viosoft針對AMD APU平台與下游開發者所開發的整合開發環境(IDE)套件,分別整合GNU的Embedded Edition以及EmbeddedLinux Edition兩種版本。而Viosoft更開發出ARRIBA遠端跨平台虛擬除錯技術,位於亞特蘭大客戶端內嵌Linux的AMD APU平台,透過網路IP方式接受來自德州Austin的工程師遠端遙控;而工程師的電腦只要執行VMON虛擬裝置後,即便是在Windows或其它Linux作業系統,仍可以跟另一端的AMD APU平台相互溝通,列出內部模組與程式碼片段,來進行單步執行、除錯的步驟。
(本文提供英譯版本,請按此連結閱讀英譯版本內容)