1 實驗說明
本例程測試功能:讀取指定的圖像數(shù)據(jù),然后對圖像進行灰度轉(zhuǎn)換和Canny算法處理,計算處理過程所耗的時間,并將處理后的圖像保存到當(dāng)前目錄下。
本例程主要是測試OpenCL是否對這兩種算法有優(yōu)化效果,分別從禁用OpenCL和使能OpenCL兩種情況來計算處理圖像數(shù)據(jù)所用的時間,將測試的結(jié)果與官方提供的測試結(jié)果進行對比和驗證。
例程源碼路徑:光盤“Demo/OpenCL/OpenCL_performance_test/src”
可執(zhí)行文件以及測試腳本路徑:光盤“Demo/OpenCL/OpenCL_performance_test/bin”
測試使用的圖片路徑:光盤“Demo/OpenCL/OpenCL_performance_test/data”
測試平臺:廣州創(chuàng)龍TL5728-IDK開發(fā)板
開發(fā)板簡介:
? 基于TI AM5728浮點雙DSPC66x+雙ARMCortex-A15工業(yè)控制及高性能音視頻處理器;
? 強勁的視頻編解碼能力,支持1路1080P60或2路720P60或4路720P30視頻硬件編解碼,支持H.265視頻軟解碼;
? 雙核PRU-ICSS工業(yè)實時控制子系統(tǒng),支持EtherCAT、EtherNet/IP、PROFIBUS等工業(yè)協(xié)議;
? 外設(shè)接口豐富,GPMC、USB 2.0、UART、SPI、QSPI、I2C、DCAN等工業(yè)控制總線和接口,支持高速接口PCle Gen2、USB 3.0、SATA 2.0;
? 應(yīng)用于工業(yè) PC&HMI、工業(yè)機器人、機器視覺、 醫(yī)療影像、電力自動化等領(lǐng)域。
2 例程編譯
將光盤資料“Demo/OpenCL/OpenCL_performance_test/src”例程源碼拷貝到Ubuntu任意目錄,進入該源碼目錄執(zhí)行以下命令對源碼進行編譯:
Host# cdAM57xx/OpenCL_performance_test/src/
Host# make SDK_INSTALL_PATH=/home/tronlong/ti-processor-sdk-linux-am57xx-evm-03.01.00.06
編譯完成之后會在當(dāng)前目錄下生成可執(zhí)行文件canny,將其拷貝到開發(fā)板文件系統(tǒng)的“/home/root/”目錄下。
將光盤資料“Demo/OpenCL/OpenCL_performance_test”下的bin文件夾以及data文件夾拷貝到開發(fā)板文件系統(tǒng)的“/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
執(zhí)行以下命令進行測試,先禁止運行OpenCL功能,然后清理緩存再進行測試,重復(fù)清理緩存和測試的步驟5次,如下圖所示:
Target# sourcebin/opencl_off.sh
Target# sync;echo 3 >/proc/sys/vm/drop_caches
Target# ./cannydata/TL5728_1080p.jpg
取以上5次測試結(jié)果的平均值:
? BGR2GRAY tdiff=55.01ms
? Canny tdiff=95.50ms