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.

Highly optimezed assembler routine calculating 8x8 Determinant using TMS320C6713

Hello E2E Community,

I'm currently doing my master thesis in developing a DOA (Direction of arrival) based realtime system using Multuichannel-Crosscorrelation-Coefficiant. My key problem is to write a efficient algorithem to calculate a determiant of a 8x8 Matrix. I'm using the TMS320C67x DSP Library provided by TI to calculate the FFT's. Unfortunately there is no assembler routine to calculate a determinant.

Doese anyone of you specialist out there hava an advice or even a assembler routine to do that?

Thanks alot!

Mad

  • Mathias,

    May I assume you have already searched TI.com, the TI Wiki Pages, and the E2E forum for prior discussions on calculating a determinant? If not, that will be a good start.

    Write your determinate in C without any optimization, and debug it to be sure it calculates the answers you want. This will be your golden version for later comparisons.

    Turn on the compiler's optimization switches and use the optimization techniques that have been discussed on the forum, and in the Wiki (search for C6000 optimization).

    With proper use of the compiler and the various optimization techniques, you will achieve very good performance. Determine if that performance is adequate, and if it is, you are done.

    If you need better performance, move to a newer C674x or C66x DSP that can run faster and that has better capabilities for faster operation. The C6748 is at least 2x the performance of the C6713. The C6657 can be 20x or more faster than the C6713 depending on how you can take advantage of the multiple cores - even just 1 DSP core of the C6657 would be at least 10x faster than the C6713, and can be optimized to be 20x or more. And I am being conservative in my numbers, not including the improvements in external memory bandwidth, if needed.

    Regards,
    RandyP

  • Hi Mathias,

    Thanks for your post.

    Please find the TMS320C67x DSP Library Programmer’s Reference Guide (Refer Section 4.1.6 & 4.2.6 for matrix routines included in the DSP library package)

    http://www.ti.com/lit/spru657

    Please find the matrix routine projects (Matrix multiplication, transpose, complex matrix etc) in the below mentioned path:

    ~\Texas Instruments\dsplib_c674x_3_1_0_0\packages\ti\dsplib\src\DSPF_sp_mat_trans\c674

    ~\Texas Instruments\dsplib_c674x_3_1_0_0\packages\ti\dsplib\src\DSPF_sp_mat_mul\c674

    ~\Texas Instruments\dsplib_c674x_3_1_0_0\packages\ti\dsplib\src\DSPF_sp_mat_mul_cplx\c674

    Also, Please find the c6000 workshop material for TMS320C6000 Optimization as below:

    http://software-dl.ti.com/trainingTTO/trainingTTO_public_sw/op6000/op6000_v1.51/op6000_lab_guide_v1.51a.pdf

    Thanks & regards,

    Sivaraj K

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

     

     

  • Hi ,

    thank you very much for your quick reply. Where exactly can I find the matrix routine project? I searched the DSPLIB folder and ti.com but could not find it.

    Thanks & regards

    Mathias

  • Hi Mathias,

    Thanks for your post.

    You shall find the matrix routine example projects (.ccs) in the DSP library package as below:

    Matrix multiplication:

    ~\Texas Instruments\dsplib_c674x_3_1_0_0\packages\ti\dsplib\src\DSPF_sp_mat_mul\c674\DSPF_sp_mat_mul_674LE_LE_COFF\.ccsproject

    ~\Texas Instruments\dsplib_c674x_3_1_0_0\packages\ti\dsplib\src\DSPF_sp_mat_mul\c674\DSPF_sp_mat_mul_674LE_LE_ELF\.ccsproject

    Complex matrix multiplication:

    ~\Texas Instruments\dsplib_c674x_3_1_0_0\packages\ti\dsplib\src\DSPF_sp_mat_mul_cplx\c674\DSPF_sp_mat_mul_cplx_674LE_LE_COFF\.ccsproject

    ~\Texas Instruments\dsplib_c674x_3_1_0_0\packages\ti\dsplib\src\DSPF_sp_mat_mul_cplx\c674\DSPF_sp_mat_mul_cplx_674LE_LE_ELF\.ccsproject

    Matrix transpose:

    ~\Texas Instruments\dsplib_c674x_3_1_0_0\packages\ti\dsplib\src\DSPF_sp_mat_trans\c674\DSPF_sp_mat_trans_674LE_LE_COFF\.ccsproject

    ~\Texas Instruments\dsplib_c674x_3_1_0_0\packages\ti\dsplib\src\DSPF_sp_mat_trans\c674\DSPF_sp_mat_trans_674LE_LE_ELF\.ccsproject

    Thanks & regards,

    Sivaraj

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