找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

6

主题

8

帖子

67

积分

二级会员(20)

Rank: 2Rank: 2

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

EDA365欢迎您!

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

x
1  实验说明
, L; K8 o' Y$ c9 l本例程测试功能:读取指定的图像数据,然后对图像进行灰度转换和Canny算法处理,计算处理过程所耗的时间,并将处理后的图像保存到当前目录下。
5 ^9 k+ e6 j1 B% n( h# ?* C3 ]8 l5 ~本例程主要是测试OpenCL是否对这两种算法有优化效果,分别从禁用OpenCL和使能OpenCL两种情况来计算处理图像数据所用的时间,将测试的结果与官方提供的测试结果进行对比和验证。
' a" J0 S6 B$ P例程源码路径:光盘“Demo/OpenCL/OpenCL_performance_test/src”( x0 c- w2 E4 R' H2 v0 B
可执行文件以及测试脚本路径:光盘“Demo/OpenCL/OpenCL_performance_test/bin”
) T1 @' x6 ^# W2 j. K3 p: u2 v测试使用的图片路径:光盘“Demo/OpenCL/OpenCL_performance_test/data”8 j! i8 A! ]+ c2 v- w0 @% Y- o7 d3 x
测试平台:广州创龙TL5728-IDK开发板6 s& |$ g5 g( R" |& X2 X3 `
开发板简介:
, }! g, [# o' z 基于TI AM5728浮点双DSPC66x+双ARMCortex-A15工业控制及高性能音视频处理器;
+ {6 ?' f0 o1 m; @/ B 强劲的视频编解码能力,支持1路1080P60或2路720P60或4路720P30视频硬件编解码,支持H.265视频软解码;5 z8 x  \4 M/ w' M0 ^
 双核PRU-ICSS工业实时控制子系统,支持EtherCAT、EtherNet/IP、PROFIBUS等工业协议;) C8 N4 j' f; m( @4 b9 `. O( h
 外设接口丰富,GPMC、USB 2.0、UART、SPI、QSPI、I2C、DCAN等工业控制总线和接口,支持高速接口PCle Gen2、USB 3.0、SATA 2.0;
* C  ~" i; x: b8 w  U 应用于工业 PC&HMI、工业机器人、机器视觉、 医疗影像、电力自动化等领域。, P- M: v& @2 y4 R# q) r5 U
+ D! o, }, o$ R+ S

- u7 a$ Z2 K1 i& ~6 t. j
) s7 F9 [5 N# A- Z2  例程编译- w% M# h$ U; c1 P
将光盘资料“Demo/OpenCL/OpenCL_performance_test/src”例程源码拷贝到Ubuntu任意目录,进入该源码目录执行以下命令对源码进行编译:' `' Z; Y5 R+ U& P* i: e$ [3 e+ M2 f
Host#        cd AM57xx/OpenCL_performance_test/src/7 D- e! {5 k( N; E, Q+ z' f- `
Host#        make SDK_INSTALL_PATH=/home/tronlong/ti-processor-sdk-linux-am57xx-evm-03.01.00.06
  P  W6 S* Z3 Y" `
# P0 y6 D  P, @" _$ n 0 _* B0 W$ S6 ^. w) z

1 {+ Q0 a% S; M# i. Z编译完成之后会在当前目录下生成可执行文件canny,将其拷贝到开发板文件系统的“/home/root/”目录下。
" V- i0 S( }5 Q将光盘资料“Demo/OpenCL/OpenCL_performance_test”下的bin文件夹以及data文件夹拷贝到开发板文件系统的“/home/root/”目录下。bin文件夹下包含opencl_off.sh和opencl_on.sh测试脚本,data文件夹下是两张大小和格式不同的图片文件TL5728_1080p.jpg和lena.png。. I4 P2 M4 B( J% I  t, S9 q1 q

" y# X5 ]8 V* T4 }
7 g0 a, Z7 G. h
# o. S# ]- J* J2 Q6 x3 R: {3  例程测试
- t3 I" ^2 V  U2 E" _5 T以下分别从禁用OpenCL功能和使能OpenCL功能来进行对比测试,分别采用data文件夹下的图片TL5728_1080p.jpg和lena.png来测试。
/ y4 ]0 S4 L2 B/ v3.1        禁用OpenCL
$ j. H; V! u/ Q3 [9 k执行以下命令进行测试,先禁止运行OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤5次,如下图所示:
( U0 \+ b# D+ v6 W% x2 eTarget#         source bin/opencl_off.sh
, q7 _: c6 S+ V. x" ?, ^" TTarget#         sync; echo 3 >/proc/sys/vm/drop_caches
4 _9 L2 z: J2 p; L1 d6 |Target#         ./canny data/TL5728_1080p.jpg
) a; g( Q/ u6 l0 h. |( S( r, I' v/ Z  N& x& Y2 ~

0 H: s, W0 R: i) z( I- K- {$ Q; z; ]+ G  M
取以上5次测试结果的平均值:
8 @; K: X6 N$ R( P% B- U        BGR2GRAY tdiff=55.01ms9 O3 u! H4 R% f
        Canny tdiff=95.50ms$ o! z& L/ l* w/ w5 k
3.2        使能OpenCL
) z& H7 n! _$ l* P4 f% E* I2 C) }执行以下命令进行测试,先使能OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤6次,如下图所示:
' C, e7 q3 J2 s1 r) h) L0 fTarget#         source bin/opencl_on.sh8 a" W1 p9 E$ ?/ A- Y9 {7 H4 _$ _
Target#         sync; echo 3 >/proc/sys/vm/drop_caches3 Z3 }, X& Q1 c: T0 x, `# I
Target#         ./canny data/TL5728_1080p.jpg
# _/ D8 P2 S, _9 t# j3 T% |; l6 i6 C4 H, j$ _( w% e  r

% L" e0 ^6 R- S; T7 j( W6 Y
; H* `, t* F  I( m9 ^& Q" g/ x如上一共测试了6次,每一次测试之前记得先将系统内核缓存清理干净,否则测试结果有误。因为第一次运行时,内核在AM57xx上编译,OpenCL使能时会有额外的延迟,延迟时间大约为几十秒,所以第一次测试结果不作为参考。官方解释如下:
% v% w4 {2 @2 ^  G9 |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.
# j9 i4 d% u6 t$ J/ x6 \3 p由以上6次的测试结果,取最后5次测试结果的平均值:4 `" ~* e3 V, n' b
        BGR2GRAY tdiff=185.38ms$ F- d$ \- i0 _
        Canny tdiff=17.71ms
# r# q8 T3 ^$ u9 V3.3        测试结果对比
( E9 m/ [9 V  j" b% [& @同理,按照如上操作步骤在分别禁用OpenCL和使能OpenCL的情况下,计算处理lena.png图片所用的时间,并对5次测试的数据取平均值。对比以上测试结果,如下表所示:
6 |# Y; O$ W" K, ?8 P' t
9 `: u" v9 M+ h! A3 K" J
. d& m4 n4 i' @5 ]! L% a+ ~& ^
! @/ R0 o, u3 J; J& s+ s1 |6 s* y9 D作用率=禁用OpenCL计算处理图像数据所用的时间/使能OpenCL计算处理图像数据所用的时间。
; m- a4 W' |0 x' q% O. M9 u6 r* X以下是官方的测试数据:4 p& L9 i/ b$ f9 }, z0 Z
0 O; n7 G$ s# g" D% Y

" Z. J4 ]* T- d0 T5 V3 F& ~- c; r$ D+ V
BGR2GRAY作用率=0.345
, H  u+ T$ ?) B5 Z+ }8 A: lCanny作用率=1.6907 R7 H  c1 F5 x2 U
从测试结果可以看出来,本次测试与官方测试结论是一致的:OpenCL对BRG2GRAY算法不但没有性能上的提升反而存在着负面的效果;而对Canny算法则有着非常明显的提升效果,与官方的作用率进行对比,本次测试得出的作用率要大于官方提供的作用率数据,这与待测试的图像文件有一定的关系。" o7 C2 y  p7 e3 V
官方提供的其他OpenCL内核的测试数据:3 q1 n3 U& v6 P' {& f3 A/ m6 w
链接:http://processors.wiki.ti.com/index.php/OpenCV, A0 x1 G* v- \7 T/ D* S8 {3 i
! i2 |% ?. B1 v2 X2 z, {

  j; Q/ G. @* m+ ]
; H, J# k/ s& o' z
3 W0 _1 H4 Z6 p* C. _( j5 [
: w. Q0 Y( M6 J' S
& A6 @; w. f, m* ?
$ p* z# t0 l/ b- b+ v
/ n7 @. O/ f/ e, s; m% g. Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

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

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

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

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