找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

6

主题

8

帖子

67

积分

二级会员(20)

Rank: 2Rank: 2

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

EDA365欢迎您!

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

x
1  实验说明
3 }+ l. M: C/ u* ?) R! ]本例程测试功能:读取指定的图像数据,然后对图像进行灰度转换和Canny算法处理,计算处理过程所耗的时间,并将处理后的图像保存到当前目录下。
* g" l* m# k8 o1 J本例程主要是测试OpenCL是否对这两种算法有优化效果,分别从禁用OpenCL和使能OpenCL两种情况来计算处理图像数据所用的时间,将测试的结果与官方提供的测试结果进行对比和验证。9 m7 X/ Q. m. N3 G" v
例程源码路径:光盘“Demo/OpenCL/OpenCL_performance_test/src”! I& z* a, m* V4 W: E
可执行文件以及测试脚本路径:光盘“Demo/OpenCL/OpenCL_performance_test/bin”2 @* X3 W0 H+ X3 i# u3 d
测试使用的图片路径:光盘“Demo/OpenCL/OpenCL_performance_test/data”
0 q) O: J5 U4 }- M' x测试平台:广州创龙TL5728-IDK开发板
. Q0 B5 [# V, B) L开发板简介:# U" {/ T2 T, w! Q5 W7 r- q0 a
 基于TI AM5728浮点双DSPC66x+双ARMCortex-A15工业控制及高性能音视频处理器;
- P* w1 X8 O: m; e3 m+ B 强劲的视频编解码能力,支持1路1080P60或2路720P60或4路720P30视频硬件编解码,支持H.265视频软解码;
, F5 r( H3 r- r8 r 双核PRU-ICSS工业实时控制子系统,支持EtherCAT、EtherNet/IP、PROFIBUS等工业协议;( M' G3 M7 ?7 }* D4 b
 外设接口丰富,GPMC、USB 2.0、UART、SPI、QSPI、I2C、DCAN等工业控制总线和接口,支持高速接口PCle Gen2、USB 3.0、SATA 2.0;0 @+ Y9 Y# h, }' {: u5 D) a
 应用于工业 PC&HMI、工业机器人、机器视觉、 医疗影像、电力自动化等领域。; v) u5 T9 c6 [0 d" X3 x

+ D% j1 ]! [; D% f
6 {5 ^6 d2 n9 l6 P$ M6 O3 \4 `
" v3 p2 Y2 s* M, {1 n2  例程编译# G2 @5 F1 S' C$ G* f
将光盘资料“Demo/OpenCL/OpenCL_performance_test/src”例程源码拷贝到Ubuntu任意目录,进入该源码目录执行以下命令对源码进行编译:
9 w/ K1 N) B% [8 \9 o1 z! WHost#        cd AM57xx/OpenCL_performance_test/src/
5 i/ O7 P8 f, r2 x6 z; oHost#        make SDK_INSTALL_PATH=/home/tronlong/ti-processor-sdk-linux-am57xx-evm-03.01.00.06
% c9 v9 }' t  ~; ~, }5 M; r
! d9 B' P) ^! \' _
4 h0 x) c2 A0 g- N) Q" t2 c7 x( C0 V2 j
编译完成之后会在当前目录下生成可执行文件canny,将其拷贝到开发板文件系统的“/home/root/”目录下。6 }3 l4 R+ c0 G0 x
将光盘资料“Demo/OpenCL/OpenCL_performance_test”下的bin文件夹以及data文件夹拷贝到开发板文件系统的“/home/root/”目录下。bin文件夹下包含opencl_off.sh和opencl_on.sh测试脚本,data文件夹下是两张大小和格式不同的图片文件TL5728_1080p.jpg和lena.png。. }- g: t3 G- c, L
& g, l" X9 J2 Q9 q; N

  C) ?. \, {- h# l0 d/ L% V" Q; H# R) `9 J0 Z* {
3  例程测试$ G+ s% ?$ x+ g. y- Q
以下分别从禁用OpenCL功能和使能OpenCL功能来进行对比测试,分别采用data文件夹下的图片TL5728_1080p.jpg和lena.png来测试。$ B, m- \( M6 K3 \" m' O
3.1        禁用OpenCL& P* K0 i! _! H& n8 t8 C8 z
执行以下命令进行测试,先禁止运行OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤5次,如下图所示:+ {% e7 S6 U) t$ W  ~6 J: Y
Target#         source bin/opencl_off.sh
# O( t% r1 r& q1 h( xTarget#         sync; echo 3 >/proc/sys/vm/drop_caches
6 a; {# c* y$ @% I, l. z- ?Target#         ./canny data/TL5728_1080p.jpg
0 u* p/ y( P" [5 z+ V
3 c( A0 F7 L- K4 ?- X9 M
+ |8 c( O3 Y* i7 t' E1 D0 P4 B- s. V9 m3 k; }5 l
取以上5次测试结果的平均值:
8 I% r  d. @4 w( d! o$ D, W8 ^        BGR2GRAY tdiff=55.01ms
( E! B, l( X7 z  M        Canny tdiff=95.50ms
7 K& q  d0 {! i* o" X! T3.2        使能OpenCL
1 l- B2 _7 k% p* Y" r* V3 M% o执行以下命令进行测试,先使能OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤6次,如下图所示:. F$ y5 m, o+ O! N  x( O" e' R! A
Target#         source bin/opencl_on.sh& }% W$ k# `  S) p
Target#         sync; echo 3 >/proc/sys/vm/drop_caches+ P/ U" a0 {' m. W( B* y: n
Target#         ./canny data/TL5728_1080p.jpg4 T2 P( T" ^  J$ \1 P2 i# C7 Q
3 K0 o8 {4 D9 Y9 U( }- {( g, J/ B

4 |9 V" T( M. x
" ~4 \# z7 x* N6 ]2 ^% ?如上一共测试了6次,每一次测试之前记得先将系统内核缓存清理干净,否则测试结果有误。因为第一次运行时,内核在AM57xx上编译,OpenCL使能时会有额外的延迟,延迟时间大约为几十秒,所以第一次测试结果不作为参考。官方解释如下:
+ n4 v8 r+ ?: f8 d2 n3 n* dPlease 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.
7 |$ v% p6 z: a- `5 W* `由以上6次的测试结果,取最后5次测试结果的平均值:
, \' w4 [* `$ W( b9 M* z        BGR2GRAY tdiff=185.38ms2 p# k3 s0 S. R8 K! }3 o% A8 r
        Canny tdiff=17.71ms' X% z( L. q* W0 Y8 \3 }6 r! \2 P
3.3        测试结果对比: c- G3 K' \3 O: t
同理,按照如上操作步骤在分别禁用OpenCL和使能OpenCL的情况下,计算处理lena.png图片所用的时间,并对5次测试的数据取平均值。对比以上测试结果,如下表所示:
7 w  O7 G+ `* C9 H
# M8 g0 l' A8 J/ h4 N! W. n
* R# A& v1 F7 {: b' \8 w8 H
  S# |  I  `: q4 v2 {作用率=禁用OpenCL计算处理图像数据所用的时间/使能OpenCL计算处理图像数据所用的时间。# Q9 ~" v) G5 _3 @1 Y8 c2 l  }/ }
以下是官方的测试数据:( `& C, A  G# r& V" [* s
8 Y3 t: y1 D. e- s9 U; t, P/ q
. s! C, D% ]- z" p* O

/ x) c1 ]" ?- E/ f/ z# e/ M. K4 ]BGR2GRAY作用率=0.345! F- S. v# Z2 _+ v! n5 ?- U8 s3 A
Canny作用率=1.690
9 B: A. T: ]& X$ X( d0 V2 @6 Q从测试结果可以看出来,本次测试与官方测试结论是一致的:OpenCL对BRG2GRAY算法不但没有性能上的提升反而存在着负面的效果;而对Canny算法则有着非常明显的提升效果,与官方的作用率进行对比,本次测试得出的作用率要大于官方提供的作用率数据,这与待测试的图像文件有一定的关系。+ B  w$ W8 {$ c) P3 d" i
官方提供的其他OpenCL内核的测试数据:9 d7 p7 h' G. G& r* X: h
链接:http://processors.wiki.ti.com/index.php/OpenCV7 r8 I* d# t" X- c$ M* i

6 ^: M: o2 m) {+ W: ?
2 E: X# q8 u( v0 `' h( N0 R6 K- }& S1 q- j4 B

5 r5 s) j; q* i. c- q9 F
! `( I+ s7 Z- L  h$ V0 S
- I0 O$ x7 @4 P, M4 @1 \! h- F9 y( Y& R! @+ t5 U3 n# i

* w& k% o1 q6 P6 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-5-23 08:08 , Processed in 0.057499 second(s), 35 queries , Gzip On.

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

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

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