找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 114|回复: 0
打印 上一主题 下一主题

如何基于AM57x测试OpenCL的加速性能?

[复制链接]

6

主题

8

帖子

67

积分

二级会员(20)

Rank: 2Rank: 2

积分
67
跳转到指定楼层
1#
发表于 2018-7-4 10:54 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
1  实验说明
* }5 m  s0 _7 G本例程测试功能:读取指定的图像数据,然后对图像进行灰度转换和Canny算法处理,计算处理过程所耗的时间,并将处理后的图像保存到当前目录下。
8 Y( f1 D, C6 Q2 k本例程主要是测试OpenCL是否对这两种算法有优化效果,分别从禁用OpenCL和使能OpenCL两种情况来计算处理图像数据所用的时间,将测试的结果与官方提供的测试结果进行对比和验证。
2 `. {; K. ~  `! ]: G6 j+ _例程源码路径:光盘“Demo/OpenCL/OpenCL_performance_test/src”7 C1 a7 Y- g( Q7 Z
可执行文件以及测试脚本路径:光盘“Demo/OpenCL/OpenCL_performance_test/bin”: c9 l4 ]* s8 V' k: e, c7 _
测试使用的图片路径:光盘“Demo/OpenCL/OpenCL_performance_test/data”# r, c7 i8 k+ |/ l
测试平台:广州创龙TL5728-IDK开发板0 p6 g" S# j& c( v2 z$ D
开发板简介:# h5 j" X  b) ]  O& q
 基于TI AM5728浮点双DSPC66x+双ARMCortex-A15工业控制及高性能音视频处理器;/ T9 h. t' `1 T# v  v; D) A
 强劲的视频编解码能力,支持1路1080P60或2路720P60或4路720P30视频硬件编解码,支持H.265视频软解码;
9 i' P. p9 [0 q% J6 @% L0 h- \6 x7 X 双核PRU-ICSS工业实时控制子系统,支持EtherCAT、EtherNet/IP、PROFIBUS等工业协议;9 H8 ^/ P: |1 V
 外设接口丰富,GPMC、USB 2.0、UART、SPI、QSPI、I2C、DCAN等工业控制总线和接口,支持高速接口PCle Gen2、USB 3.0、SATA 2.0;1 R4 m5 {; f2 ^2 B  L
 应用于工业 PC&HMI、工业机器人、机器视觉、 医疗影像、电力自动化等领域。! F" `* `1 H& `! b$ `: }

8 T1 c/ D% v5 x/ D1 V$ c  t
3 t5 e6 M. H" {
# U5 ?* b$ `) M! A2  例程编译
5 y9 m8 x- A: S2 r0 j+ l3 e将光盘资料“Demo/OpenCL/OpenCL_performance_test/src”例程源码拷贝到Ubuntu任意目录,进入该源码目录执行以下命令对源码进行编译:2 k9 D! k4 L: C; h# h; m
Host#        cd AM57xx/OpenCL_performance_test/src/
3 g) b. D5 c! V" e# u, eHost#        make SDK_INSTALL_PATH=/home/tronlong/ti-processor-sdk-linux-am57xx-evm-03.01.00.06
# P7 I* b, X5 l7 E4 I9 \/ S3 R
9 h& P2 R+ i2 ~ ! ?. i' T7 S$ @3 ]' u" E

7 C& r% b% ~1 e& k9 i3 p& t编译完成之后会在当前目录下生成可执行文件canny,将其拷贝到开发板文件系统的“/home/root/”目录下。
; _' c% n, P* {5 \' _将光盘资料“Demo/OpenCL/OpenCL_performance_test”下的bin文件夹以及data文件夹拷贝到开发板文件系统的“/home/root/”目录下。bin文件夹下包含opencl_off.sh和opencl_on.sh测试脚本,data文件夹下是两张大小和格式不同的图片文件TL5728_1080p.jpg和lena.png。8 a  ?4 Q2 m3 c

. n: u2 S) [' F# R2 Q
! K: B) h- s+ X* L( |* D7 h6 f0 B6 f* `6 ^
3  例程测试
2 e' |! |" b5 N. P# U$ u: _/ G$ p' B以下分别从禁用OpenCL功能和使能OpenCL功能来进行对比测试,分别采用data文件夹下的图片TL5728_1080p.jpg和lena.png来测试。
& }3 g( j4 d8 ?5 x* v3.1        禁用OpenCL5 P9 J7 Z5 P, b
执行以下命令进行测试,先禁止运行OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤5次,如下图所示:& n( ^9 d/ G: J4 a# u" c6 C7 D$ e
Target#         source bin/opencl_off.sh
( h: L& I. d' I  l: Y2 k* \7 {. A8 OTarget#         sync; echo 3 >/proc/sys/vm/drop_caches
& R" f; U' _/ T! Y7 I( GTarget#         ./canny data/TL5728_1080p.jpg5 m! Q% R' I! K

+ P' w8 G& {% o6 n5 N' m0 ]! [5 B, D: D
' _6 O$ F' {, g3 k4 \* k/ h1 J6 B" h" s
取以上5次测试结果的平均值:
+ j; v7 J5 ~' h. s+ d        BGR2GRAY tdiff=55.01ms1 ?$ T/ y: B: ]( ]7 n) m- Q3 z( o* N
        Canny tdiff=95.50ms' E; {, @9 R: i. R0 q" N
3.2        使能OpenCL5 F, m" U* G! Z7 c) u* ~& f
执行以下命令进行测试,先使能OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤6次,如下图所示:" v) j1 }" ]/ [/ q2 |* U
Target#         source bin/opencl_on.sh& R8 a/ G( t4 Q3 Z  H
Target#         sync; echo 3 >/proc/sys/vm/drop_caches
* O' c" x5 I3 k0 lTarget#         ./canny data/TL5728_1080p.jpg) H1 F6 Y: n3 t* X
$ S, c4 y3 O2 Z; A
, C6 K2 I. g* Q  S. b

# j' |9 L6 L  _如上一共测试了6次,每一次测试之前记得先将系统内核缓存清理干净,否则测试结果有误。因为第一次运行时,内核在AM57xx上编译,OpenCL使能时会有额外的延迟,延迟时间大约为几十秒,所以第一次测试结果不作为参考。官方解释如下:. D0 `! J: v/ j/ Z
Please note that the first run, with OpenCL on, has additional delay of ~1min, due to kernel compilation on AM57xx. This is constrained to first run only, if "TI_OCL_CACHE_KERNELS" environemnt variable is set.
0 r' Y4 c( @5 S4 b) {) B由以上6次的测试结果,取最后5次测试结果的平均值:
- o& y5 t1 U0 h0 Z        BGR2GRAY tdiff=185.38ms
. @! D  R: _' R/ x( s5 ^        Canny tdiff=17.71ms
6 C" L1 A8 Z0 d8 ^% X- D3.3        测试结果对比
9 o1 P$ L  y2 r同理,按照如上操作步骤在分别禁用OpenCL和使能OpenCL的情况下,计算处理lena.png图片所用的时间,并对5次测试的数据取平均值。对比以上测试结果,如下表所示:
4 C  R, A8 d+ {" @5 k7 R* ]3 c$ M' t7 U3 c8 z2 z! O6 l5 e

5 h6 h7 `, D& [& m
; W. R8 J) m/ Y8 l作用率=禁用OpenCL计算处理图像数据所用的时间/使能OpenCL计算处理图像数据所用的时间。; V& G; v( ~& L
以下是官方的测试数据:
" ]* z0 Y$ J9 E2 ?, c( @3 e3 J
& p& Y4 ^7 K* f 2 a, q! l2 _6 S5 ~' d: [  Y4 p' X

8 ^& D2 [6 m1 m* BBGR2GRAY作用率=0.3458 y: u7 N! B! x$ @$ ?6 {
Canny作用率=1.6906 y, b/ E3 N8 b
从测试结果可以看出来,本次测试与官方测试结论是一致的:OpenCL对BRG2GRAY算法不但没有性能上的提升反而存在着负面的效果;而对Canny算法则有着非常明显的提升效果,与官方的作用率进行对比,本次测试得出的作用率要大于官方提供的作用率数据,这与待测试的图像文件有一定的关系。1 g( Q3 w- U2 z8 f# _
官方提供的其他OpenCL内核的测试数据:# R: X. W- |- ?6 e, E' ]9 C/ ^
链接:http://processors.wiki.ti.com/index.php/OpenCV- \5 K! i% \) i. Y3 L  T9 r) k

) o, f1 H. q* [! {3 Z! S
" L/ p1 Y& d2 m  z2 w+ `4 n0 i5 ?7 @6 }  \

& x- {) ~( ?% a! T8 n; [7 X  r# v" S; F/ S& ~' ^% n

4 Q( r4 k5 y: I  L4 d: p5 U  `' l4 ?7 H, _* i9 s/ S/ k7 k' h
) h, L% H3 e/ u8 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-9-17 04:35 , Processed in 0.078679 second(s), 36 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表