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.

Questions about C67x/C674x DSPLIB DSPF_sp_mat_mul_cplx()

Guru 15520 points

Hi,

I have question about C67x and C674x DSPLIB.

The question is about "DSPF_sp_mat_mul_cplx()".

In C674x DSPLIB(v3.4.0.0), " DSPF_sp_mat_mul_cplx(const float* x1, int r1, int c1, const float* x2, int c2, float *restrict y) "

assumptions is written as follow:

//////////////////////////////////////////

r1, c1, c2 are multiple of 2.

x1, x2 and y should be double-word aligned.

//////////////////////////////////////////

But in C67x DSPLIB "DSPF_sp_mat_mul_cplx(const float* x, int r1, int c1, const float* y, int c2, float* restrict r)

assumptions is written as follow:

/////////////////////////////////////////////////

Use values c1≧4, and r1, r2≧1

The x array should be padded with 6 words.

The x and y arrays should be double-word aligned.

/////////////////////////////////////////////////

Question1:

Is the specification of "DSPF_sp_mat_mul_cplx" different between C674x DSPLIB and C67x DSPLIB?

Question2:

In C67x DSPLIB DSP_sp_mat_mul_cplx assumption, it said "use values c1≧4, and r1, r2≧1".

But there are no "r2". Is this a typo? I guess it's not r2 but it should be "c2".

Question3:

In the following TI wiki page(C674x DSPLIB), there are description of DSPF_sp_mat_mul_cplx arguments(r1, c1, c2 etc..). http://processors.wiki.ti.com/index.php/C674x_DSPLIB#DSPF_sp_mat_mul_cplx_.28Complex_Matrix_Multiply.29

From this wiki page, argument c1, c2, r1 range of C674x DSPLIB DSPF_sp_mat_mul_cplx is same as C67x DSPLIB 

but it is different range written in the document in C674x DSPLIB file.

Which description is true?

Question4:

In C674x DSPLIB, there are "DSPF_sp_mat_mul_cplx" and "DSP_sp_mat_mul_cplx_opt".

In this two APIs, is there difference in the specification of the API arguments?

Is range of r1, c1, c2 different?

best regards,

g.f.

 

  • Hi,

    Thanks for your post.

    To address Question#1,

    I don't think, the specifications of "DSPF_sp_mat_mul_cplx" are different between C674x DSPLIB and C67x DSPLIB.

    Question #2,

    Yes, you are right, it should be a typo. Yes it is c2. As you aware, c1 denotes both the number of colums in matrix X as well the number of rows in matrix Y which should match the criteria that, the column dimension of matrix "X" must match the row dimension of matrix "Y". Hereby, column count of matrix X and row count of matrix Y should be greater than equal to 4 which is as special requirement in both c674x & c67x DSPLIB

    Question #3,

    The range should be same for both c674x & c67x DSPLIB which should be true as below:

    c1 >= 4

    r1, c2 >=1 (indicates in c67x dsplib) or must be greater than 0 (indicates in c674x dsplib). Either of statements in both c67x and c674x indicates the same meaning.

    I don't think, there should be different range of c1, c2, r1 between c67x and c674x DSPLIB

    Question #4,

    Even in both "DSPF_sp_mat_mul_cplx" and "DSP_sp_mat_mul_cplx_opt", i don't think, the range of c1,c2, r1 are different.

    Thanks & regards,

    Sivaraj K

    -------------------------------------------------------------------------------------------------------

    Please click the Verify Answer button on this post if it answers your question.

    -------------------------------------------------------------------------------------------------------