找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

6

主题

8

帖子

67

积分

二级会员(20)

Rank: 2Rank: 2

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

EDA365欢迎您!

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

x
1  实验说明2 X' |& L2 S5 x2 h
本例程测试功能:读取指定的图像数据,然后对图像进行灰度转换和Canny算法处理,计算处理过程所耗的时间,并将处理后的图像保存到当前目录下。" e8 }2 s& ~$ q, R9 c$ K" K
本例程主要是测试OpenCL是否对这两种算法有优化效果,分别从禁用OpenCL和使能OpenCL两种情况来计算处理图像数据所用的时间,将测试的结果与官方提供的测试结果进行对比和验证。
4 u% {- m. O& H: _2 M* I例程源码路径:光盘“Demo/OpenCL/OpenCL_performance_test/src”' j( [9 o/ b- Y; s+ }8 h. A
可执行文件以及测试脚本路径:光盘“Demo/OpenCL/OpenCL_performance_test/bin”  J1 K/ Z" v  H
测试使用的图片路径:光盘“Demo/OpenCL/OpenCL_performance_test/data”: \8 N1 ?0 D. r- U0 z( O
测试平台:广州创龙TL5728-IDK开发板
+ _5 a, m9 Z& ^0 e! \开发板简介:
( V  O; \2 J  |9 l 基于TI AM5728浮点双DSPC66x+双ARMCortex-A15工业控制及高性能音视频处理器;' F* S% I9 F8 a) t' x
 强劲的视频编解码能力,支持1路1080P60或2路720P60或4路720P30视频硬件编解码,支持H.265视频软解码;4 M: [! d* A! X
 双核PRU-ICSS工业实时控制子系统,支持EtherCAT、EtherNet/IP、PROFIBUS等工业协议;; M! [! H' Y. g4 J
 外设接口丰富,GPMC、USB 2.0、UART、SPI、QSPI、I2C、DCAN等工业控制总线和接口,支持高速接口PCle Gen2、USB 3.0、SATA 2.0;  B& |  Y9 T5 L8 g
 应用于工业 PC&HMI、工业机器人、机器视觉、 医疗影像、电力自动化等领域。
+ e$ I! R- w7 u; e
& e- F; U+ {! l5 S  S: l
: E! F' d8 t2 L# L, R* V  d  D- k5 W( T0 Y2 L  ?3 c$ r
2  例程编译+ a/ {- a4 X% R- u& k) }0 y4 b  S
将光盘资料“Demo/OpenCL/OpenCL_performance_test/src”例程源码拷贝到Ubuntu任意目录,进入该源码目录执行以下命令对源码进行编译:% Z  }4 E1 o6 Y6 r/ a- ]
Host#        cd AM57xx/OpenCL_performance_test/src/
: F! a, N' h$ d, vHost#        make SDK_INSTALL_PATH=/home/tronlong/ti-processor-sdk-linux-am57xx-evm-03.01.00.06
' l: S( B/ i% A5 d) }, {3 ^% K6 P3 N9 Z. e' B" L- }
  ~$ N0 y0 L$ {6 U) ~

/ E( A' j  o2 a& w: M( |$ H编译完成之后会在当前目录下生成可执行文件canny,将其拷贝到开发板文件系统的“/home/root/”目录下。
! [) }( a# I# e5 f5 Z7 p6 i( }将光盘资料“Demo/OpenCL/OpenCL_performance_test”下的bin文件夹以及data文件夹拷贝到开发板文件系统的“/home/root/”目录下。bin文件夹下包含opencl_off.sh和opencl_on.sh测试脚本,data文件夹下是两张大小和格式不同的图片文件TL5728_1080p.jpg和lena.png。. b( d" A: a( I+ K8 z" K1 T
! ?, V% v) R, t" P* O

  y# w( g' E6 D* [. ?1 C
1 g8 Q  o4 X1 I0 ^( @7 T3  例程测试5 b3 v! X1 X3 ~7 f& z
以下分别从禁用OpenCL功能和使能OpenCL功能来进行对比测试,分别采用data文件夹下的图片TL5728_1080p.jpg和lena.png来测试。
9 t) ~& X/ v- x( y  F3.1        禁用OpenCL
) y, l* U) @, E' ^8 u执行以下命令进行测试,先禁止运行OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤5次,如下图所示:. P. C' ~: P+ U, n
Target#         source bin/opencl_off.sh8 x$ f0 X& k! f) C" X6 m3 b
Target#         sync; echo 3 >/proc/sys/vm/drop_caches
( |, o. n( H' [" h6 c( u0 C. TTarget#         ./canny data/TL5728_1080p.jpg3 [1 ^. w/ u6 Q4 U" T
( q4 M5 t' j& Z# S7 d: ?8 V

2 X4 r: d/ K8 K6 g4 _" J
# e/ i0 L! r' i! \' S取以上5次测试结果的平均值:
! Y& E/ P3 C/ x' W0 {! s. v        BGR2GRAY tdiff=55.01ms' j+ J5 p4 O. r6 F6 _
        Canny tdiff=95.50ms
# Z3 m, m/ s: q& ^3 L1 ?/ E3.2        使能OpenCL
7 A, J; |3 P) {执行以下命令进行测试,先使能OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤6次,如下图所示:
  M4 R; j7 [" C9 {& k- s4 iTarget#         source bin/opencl_on.sh
8 ~. |$ B3 H; p& jTarget#         sync; echo 3 >/proc/sys/vm/drop_caches' ]8 X' x5 D5 M
Target#         ./canny data/TL5728_1080p.jpg' d. |) w! q" z0 K; Y
0 y* j* y/ k4 ?
1 x# a+ z% y3 C
! g: e# G/ E- [& W0 e
如上一共测试了6次,每一次测试之前记得先将系统内核缓存清理干净,否则测试结果有误。因为第一次运行时,内核在AM57xx上编译,OpenCL使能时会有额外的延迟,延迟时间大约为几十秒,所以第一次测试结果不作为参考。官方解释如下:9 E9 A) [; h) G: S
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.* Y3 w0 U+ L# ^0 S2 o& t
由以上6次的测试结果,取最后5次测试结果的平均值:+ W3 y2 L5 X! Z4 `1 R! F4 B
        BGR2GRAY tdiff=185.38ms
* Y$ m6 t  K; p4 g6 \! Q        Canny tdiff=17.71ms" O" A+ m+ d! @( u1 U4 W$ G
3.3        测试结果对比
2 ^. t$ X; ?# U- f  N& o+ ~! K( w同理,按照如上操作步骤在分别禁用OpenCL和使能OpenCL的情况下,计算处理lena.png图片所用的时间,并对5次测试的数据取平均值。对比以上测试结果,如下表所示:! [# V3 U4 a: c

0 A! C( o0 X0 v% h$ ~
" ]# a2 s) ?# Q, M: O; V. O( K" ^9 F
* {  |6 w5 R; C( U& R6 d2 ]作用率=禁用OpenCL计算处理图像数据所用的时间/使能OpenCL计算处理图像数据所用的时间。
% `" o% S6 J4 Z5 E以下是官方的测试数据:
7 k  i7 X) x6 Z1 b. s+ W
. P2 b2 C# O! N0 w( C7 x' }; w
. ~& h9 |- z7 @$ r7 r* [. c" j% e" N& R8 J. A! c- k& F
BGR2GRAY作用率=0.345* e7 v; j1 `! U' Y9 p1 L
Canny作用率=1.6904 p! t. o9 j! t2 j1 X; A7 ?
从测试结果可以看出来,本次测试与官方测试结论是一致的:OpenCL对BRG2GRAY算法不但没有性能上的提升反而存在着负面的效果;而对Canny算法则有着非常明显的提升效果,与官方的作用率进行对比,本次测试得出的作用率要大于官方提供的作用率数据,这与待测试的图像文件有一定的关系。/ |1 @! k% K* X
官方提供的其他OpenCL内核的测试数据:1 Y+ ^9 E( P! P5 {7 \
链接:http://processors.wiki.ti.com/index.php/OpenCV" _! s% w1 @  @1 h; _3 S* h

! j- O+ j; L4 q1 p0 U1 _9 b
9 P. r0 V1 p$ \5 l% T6 Z3 n6 l+ j: A5 {6 B- f/ a9 ^- x

; \$ |1 J4 x5 d) S9 E- u, v; ^; y* |7 K, P! {' d' E' H
( J4 p( t/ @' L3 U4 k/ r
# M7 f3 P% i$ Y% z8 j. _& @+ M
" `, q7 G* p3 j7 ^/ n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-9-8 12:29 , Processed in 0.058004 second(s), 36 queries , Gzip On.

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

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

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