找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

6

主题

8

帖子

67

积分

二级会员(20)

Rank: 2Rank: 2

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

EDA365欢迎您!

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

x
1  实验说明
* E1 a+ N* L0 ]7 R本例程测试功能:读取指定的图像数据,然后对图像进行灰度转换和Canny算法处理,计算处理过程所耗的时间,并将处理后的图像保存到当前目录下。
) {, |2 K5 x9 {本例程主要是测试OpenCL是否对这两种算法有优化效果,分别从禁用OpenCL和使能OpenCL两种情况来计算处理图像数据所用的时间,将测试的结果与官方提供的测试结果进行对比和验证。
- E1 r& g, a/ [7 C5 d3 s. y例程源码路径:光盘“Demo/OpenCL/OpenCL_performance_test/src”5 l, V2 G- o3 ~/ G6 o8 s0 Z# p
可执行文件以及测试脚本路径:光盘“Demo/OpenCL/OpenCL_performance_test/bin”
* r; ?# p/ _3 y7 P0 g' k4 j测试使用的图片路径:光盘“Demo/OpenCL/OpenCL_performance_test/data”( S' z: m2 `/ N- w, w
测试平台:广州创龙TL5728-IDK开发板+ A/ @. p' i3 ~0 h: M
开发板简介:( W# N  [8 o# t4 @
 基于TI AM5728浮点双DSPC66x+双ARMCortex-A15工业控制及高性能音视频处理器;7 i6 J  U) s$ |
 强劲的视频编解码能力,支持1路1080P60或2路720P60或4路720P30视频硬件编解码,支持H.265视频软解码;
3 N) u1 b- T- N0 t$ p4 H3 X( X 双核PRU-ICSS工业实时控制子系统,支持EtherCAT、EtherNet/IP、PROFIBUS等工业协议;
& B2 h* ^  H& R- f, E, d 外设接口丰富,GPMC、USB 2.0、UART、SPI、QSPI、I2C、DCAN等工业控制总线和接口,支持高速接口PCle Gen2、USB 3.0、SATA 2.0;% h$ X, m$ j2 u4 T& ?9 e+ F
 应用于工业 PC&HMI、工业机器人、机器视觉、 医疗影像、电力自动化等领域。: n3 @8 ^$ c9 ?
3 u/ N; R3 l$ V4 I* O. B

0 o2 O! ]  i3 |# ?2 u  Y1 l: K+ C; [& p* B7 V
2  例程编译
3 h/ e3 t% d- s7 t将光盘资料“Demo/OpenCL/OpenCL_performance_test/src”例程源码拷贝到Ubuntu任意目录,进入该源码目录执行以下命令对源码进行编译:1 `7 P! p* G- U8 E5 p+ l
Host#        cd AM57xx/OpenCL_performance_test/src/
/ N$ v/ E" j( O2 w8 xHost#        make SDK_INSTALL_PATH=/home/tronlong/ti-processor-sdk-linux-am57xx-evm-03.01.00.06
7 f& Q1 q, a4 r$ c& B
8 z6 Z- U9 w. N6 V$ g9 ?! B
. f" |. L, Q7 a* s- }9 D
" b) R+ F& r  z编译完成之后会在当前目录下生成可执行文件canny,将其拷贝到开发板文件系统的“/home/root/”目录下。
8 q" K( G1 }# ]- {+ a将光盘资料“Demo/OpenCL/OpenCL_performance_test”下的bin文件夹以及data文件夹拷贝到开发板文件系统的“/home/root/”目录下。bin文件夹下包含opencl_off.sh和opencl_on.sh测试脚本,data文件夹下是两张大小和格式不同的图片文件TL5728_1080p.jpg和lena.png。  F5 o* J, g% ~& z
* M( r+ t  l8 G0 H# b

% {$ `3 J/ A( A& t
  B2 m+ a. F- W4 R- _* ]4 C3  例程测试" M6 i% w! q- k$ k; o" m+ T
以下分别从禁用OpenCL功能和使能OpenCL功能来进行对比测试,分别采用data文件夹下的图片TL5728_1080p.jpg和lena.png来测试。2 M, L5 b! ^& f* A
3.1        禁用OpenCL
8 i: @. ]1 t6 Q+ x7 m执行以下命令进行测试,先禁止运行OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤5次,如下图所示:6 }. y: C3 J/ Z( n
Target#         source bin/opencl_off.sh  [2 ^0 i3 Q$ e8 B7 T6 r" i1 K$ }1 v7 S
Target#         sync; echo 3 >/proc/sys/vm/drop_caches% d  I. B3 W6 u+ b: ]
Target#         ./canny data/TL5728_1080p.jpg' G) j. B0 r( S5 \/ C' o
4 W; ?9 K9 J) {3 B# r
( c8 U7 a4 Z0 j$ u) \/ l9 x. F& S

9 r# O2 }+ [, p/ y* ?取以上5次测试结果的平均值:* y4 z2 K7 p, G- @5 x  s* t
        BGR2GRAY tdiff=55.01ms# P9 s$ `$ Q) J2 l! x: r+ p
        Canny tdiff=95.50ms/ J- b7 i8 _  d  v7 {+ x# V
3.2        使能OpenCL+ {1 W: V0 f) w) v" i" T
执行以下命令进行测试,先使能OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤6次,如下图所示:
1 N6 k4 h0 n, RTarget#         source bin/opencl_on.sh
/ N5 Y$ E$ s0 ~- _& ^. YTarget#         sync; echo 3 >/proc/sys/vm/drop_caches. ], X5 |) B2 x# L  ]( n, u
Target#         ./canny data/TL5728_1080p.jpg
% N, \$ f0 V' R1 b  p' b( F: |; \3 f, _. O; K7 K
% z; ~9 l8 J3 K" T
/ J: H- s2 y/ H: l2 r
如上一共测试了6次,每一次测试之前记得先将系统内核缓存清理干净,否则测试结果有误。因为第一次运行时,内核在AM57xx上编译,OpenCL使能时会有额外的延迟,延迟时间大约为几十秒,所以第一次测试结果不作为参考。官方解释如下:
/ k  r" i8 q5 S: I: GPlease 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.
( q1 t; S) x) N' `6 C8 D. z- \& A1 c% c由以上6次的测试结果,取最后5次测试结果的平均值:0 j9 ?! i- g0 @4 J4 O
        BGR2GRAY tdiff=185.38ms
8 C2 u" }; f! d5 P5 t# v        Canny tdiff=17.71ms
" M2 ]2 ~5 F/ Q/ \% h9 P7 T3.3        测试结果对比
' H! S' L5 ~: r同理,按照如上操作步骤在分别禁用OpenCL和使能OpenCL的情况下,计算处理lena.png图片所用的时间,并对5次测试的数据取平均值。对比以上测试结果,如下表所示:
+ H' h0 A" B3 W, l  R
, d6 y$ v, ^* f9 k, e- B+ i
, J+ M' n" E- Q+ A2 U% h
! p! K5 u0 A% {作用率=禁用OpenCL计算处理图像数据所用的时间/使能OpenCL计算处理图像数据所用的时间。6 i8 ?' ]% D$ ?- L$ K5 w
以下是官方的测试数据:
6 G) Y0 w' |' e5 b3 M. j8 [2 G$ R( h
( |9 e" t, e0 L) U+ Q0 v3 Z
, A) h& q( Q2 K8 t% W4 R
BGR2GRAY作用率=0.345
: b) i' N7 C( Z2 S5 s  TCanny作用率=1.690# Z4 T6 T8 M* P( n5 O% V
从测试结果可以看出来,本次测试与官方测试结论是一致的:OpenCL对BRG2GRAY算法不但没有性能上的提升反而存在着负面的效果;而对Canny算法则有着非常明显的提升效果,与官方的作用率进行对比,本次测试得出的作用率要大于官方提供的作用率数据,这与待测试的图像文件有一定的关系。# X5 x$ {5 V: q
官方提供的其他OpenCL内核的测试数据:2 k, R! |* k2 ^% N+ q
链接:http://processors.wiki.ti.com/index.php/OpenCV
3 ~- v' |# Q4 e2 P# U
) o$ i" \4 S6 P1 R( J& h/ } " {8 J. H1 A9 X" |  E1 [$ w
1 ~7 w; c: n2 x$ e/ v8 D  d
/ m( G; V1 L' @+ s. g
" D2 u1 g' ?" U+ G
# D* d3 a+ V; A0 j5 w7 L5 A# M

, I& {+ M7 z9 u
/ v# U: e6 j2 f+ r: T' [: @/ F9 O' G7 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-1 13:11 , Processed in 0.061069 second(s), 36 queries , Gzip On.

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

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

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