hi,
i measured execution time of complex matrix multiplication using TSC.
C6678 run slower than i expect.
mesurement is right?
===== environment: EVM6678LE, CCS 5.2.1, C6000 complier 7.4, DSPLIB 3.1.0
===== codes:
#define LOOP_COUNT 10
#define CPU_FREQ 1e9 /* CPU freq = 1 GHz */
#define MSEC 1e3 /* 1 sec = 1000 msec */
#define antenna_length (12)
#define sample_length (1024)
/* uca_output dimension = antenna_length x sample_length */
float uca_output[2 * antenna_length * sample_length];
/* uca_output dimension = sample_length x antenna_length */
float uca_output_trans[2 * antenna_length * sample_length];
/* uca_hermitian dimension = antenna_length x antenna_length */
float uca_hermitian[2 * antenna_length * antenna_length];
TSCL = 0;
t_start = TSCL;
for (loop = 0; loop < LOOP_COUNT; loop++)
{
DSPF_sp_mat_mul_cplx(uca_output, antenna_length, sample_length, uca_output_trans, antenna_length, uca_hermitian);
}
t_stop = TSCL;
printf("[complex multiply] loop = %d, row = %d, column = %d, execution time = %f msec\n", \
LOOP_COUNT, antenna_length, sample_length, \
1 / CPU_FREQ * (t_stop - t_start) / LOOP_COUNT * MSEC);
===== results:
[C66xx_0] [complex multiply] loop = 10, row = 12, column = 1024, execution time = 0.368105 msec
===================================================================================