This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VM:C7x MMA 8TOPS 实现

Guru**** 2013480 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1136713/tda4vm-c7x-mma-8tops-implement

器件型号:TDA4VM
您好,专家
    最近我使用 c7x MMA 执行一些计算、SDK 版本为8.01、毫米波似乎无法达到8TOPS 的计算。
    下面是我用于测试计算的示例:
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void testMatrixMultiply(tivxRadarFft1DTransParams *prms)
{
int i, j;
MMALIB_kernelHandle handle = malloc(MMA_MULTIPLY_HANDLE_SIZE);
matrixMultiplyInit(&handle, 1, 32, 160, 0, MMALIB_INT32);
int32_t *matA = prms->pL2_FFTData;
int32_t *matB = matA+32;
int32_t *matC = matB+32*160;
MMALIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_exec_checkParams(handle, matA, matB, matC);
uint64_t time1 = tivxPlatformGetTimeInUsecs();
for(i=0; i<2000; i++)
{
matrixMultiExec(&handle, matA, matB, matC);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 1.我使用矩阵乘法内核计算[1*160]=[1*32]*[32 * 160]使用循环2000次时,键入的 int32_t 数据都在 L2中,此计算大约需要990us;
 由于 MMA 可以在 一个时钟时间内执行数据类型为 Int32_t 的[1*16]=[1*16]*[16 * 16]的计算,因此它应该在频率为1GHz 时消耗2*2*10*2000/10^9=80us。
    这是10倍以上的差异。
 
    原因是什么? 如何使用 MMA 并实现8 TOPS 计算?
此致
TAO