tag 标签: AM5728

相关帖子
相关博文
  • 热度 24
    2018-7-3 16:34
    1293 次阅读|
    0 个评论
    如何基于AM57x测试OpenCL的加速性能?
    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# cd AM57xx/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# source bin/opencl_off.sh Target# /proc/sys/vm/drop_caches Target# ./canny data/TL5728_1080p.jpg 取以上5次测试结果的平均值:  BGR2GRAY tdiff=55.01ms  Canny tdiff=95.50ms 3.2 使能OpenCL 执行以下命令进行测试,先使能OpenCL功能,然后清理缓存再进行测试,重复清理缓存和测试的步骤6次,如下图所示: Target# source bin/opencl_on.sh Target# /proc/sys/vm/drop_caches Target# ./canny data/TL5728_1080p.jpg 如上一共测试了6次,每一次测试之前记得先将系统内核缓存清理干净,否则测试结果有误。因为第一次运行时,内核在AM57xx上编译,OpenCL使能时会有额外的延迟,延迟时间大约为几十秒,所以第一次测试结果不作为参考。官方解释如下: 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. 由以上6次的测试结果,取最后5次测试结果的平均值:  BGR2GRAY tdiff=185.38ms  Canny tdiff=17.71ms 3.3 测试结果对比 同理,按照如上操作步骤在分别禁用OpenCL和使能OpenCL的情况下,计算处理lena.png图片所用的时间,并对5次测试的数据取平均值。对比以上测试结果,如下表所示: 作用率=禁用OpenCL计算处理图像数据所用的时间/使能OpenCL计算处理图像数据所用的时间。 以下是官方的测试数据: BGR2GRAY作用率=0.345 Canny作用率=1.690 从测试结果可以看出来,本次测试与官方测试结论是一致的:OpenCL对BRG2GRAY算法不但没有性能上的提升反而存在着负面的效果;而对Canny算法则有着非常明显的提升效果,与官方的作用率进行对比,本次测试得出的作用率要大于官方提供的作用率数据,这与待测试的图像文件有一定的关系。 官方提供的其他OpenCL内核的测试数据: 链接:http:// processors.wiki.ti.com/index.php/OpenCV
  • 热度 2
    2018-4-12 15:37
    2059 次阅读|
    0 个评论
    本次测试使用广州创龙TL5728-IDK工业控制开发板进行PRU网口测试。 开发板特点: Ø 基于TI AM5728浮点双DSP C66x +双ARM Cortex-A15工业控制及高性能音视频处理器; Ø 双核PRU-ICSS工业实时控制子系统,支持EtherCAT、EtherNet/IP、PROFIBUS等工业协议; Ø 支持2路千兆网,用于网络调试、数据传输、工业以太网主站; Ø 支持4路PRU百兆网,用于网络调试、数据传输、工业以太网从站; 下面我们开始进行PRU网口测试: 因为"PRU1"的两个网口引脚和千兆网的引脚复用,所以若要使用4个PRU网口(如上图资源图解),需要在U-Boot命令行中设置环境变量,让U-Boot加载不同的dtb文件。 在测试前,先插好PRU四个网口的网线,启动系统,执行以下命令设置环境变量: Uboot# setenv idk_pru1_mii yes Uboot# saveenv 注:当"idk_pru1_mii"不等于yes时,加载的dtb文件是"am572x-idk.dtb",当"idk_pru1_mii"等于yes时,加载的dtb文件是"am572x-idk-pru1-mii.dtb"。 如果需要使用千兆网,需要在U-Boot命令行执行以下命令: Uboot# setenv idk_pru1_mii no Uboot# saveenv 网卡对应关系: "pru2-mii1"测试: Target# ifconfig eth0 down Target# ifconfig eth2 down Target# ifconfig eth3 down Target# ifconfig eth1 up //根据网卡对应关系来设置对应网口为开的状态。 Target# ifconfig Target# ping http://www.baidu.com 其他三个网口测试方法同理。只需要将另外三个网口关掉,进行ping操作就行。如:需要测试"eth0",将"eth1/eth2/eth3"关掉。 注:如果"ethX"之前已经关闭,在执行"ifconfig ethX up"(X为0,1,2,3)时,如果没有"link becomes ready"打印,请按以下操作重新关掉网口,再打开网口,直至打印"link becomes ready"。 Target# ifconfig ethX down Target# ifconfig ethX up 本例以"eth0"为例: