找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

6

主题

8

帖子

67

积分

二级会员(20)

Rank: 2Rank: 2

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

EDA365欢迎您!

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

x
1  实验说明  H9 j& W2 m6 l; {: M
本例程测试功能:读取指定的图像数据,然后对图像进行灰度转换和Canny算法处理,计算处理过程所耗的时间,并将处理后的图像保存到当前目录下。
9 p( \+ ^2 V3 Q% D8 [4 |本例程主要是测试OpenCL是否对这两种算法有优化效果,分别从禁用OpenCL和使能OpenCL两种情况来计算处理图像数据所用的时间,将测试的结果与官方提供的测试结果进行对比和验证。5 U2 \4 `( I; `9 Y
例程源码路径:光盘“Demo/OpenCL/OpenCL_performance_test/src”
5 F5 L1 y* B2 T: q3 Q6 {7 I. e可执行文件以及测试脚本路径:光盘“Demo/OpenCL/OpenCL_performance_test/bin”8 {: T6 Y5 n3 P, J5 X9 H
测试使用的图片路径:光盘“Demo/OpenCL/OpenCL_performance_test/data”2 W5 e& s9 t& M& ~2 N
测试平台:广州创龙TL5728-IDK开发板( g8 `# i2 Y" L3 f- p3 p: U
开发板简介:
* }  n# W5 p7 S! b5 {; S7 S$ M 基于TI AM5728浮点双DSPC66x+双ARMCortex-A15工业控制及高性能音视频处理器;) X+ A: `" ]3 c8 @3 x. o& F! M* J
 强劲的视频编解码能力,支持1路1080P60或2路720P60或4路720P30视频硬件编解码,支持H.265视频软解码;
; D* I  y& K) t, u" p# N 双核PRU-ICSS工业实时控制子系统,支持EtherCAT、EtherNet/IP、PROFIBUS等工业协议;  z9 X  D9 z' U8 M4 L1 ]
 外设接口丰富,GPMC、USB 2.0、UART、SPI、QSPI、I2C、DCAN等工业控制总线和接口,支持高速接口PCle Gen2、USB 3.0、SATA 2.0;
! t( F, `: q$ \" M" f 应用于工业 PC&HMI、工业机器人、机器视觉、 医疗影像、电力自动化等领域。
  m4 Y8 b4 f( `: n7 M
+ j% ^, a- G; {. {0 n' E) R! b& |
7 f. D' j( e% o; Z9 N6 S* T4 a  M; w" s/ y
2  例程编译
) b+ r' [: k) C1 S将光盘资料“Demo/OpenCL/OpenCL_performance_test/src”例程源码拷贝到Ubuntu任意目录,进入该源码目录执行以下命令对源码进行编译:/ M' ], v- ^- {$ O9 l
Host#        cd AM57xx/OpenCL_performance_test/src/; h& a1 b) G: e+ I% X; A
Host#        make SDK_INSTALL_PATH=/home/tronlong/ti-processor-sdk-linux-am57xx-evm-03.01.00.06
* T' n( L2 o' P6 x. Q% B% Q0 n
; ]' m# z% W' s
: m% v  l7 ]+ M& a/ F8 M  `' A) f( o. Z3 z6 y! I
编译完成之后会在当前目录下生成可执行文件canny,将其拷贝到开发板文件系统的“/home/root/”目录下。
- a% V6 R7 ]9 g* d7 `: ~将光盘资料“Demo/OpenCL/OpenCL_performance_test”下的bin文件夹以及data文件夹拷贝到开发板文件系统的“/home/root/”目录下。bin文件夹下包含opencl_off.sh和opencl_on.sh测试脚本,data文件夹下是两张大小和格式不同的图片文件TL5728_1080p.jpg和lena.png。+ T9 E2 P8 H$ z2 A1 w! a- o0 @

1 }/ u8 _/ m% r; L& e: x7 ~" v- Q
8 k. r+ A  j# p5 H' H
  e# i( g" U1 c3  例程测试$ s4 G- ]9 M& }" E# m* L
以下分别从禁用OpenCL功能和使能OpenCL功能来进行对比测试,分别采用data文件夹下的图片TL5728_1080p.jpg和lena.png来测试。. @' w5 B) z' f$ `" ~1 m) q
3.1        禁用OpenCL1 n7 A$ m' l: s1 W9 u7 H" N& F
执行以下命令进行测试,先禁止运行OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤5次,如下图所示:" ~. s" D7 Y" ?0 W
Target#         source bin/opencl_off.sh
5 ~. ]6 F9 U4 W2 ~" N5 v# [4 }$ STarget#         sync; echo 3 >/proc/sys/vm/drop_caches' e# d9 D6 G% ]1 \6 s
Target#         ./canny data/TL5728_1080p.jpg
# t0 d& D3 |' ]# v% y. s5 ^* i: h/ R( g1 b
) Z, ^4 _$ \# w6 g. D) b& Y

0 J) o7 Y/ k% X. K/ K* U# y取以上5次测试结果的平均值:
6 b& N, w8 s# P) E7 {        BGR2GRAY tdiff=55.01ms( `& S, s$ O; m
        Canny tdiff=95.50ms! ]: ], \; F+ c& D7 Y/ ?3 G
3.2        使能OpenCL
* I; N2 }: c$ }执行以下命令进行测试,先使能OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤6次,如下图所示:5 @4 A$ ]5 C! m: n  e
Target#         source bin/opencl_on.sh
2 y  ~) v' k- d6 l) u* rTarget#         sync; echo 3 >/proc/sys/vm/drop_caches% E' P3 u1 i; \0 S
Target#         ./canny data/TL5728_1080p.jpg
6 C! A2 Y) P5 ?9 V) c2 @+ s% G# C4 t  p6 Q* ^( V% ?5 g* E

, G% r2 X+ e4 c5 H
% e- h$ z5 Q! ?; W如上一共测试了6次,每一次测试之前记得先将系统内核缓存清理干净,否则测试结果有误。因为第一次运行时,内核在AM57xx上编译,OpenCL使能时会有额外的延迟,延迟时间大约为几十秒,所以第一次测试结果不作为参考。官方解释如下:
& l) q! J! G- ^; L4 V. 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.
; I0 u1 z. N. z4 L/ g# B5 W由以上6次的测试结果,取最后5次测试结果的平均值:
# u  S0 o& \' O8 G7 j3 x2 {        BGR2GRAY tdiff=185.38ms
; Q* E* f" S: c9 [3 |        Canny tdiff=17.71ms) ^  \. Q- O1 @9 I0 c
3.3        测试结果对比
8 {8 k! }1 P# s3 @- r同理,按照如上操作步骤在分别禁用OpenCL和使能OpenCL的情况下,计算处理lena.png图片所用的时间,并对5次测试的数据取平均值。对比以上测试结果,如下表所示:
. T( q2 E6 U3 t
8 j) m  Q, Y5 j4 B2 M% c( ^/ \ ( {7 a6 Z  O3 A. h3 p: O
2 S# c8 u1 H! `9 |. L# i
作用率=禁用OpenCL计算处理图像数据所用的时间/使能OpenCL计算处理图像数据所用的时间。! v( n; ~0 _4 z+ |3 U  K! x
以下是官方的测试数据:
; Z' Q' V( N# W0 R" r. a. k. N: j. `, T7 E" [% i
0 E2 t% _2 Z/ m+ m$ P8 K, R
- @6 ?& O4 C+ J
BGR2GRAY作用率=0.345
( H+ V; Y  |& T. ^' OCanny作用率=1.690% _1 u$ b+ Y# `9 b* [0 R
从测试结果可以看出来,本次测试与官方测试结论是一致的:OpenCL对BRG2GRAY算法不但没有性能上的提升反而存在着负面的效果;而对Canny算法则有着非常明显的提升效果,与官方的作用率进行对比,本次测试得出的作用率要大于官方提供的作用率数据,这与待测试的图像文件有一定的关系。! i- Y) k. A0 w
官方提供的其他OpenCL内核的测试数据:
1 O5 p: S- y, B8 s  j" K4 d& s链接:http://processors.wiki.ti.com/index.php/OpenCV( V+ U# r- T/ q; b
$ k# G& N  b, ~' K  a1 _
3 H$ E9 J" s7 Q8 U; t: x
+ J/ O; S6 w9 L' O! m
3 T5 Y3 f+ f0 W' C

3 c$ E8 d$ G  d1 Y
+ V- k/ w6 R+ S6 A6 y7 K
% m5 }1 C/ }5 E9 x) O
  j8 Q/ z( N% |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-5-23 06:37 , Processed in 0.064577 second(s), 35 queries , Gzip On.

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

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

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