OpenCL开发工具资源与封包处理应用 智能应用 影音
工研院
member

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平台相互沟通,列出内部模块与程序码片段,来进行单步执行、除错的步骤。
(本文提供英译版本,请按此连结阅读英译版本内容)