找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

6

主题

8

帖子

67

积分

二级会员(20)

Rank: 2Rank: 2

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

EDA365欢迎您!

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

x
1  实验说明
4 @* ~4 l% E( s; p" F0 f$ T* F本例程测试功能:读取指定的图像数据,然后对图像进行灰度转换和Canny算法处理,计算处理过程所耗的时间,并将处理后的图像保存到当前目录下。
5 f  o# I! [+ v0 n2 l9 p本例程主要是测试OpenCL是否对这两种算法有优化效果,分别从禁用OpenCL和使能OpenCL两种情况来计算处理图像数据所用的时间,将测试的结果与官方提供的测试结果进行对比和验证。& J3 c! |5 x' w4 n
例程源码路径:光盘“Demo/OpenCL/OpenCL_performance_test/src”
0 F. U9 B$ M4 Z可执行文件以及测试脚本路径:光盘“Demo/OpenCL/OpenCL_performance_test/bin”
. l% |. k, d6 J) a4 e测试使用的图片路径:光盘“Demo/OpenCL/OpenCL_performance_test/data”
4 x; l! P* K2 a/ \3 |测试平台:广州创龙TL5728-IDK开发板
& L. y, i; D7 r  L  W. \# u开发板简介:
" {6 P7 Y) d" G6 o1 k! v 基于TI AM5728浮点双DSPC66x+双ARMCortex-A15工业控制及高性能音视频处理器;
/ I# \4 J; l0 z- V, j 强劲的视频编解码能力,支持1路1080P60或2路720P60或4路720P30视频硬件编解码,支持H.265视频软解码;
, A3 m" e3 U, W9 ?- Z$ a 双核PRU-ICSS工业实时控制子系统,支持EtherCAT、EtherNet/IP、PROFIBUS等工业协议;
# c; M5 [: `" a. K8 X 外设接口丰富,GPMC、USB 2.0、UART、SPI、QSPI、I2C、DCAN等工业控制总线和接口,支持高速接口PCle Gen2、USB 3.0、SATA 2.0;
! L7 X; T+ u) R# P8 v6 @6 w# { 应用于工业 PC&HMI、工业机器人、机器视觉、 医疗影像、电力自动化等领域。  v8 g2 t8 ?0 n$ T$ A# ?

4 v7 r$ `. I/ r   _  S2 e3 }3 n; X6 d+ P
  f" T$ U/ s  E5 P; |+ y2 n: H0 ~* P" c1 w
2  例程编译  C- {& H6 ?- S' y7 _
将光盘资料“Demo/OpenCL/OpenCL_performance_test/src”例程源码拷贝到Ubuntu任意目录,进入该源码目录执行以下命令对源码进行编译:
) X9 N3 |: l2 E3 Q7 s" IHost#        cd AM57xx/OpenCL_performance_test/src/
' I" q7 @9 [- k# L1 m  q3 bHost#        make SDK_INSTALL_PATH=/home/tronlong/ti-processor-sdk-linux-am57xx-evm-03.01.00.06! i6 P$ z/ U* d3 N" q
' f! s& E) C0 U! }+ F  [; }

3 m6 e, V5 ^5 M2 |, v6 @; }
( h! K7 e% I4 J2 G* J1 V4 [1 S! S编译完成之后会在当前目录下生成可执行文件canny,将其拷贝到开发板文件系统的“/home/root/”目录下。3 D# z; Y) E. X7 M2 A* a
将光盘资料“Demo/OpenCL/OpenCL_performance_test”下的bin文件夹以及data文件夹拷贝到开发板文件系统的“/home/root/”目录下。bin文件夹下包含opencl_off.sh和opencl_on.sh测试脚本,data文件夹下是两张大小和格式不同的图片文件TL5728_1080p.jpg和lena.png。/ g7 T* f& M! i7 n: c

/ f+ j# p9 `) D8 V; H; q9 g
4 {, Z0 v! K, J! u3 S4 Y3 t  G6 k, i/ |* j  q% v* M
3  例程测试& Q. V1 O( a: r, i1 r% r
以下分别从禁用OpenCL功能和使能OpenCL功能来进行对比测试,分别采用data文件夹下的图片TL5728_1080p.jpg和lena.png来测试。
0 b1 E" l1 l6 E3 g- l3.1        禁用OpenCL, j. _5 _' V  x& X9 F1 d+ A; V
执行以下命令进行测试,先禁止运行OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤5次,如下图所示:  `5 O' x+ R1 p6 z# J6 y  ]8 p
Target#         source bin/opencl_off.sh. U& C( x  q" b' B9 [
Target#         sync; echo 3 >/proc/sys/vm/drop_caches8 U2 [8 h* k3 M0 o( A4 W
Target#         ./canny data/TL5728_1080p.jpg7 n3 T& g+ M6 C5 o4 i. g
" V3 N% t* \' A% P* q8 K. w
( u; u; O% G0 L# u# i' J% v( p8 @& ?
& n. P) z6 e4 O
取以上5次测试结果的平均值:9 t  Z& o2 d2 k7 _# s% B
        BGR2GRAY tdiff=55.01ms
- B* |& b) R, K- @1 z        Canny tdiff=95.50ms% {* T3 D# t- P7 z% @  s
3.2        使能OpenCL3 w% _4 r! B/ K0 j; j: |* {
执行以下命令进行测试,先使能OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤6次,如下图所示:
. t6 o) d6 Z2 w  y* VTarget#         source bin/opencl_on.sh9 z- O$ g% Y7 U& q0 d
Target#         sync; echo 3 >/proc/sys/vm/drop_caches
) C$ ]- Y( L9 x( v7 `/ VTarget#         ./canny data/TL5728_1080p.jpg% q  Q; y! V/ k% m& {2 s# B' c

& F$ I5 l# k. n% g/ ^" f5 H
% M& v' M4 c7 `
" V5 p5 s/ h& J+ [9 R2 @$ y如上一共测试了6次,每一次测试之前记得先将系统内核缓存清理干净,否则测试结果有误。因为第一次运行时,内核在AM57xx上编译,OpenCL使能时会有额外的延迟,延迟时间大约为几十秒,所以第一次测试结果不作为参考。官方解释如下:
5 `4 r. ?2 {, C6 j* wPlease 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.
9 Z( H- d* d& y  Z; S8 U由以上6次的测试结果,取最后5次测试结果的平均值:
$ `( S) k2 |! Z. \        BGR2GRAY tdiff=185.38ms; u# T# v3 ~; Q8 e& Q
        Canny tdiff=17.71ms
- c) E/ \5 [' k) n# F9 [/ P1 ^( C3.3        测试结果对比
3 y$ K+ N) j5 D同理,按照如上操作步骤在分别禁用OpenCL和使能OpenCL的情况下,计算处理lena.png图片所用的时间,并对5次测试的数据取平均值。对比以上测试结果,如下表所示:8 @1 Q( |4 z  o( O3 j' X
$ Y9 x% _- \4 {" \

, X5 i4 }6 |3 [
* K! b% K: K: k- F作用率=禁用OpenCL计算处理图像数据所用的时间/使能OpenCL计算处理图像数据所用的时间。7 P: c( m/ l/ p4 }7 [
以下是官方的测试数据:: L6 i$ `4 `5 m8 V% D/ L
+ h0 i6 L$ b6 ^

% m. w# M# r; {" d& _$ B, w* O" A3 _- K9 g' D+ m9 Y4 R" k
BGR2GRAY作用率=0.345; h! w9 u9 H3 y* U
Canny作用率=1.690
' l, \, H# j2 f6 n' x4 S4 w从测试结果可以看出来,本次测试与官方测试结论是一致的:OpenCL对BRG2GRAY算法不但没有性能上的提升反而存在着负面的效果;而对Canny算法则有着非常明显的提升效果,与官方的作用率进行对比,本次测试得出的作用率要大于官方提供的作用率数据,这与待测试的图像文件有一定的关系。
, k0 k% C3 l, m! v% v& k* d官方提供的其他OpenCL内核的测试数据:  j1 K! {* x9 U( j
链接:http://processors.wiki.ti.com/index.php/OpenCV2 k+ j% b3 q- b  A' K
5 x9 w4 q* o3 @
4 c+ P, {9 F- Q& k
) a! z) [2 S' j* a! i

" U* a$ R4 @/ X0 X" O9 U1 b8 v: _+ G' @% b* C1 ]
7 O! J( ?8 v+ y( \. e. j, H1 r1 E

9 n& f( o) y, t" @/ Y0 n4 ^8 `7 H8 S2 |9 G. ~; ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-5-22 20:49 , Processed in 0.059489 second(s), 35 queries , Gzip On.

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

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

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