找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

6

主题

8

帖子

67

积分

二级会员(20)

Rank: 2Rank: 2

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

EDA365欢迎您!

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

x
1  实验说明  I+ _3 R) k: X/ M% I# p
本例程测试功能:读取指定的图像数据,然后对图像进行灰度转换和Canny算法处理,计算处理过程所耗的时间,并将处理后的图像保存到当前目录下。4 Q  G. k: `( A# o: T  O) G
本例程主要是测试OpenCL是否对这两种算法有优化效果,分别从禁用OpenCL和使能OpenCL两种情况来计算处理图像数据所用的时间,将测试的结果与官方提供的测试结果进行对比和验证。5 l  Y/ @& P1 ^# _: _# s' I
例程源码路径:光盘“Demo/OpenCL/OpenCL_performance_test/src”3 V% ?. }; m+ S. W
可执行文件以及测试脚本路径:光盘“Demo/OpenCL/OpenCL_performance_test/bin”
$ Q- i6 b2 @. g' E0 U测试使用的图片路径:光盘“Demo/OpenCL/OpenCL_performance_test/data”
6 i( Y3 y. `& z) F0 m! a4 X测试平台:广州创龙TL5728-IDK开发板: Y' X+ G  o! D$ X+ B
开发板简介:: P. @$ }. c& d* }: J+ v$ |
 基于TI AM5728浮点双DSPC66x+双ARMCortex-A15工业控制及高性能音视频处理器;
) U2 e; y# @" V 强劲的视频编解码能力,支持1路1080P60或2路720P60或4路720P30视频硬件编解码,支持H.265视频软解码;
3 v3 M* M8 @, j: c0 u  Z0 f! D 双核PRU-ICSS工业实时控制子系统,支持EtherCAT、EtherNet/IP、PROFIBUS等工业协议;
( p" |6 o* r- F% k$ y. |% [ 外设接口丰富,GPMC、USB 2.0、UART、SPI、QSPI、I2C、DCAN等工业控制总线和接口,支持高速接口PCle Gen2、USB 3.0、SATA 2.0;
9 d6 ?5 G+ [7 |: D4 n7 } 应用于工业 PC&HMI、工业机器人、机器视觉、 医疗影像、电力自动化等领域。
  A5 Y7 ~* M1 N  `$ `# Q6 W: x
+ w. d8 Z& k: f. N / y4 M3 w$ c0 K6 p
: x4 j8 b( D% t: |
2  例程编译5 i8 w7 J( V' @' N- ~5 H& k
将光盘资料“Demo/OpenCL/OpenCL_performance_test/src”例程源码拷贝到Ubuntu任意目录,进入该源码目录执行以下命令对源码进行编译:
  Z3 G  D, P' [7 gHost#        cd AM57xx/OpenCL_performance_test/src/7 J* N5 t- f# q$ C4 S, r( }
Host#        make SDK_INSTALL_PATH=/home/tronlong/ti-processor-sdk-linux-am57xx-evm-03.01.00.06( k$ `5 M5 x, A  g6 Q
; B) x  k6 ?6 a: k

% z! p3 z$ V( [* M, Y8 v( ~- A0 c$ C9 i/ D1 j
编译完成之后会在当前目录下生成可执行文件canny,将其拷贝到开发板文件系统的“/home/root/”目录下。' m- ~5 t8 n, I+ k
将光盘资料“Demo/OpenCL/OpenCL_performance_test”下的bin文件夹以及data文件夹拷贝到开发板文件系统的“/home/root/”目录下。bin文件夹下包含opencl_off.sh和opencl_on.sh测试脚本,data文件夹下是两张大小和格式不同的图片文件TL5728_1080p.jpg和lena.png。
) I8 f# w1 J+ b% @9 @+ ~$ w8 b% d3 U% D# N
/ x" p: ]. L4 _, M  p9 z

& @: I+ y  V" C) z0 b8 X, }) @3  例程测试2 H7 C& n0 H  H8 @6 _8 J% A
以下分别从禁用OpenCL功能和使能OpenCL功能来进行对比测试,分别采用data文件夹下的图片TL5728_1080p.jpg和lena.png来测试。
2 X2 v/ [* t! Q! ^7 x* ?3.1        禁用OpenCL
3 k" U8 e4 `0 ?- I: |9 b2 e" h" n执行以下命令进行测试,先禁止运行OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤5次,如下图所示:" e( ?4 [  f+ D0 k4 @% ~3 U! z
Target#         source bin/opencl_off.sh' q) }7 Y  k' v) a/ J% ^% \
Target#         sync; echo 3 >/proc/sys/vm/drop_caches
; t' V7 ]; L$ l$ V2 GTarget#         ./canny data/TL5728_1080p.jpg
, D/ j! V3 g- T1 C% G6 j+ C9 u1 _- @: }) C! k/ F

& f( z0 ~9 W% w
) h7 g! S/ h4 ~; _1 W1 ~  y7 W取以上5次测试结果的平均值:
7 t1 p$ X* h' x+ ~  p5 \! Q# \! G        BGR2GRAY tdiff=55.01ms- {: j2 R* K; y$ I5 u5 h; }
        Canny tdiff=95.50ms+ I( ]+ L  I" u3 M
3.2        使能OpenCL
9 d6 }. A8 j- W' v0 O& U3 O6 J执行以下命令进行测试,先使能OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤6次,如下图所示:
: ^% L# f9 G  d  STarget#         source bin/opencl_on.sh
6 b* V4 ]$ K2 d2 X: w0 b6 I0 dTarget#         sync; echo 3 >/proc/sys/vm/drop_caches& u/ [* _0 _6 n  Q" u  B: K- n/ E
Target#         ./canny data/TL5728_1080p.jpg4 u5 O5 t1 k: w: x, c0 @. k3 H

6 j8 U0 l/ Y3 z( c
: {5 ]) D+ X# s" G( V# Y+ b6 }6 G; p" E# `4 h
如上一共测试了6次,每一次测试之前记得先将系统内核缓存清理干净,否则测试结果有误。因为第一次运行时,内核在AM57xx上编译,OpenCL使能时会有额外的延迟,延迟时间大约为几十秒,所以第一次测试结果不作为参考。官方解释如下:
, P0 z: g2 X% vPlease 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.
% h& G) p* {$ e5 Z由以上6次的测试结果,取最后5次测试结果的平均值:
  T$ l  n8 k7 w2 g6 T        BGR2GRAY tdiff=185.38ms5 _/ m& K0 G$ k$ H
        Canny tdiff=17.71ms# d+ r! \! i+ ]3 C$ T
3.3        测试结果对比
. u! T1 U8 @! R  J) g2 q% U同理,按照如上操作步骤在分别禁用OpenCL和使能OpenCL的情况下,计算处理lena.png图片所用的时间,并对5次测试的数据取平均值。对比以上测试结果,如下表所示:0 m! {% t$ e0 H9 W- n

4 q7 L0 i9 u0 y9 _; B 6 C8 o0 e6 |/ @+ d0 K2 [0 `

1 o0 t4 X% X! Y' c# h# x作用率=禁用OpenCL计算处理图像数据所用的时间/使能OpenCL计算处理图像数据所用的时间。
; p* J! G+ V, A6 S* h以下是官方的测试数据:
9 `# @4 U0 ]/ Z6 h! ^# l9 ]0 R( w
: v- z( a7 I( m7 n2 t; y

: D* N' @3 g! R% @0 QBGR2GRAY作用率=0.3458 a8 Z$ K" s  q2 o
Canny作用率=1.6904 ^. y# n. N& N- f9 D
从测试结果可以看出来,本次测试与官方测试结论是一致的:OpenCL对BRG2GRAY算法不但没有性能上的提升反而存在着负面的效果;而对Canny算法则有着非常明显的提升效果,与官方的作用率进行对比,本次测试得出的作用率要大于官方提供的作用率数据,这与待测试的图像文件有一定的关系。- M9 k- o5 R7 J& G
官方提供的其他OpenCL内核的测试数据:
% `) u. m, T3 d8 h: W, R  }; O链接:http://processors.wiki.ti.com/index.php/OpenCV2 @7 R. p$ _1 o
: C4 D, @, p, _; {, T5 `: w! f/ p
' O; l& P/ M6 K, W: }8 b1 A) m$ p6 q

) @! h6 Y! s; @9 W: v 2 _$ n* [0 q! I6 G5 C

3 Y/ r; ~8 F( F  _- _6 h3 a- F+ X
5 _9 W  I3 v1 `+ O; U! c5 i
9 M! R. p  X) _5 C) s; T9 n
, j- u# h5 _  t- P  _) K  n* L; X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-4-4 06:24 , Processed in 0.057888 second(s), 35 queries , Gzip On.

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

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

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