主题中讨论的其他部件:FFTLIB
工具/软件:
你(们)好
我们将基于 RTOS SDK 视觉应用测试一些图像处理应用、在这些应用中、我们希望将 VXLIB 用于 c7x、FFTLIB 和 MMALIB。
我们的配置包括:
- J721E EVM 板
- SDK-RTOS-j721e-EVM-10_01_00_04
FFTLIB 和 MMALIB 文档说明实现了最佳性能:
- 输入和输出数据缓冲区应位于 L2 存储器中
- 假定缓冲区指针为 64 字节对齐
我在 FFTLIB 和 MMALIB 库的测试代码中看到:
- 所使用的存储器映射与视觉应用使用的存储器映射不同:
- 在 VISION 应用程序中:
/* C7x_1 的 L2 [大小 448.00KB ]*/
L2RAM_C7x_1 (RWIX):origin = 0x64800000、length = 0x00070000
/* C7x_1 的 MSMC [大小 7.78MB ]*/
MSMC_C7x_1 ( RWIX ): origin = 0x70020000、length = 0x007C8000 - 在 FFT LIB 测试中(和其他 c7x 库)
L2SRAM (RWX):org = 0x64800000、len = 0x080000 //(对于 J7)
MSMCSRAM (RWX):org = 0x70000100、len = 0x7fff00
- 在 VISION 应用程序中:
- 输入缓冲区在 L2SRAM 或 MSMCSRAM 存储器中分配(通过 TI_memalign)、这些存储器的尺寸大于视觉应用中定义的尺寸、并且与我们缓冲器的尺寸不兼容
因此、我们希望了解:
- 如果需要优化 Vision App 中定义的存储器映射以使用 FFTLIB 和 MMALIB
- 考虑到我们缓冲器的大小与 VISION 应用的 L2RAM_C7x_1 和 MSMC_C7x_1 大小不兼容、如何将输入和输出缓冲区分配给 VISION 应用中的 FFTLIB 和 MMAlib 运算符以获得出色性能。
在我们执行的第一个测试中、我们测量了以下性能:
- 使用输入缓冲器大小为 512x512 时、我们测得:
- FFTLIB_FFT_FFT_Ixx_CXX_oxX_exec、输入 int32 => 2、65msec
- 使用输入缓冲器大小为 512x512 时、我们测得:
- FFTLIB_FFT_FFT_Ixx_CXX_oxX_exec、输入 int32 => 7、4ms
- 具有输入 float32 6、4ms 的 FFTLib_fft1dBmatch_i32fc_c32fc_o32fc_kernel
这些是否已被认为是最佳表现、或是否有改进的余地?
请注意、
Andrea