找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

6

主题

8

帖子

67

积分

二级会员(20)

Rank: 2Rank: 2

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

EDA365欢迎您!

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

x
1  实验说明3 }  Z! ?5 y! g3 q7 p
本例程测试功能:读取指定的图像数据,然后对图像进行灰度转换和Canny算法处理,计算处理过程所耗的时间,并将处理后的图像保存到当前目录下。$ F9 C  a9 F' M1 u* z
本例程主要是测试OpenCL是否对这两种算法有优化效果,分别从禁用OpenCL和使能OpenCL两种情况来计算处理图像数据所用的时间,将测试的结果与官方提供的测试结果进行对比和验证。
9 |/ \6 }. d* o& k/ s, u例程源码路径:光盘“Demo/OpenCL/OpenCL_performance_test/src”
8 g- W/ S, n) o4 |可执行文件以及测试脚本路径:光盘“Demo/OpenCL/OpenCL_performance_test/bin”( A$ R( F. S$ s' W5 p6 s0 q: c
测试使用的图片路径:光盘“Demo/OpenCL/OpenCL_performance_test/data”
* A" n: t1 p( t* r$ p0 }! n测试平台:广州创龙TL5728-IDK开发板
% E( h6 O* G; X$ d) q; K开发板简介:* D1 u+ f) V$ |7 [2 W% m
 基于TI AM5728浮点双DSPC66x+双ARMCortex-A15工业控制及高性能音视频处理器;4 [5 v/ ?! f  S3 J9 i# c% P( }
 强劲的视频编解码能力,支持1路1080P60或2路720P60或4路720P30视频硬件编解码,支持H.265视频软解码;8 t; K& q% K7 l* s! |0 ~' J0 e
 双核PRU-ICSS工业实时控制子系统,支持EtherCAT、EtherNet/IP、PROFIBUS等工业协议;
3 B6 l5 a+ L% Q, s2 L* e. [( E 外设接口丰富,GPMC、USB 2.0、UART、SPI、QSPI、I2C、DCAN等工业控制总线和接口,支持高速接口PCle Gen2、USB 3.0、SATA 2.0;% Q$ J; T- @, F( f( I
 应用于工业 PC&HMI、工业机器人、机器视觉、 医疗影像、电力自动化等领域。1 G6 C, l8 X8 L# q: f0 s
! a) y1 X! t1 J9 i6 C4 @
5 w4 V/ S6 u8 L/ T, `# L8 \8 h
. d0 m- d  S$ [! ?; F' R7 e( ]
2  例程编译
8 u; l5 \: W6 o5 t7 _& X2 H( n将光盘资料“Demo/OpenCL/OpenCL_performance_test/src”例程源码拷贝到Ubuntu任意目录,进入该源码目录执行以下命令对源码进行编译:# V7 k% [8 e% ~
Host#        cd AM57xx/OpenCL_performance_test/src/; \5 S9 T7 y3 e, c# E
Host#        make SDK_INSTALL_PATH=/home/tronlong/ti-processor-sdk-linux-am57xx-evm-03.01.00.06+ q4 K" m7 u" t! Y6 v& S

0 S* |2 c, K8 U9 @; X; m7 U
, M2 d" S7 K2 @& o% B: k. y( d& I# A$ m) r0 W
编译完成之后会在当前目录下生成可执行文件canny,将其拷贝到开发板文件系统的“/home/root/”目录下。9 w5 D. N( v/ M$ G# _
将光盘资料“Demo/OpenCL/OpenCL_performance_test”下的bin文件夹以及data文件夹拷贝到开发板文件系统的“/home/root/”目录下。bin文件夹下包含opencl_off.sh和opencl_on.sh测试脚本,data文件夹下是两张大小和格式不同的图片文件TL5728_1080p.jpg和lena.png。9 {' Z# _7 e" }" v$ _0 `
# b) t4 V3 Q- i7 d

5 N' o, k* U0 i. `/ S. J  ~7 G8 j- r0 M( }' W6 h, c
3  例程测试
$ R) Q9 o/ W0 k  V" T* L以下分别从禁用OpenCL功能和使能OpenCL功能来进行对比测试,分别采用data文件夹下的图片TL5728_1080p.jpg和lena.png来测试。
* Y  k* `6 L! M8 a3.1        禁用OpenCL, b; `6 v6 U* |
执行以下命令进行测试,先禁止运行OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤5次,如下图所示:: c& K; V% A2 M+ J: t  ?
Target#         source bin/opencl_off.sh8 ?$ \6 K# U+ g! C6 [) E, _! j$ i
Target#         sync; echo 3 >/proc/sys/vm/drop_caches
+ x0 t3 o3 I$ N  z& YTarget#         ./canny data/TL5728_1080p.jpg, n# z7 K* p- H/ ^2 X5 O: L5 i
" X) J+ g; W" I

) {7 n' I9 L% c+ ~# B9 L, m. Q- s4 W$ O; x' G4 M. K! E
取以上5次测试结果的平均值:4 x7 N, g* ?/ s# O9 S9 A  A
        BGR2GRAY tdiff=55.01ms
+ V) H3 U& m2 w        Canny tdiff=95.50ms) w0 M" g, t0 Y5 _3 p, m$ ?- c# m
3.2        使能OpenCL
+ b% I" R# p  ~' S5 z5 N, t9 |3 @4 M执行以下命令进行测试,先使能OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤6次,如下图所示:+ x' S; x+ Y1 J- s
Target#         source bin/opencl_on.sh6 Z) X3 g1 l8 K2 L7 p
Target#         sync; echo 3 >/proc/sys/vm/drop_caches
( q: ?& d7 ~  H5 W( T( E* M! xTarget#         ./canny data/TL5728_1080p.jpg2 v, l" Z. P2 Q* W9 g9 N
# W# ]- t+ L/ V8 k

! |! \/ q& X% C- H1 ]4 F3 S4 O4 y6 E: ]/ l  R. H' p6 i0 w# p
如上一共测试了6次,每一次测试之前记得先将系统内核缓存清理干净,否则测试结果有误。因为第一次运行时,内核在AM57xx上编译,OpenCL使能时会有额外的延迟,延迟时间大约为几十秒,所以第一次测试结果不作为参考。官方解释如下:/ m* I) J% u. Y- C* ?
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." H7 _1 @/ _% a
由以上6次的测试结果,取最后5次测试结果的平均值:
, }2 {8 m+ N+ P- v        BGR2GRAY tdiff=185.38ms! w6 s7 L4 b0 o4 O! n
        Canny tdiff=17.71ms
1 f1 A( K9 D3 p- v! M3.3        测试结果对比
. i& O# \& H4 N1 b7 C1 l5 w6 c同理,按照如上操作步骤在分别禁用OpenCL和使能OpenCL的情况下,计算处理lena.png图片所用的时间,并对5次测试的数据取平均值。对比以上测试结果,如下表所示:
  v% }6 S+ O2 Z6 r8 x, @
" }1 W, U4 H3 J! W 1 b% ^1 X% \0 D2 l! p4 n2 w

+ |7 z. F& f: _* ~作用率=禁用OpenCL计算处理图像数据所用的时间/使能OpenCL计算处理图像数据所用的时间。
  f$ H) @8 S* ^' v以下是官方的测试数据:
7 A: u3 I% [$ E2 Y6 }
8 V# H7 A3 G; m2 [8 ]
0 Y5 h. C0 _" ?
; P$ S6 d, }# Y- C2 h1 QBGR2GRAY作用率=0.3455 ^1 P3 M6 F$ Z- h; Q
Canny作用率=1.690
& }+ M2 `; ~/ c从测试结果可以看出来,本次测试与官方测试结论是一致的:OpenCL对BRG2GRAY算法不但没有性能上的提升反而存在着负面的效果;而对Canny算法则有着非常明显的提升效果,与官方的作用率进行对比,本次测试得出的作用率要大于官方提供的作用率数据,这与待测试的图像文件有一定的关系。/ D& m. B: N3 \  `+ G9 W1 c7 i
官方提供的其他OpenCL内核的测试数据:( y# S& u( ^) P9 I) L  m
链接:http://processors.wiki.ti.com/index.php/OpenCV
2 \; ?+ k% l1 Q+ H5 X& o
3 o. I$ S8 H* x1 k% j+ N; ^
/ v" I, o1 ]: D; d. K% U
5 i; C4 t3 n* k" D1 |
3 a- f$ l  H* v! H+ W
9 c. x: L+ H; A + D5 {# L* E9 T. q( ?/ `
) ]' g0 V$ t% v% T1 n$ _) s% ]9 L5 n
: s2 Y6 D4 E. h; y: \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-21 17:30 , Processed in 0.059648 second(s), 35 queries , Gzip On.

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

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

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