测试OpenCL是否对灰度转换和Canny算法处理有优化效果?
2018-08-21
1 实验说明
本例程测试功能:读取指定的图像数据,然后对图像进行灰度转换和Canny算法处理,计算处理过程所耗的时间,并将处理后的图像保存到当前目录下。
本例程主要是测试OpenCL是否对这两种算法有优化效果,分别从禁用OpenCL和使能OpenCL两种情况来计算处理图像数据所用的时间,将测试的结果与官方提供的测试结果进行对比和验证。
例程源码路径:光盘“Demo/OpenCL/OpenCL_performance_test/src”
可执行文件以及测试脚本路径:光盘“Demo/OpenCL/OpenCL_performance_test/bin”
测试使用的图片路径:光盘“Demo/OpenCL/OpenCL_performance_test/data”
测试平台:广州创龙TL5728-IDK开发板
开发板简介:
? 基于TI AM5728浮点双DSPC66x+双ARMCortex-A15工业控制及高性能音视频处理器;
? 强劲的视频编解码能力,支持1路1080P60或2路720P60或4路720P30视频硬件编解码,支持H.265视频软解码;
? 双核PRU-ICSS工业实时控制子系统,支持EtherCAT、EtherNet/IP、PROFIBUS等工业协议;
? 外设接口丰富,GPMC、USB 2.0、UART、SPI、QSPI、I2C、DCAN等工业控制总线和接口,支持高速接口PCle Gen2、USB 3.0、SATA 2.0;
? 应用于工业 PC&HMI、工业机器人、机器视觉、 医疗影像、电力自动化等领域。
2 例程编译
将光盘资料“Demo/OpenCL/OpenCL_performance_test/src”例程源码拷贝到Ubuntu任意目录,进入该源码目录执行以下命令对源码进行编译:
Host# cdAM57xx/OpenCL_performance_test/src/
Host# make SDK_INSTALL_PATH=/home/tronlong/ti-processor-sdk-linux-am57xx-evm-03.01.00.06
编译完成之后会在当前目录下生成可执行文件canny,将其拷贝到开发板文件系统的“/home/root/”目录下。
将光盘资料“Demo/OpenCL/OpenCL_performance_test”下的bin文件夹以及data文件夹拷贝到开发板文件系统的“/home/root/”目录下。bin文件夹下包含opencl_off.sh和opencl_on.sh测试脚本,data文件夹下是两张大小和格式不同的图片文件TL5728_1080p.jpg和lena.png。
3 例程测试
以下分别从禁用OpenCL功能和使能OpenCL功能来进行对比测试,分别采用data文件夹下的图片TL5728_1080p.jpg和lena.png来测试。
3.1 禁用OpenCL
执行以下命令进行测试,先禁止运行OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤5次,如下图所示:
Target# sourcebin/opencl_off.sh
Target# sync;echo 3 >/proc/sys/vm/drop_caches
Target# ./cannydata/TL5728_1080p.jpg
取以上5次测试结果的平均值:
? BGR2GRAY tdiff=55.01ms
? Canny tdiff=95.50ms