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.

Performance of C66x and C64x+

Guru 15520 points

Hi,

I have question about performance of C64x+ and C66x DSP.

I'm trying to get benchmark of C64x+ and C66x DSP using IMGLIB.

IMGLIB version is : c64plus-imglib_2_02_00_00 for C64x+ and imglib_c66x_3_2_0_1 for C66x.

I used IMG_Sobel_3x3_8() and the result was as follow:

[C6678EVM:C66x_0@1GHz]    IMG_sobel cycle = 132,996 Time stamp cycle

[C6455EVM:C64XP_0@1GHz] IMG_sobel cycle = 187,278 Time stamp cycle

The image data are located at DDR3(C6678EVM) and DDR2(C6455EVM) and

I'm not using EDMA so that CPU will get data directly from DDR memory.

So, it seem that benchmark result difference is only DDR bandwidth.

What I mean is that C6678's result is faster because DDR3 are used.

I guess the CPU performance is almost the same between C66x and C64x+.

Is this benchmark result appropriate?

I want to prove that C66x is much higher performance than C64x+ by using IMGLIB. Is there any method?

best regards,

g.f.

  • Hello,
    Please check whether below thread helps to improve IMGLIB performance.
    e2e.ti.com/.../308275
    Thank you
  • Hi,

    Thank you for the reply.

    Let me ask one more question.
    I build natural c code of IMG_Sobel_3x3_8_cn()which provided from the C64x+IMGLIB and C66xIMGLIB.
    When execute the code on C6455EVM and C6678EVM, the result of benchmark was almost the same between C6455 and C6678.
    So, just building the natural c code is not enough to get higher performance than C64x+, is it correct?

    best regards,
    g.f.
  • Hi g.f,
    I am not expert on this, you may be right. I will ask others to comment.
    As per IMGLIB relase page, you can achieve higher performance than equivalent code written in standard ANSI C language.
    http://www.ti.com/tool/sprc264

    You can also compare the "Test report" available in IMGLIB installation directories for C64x and C66x.
    PATH: ..\ti\imglib_c66x_x_x_x_x\docs\IMGLib_c66x_TestReport.html

    Thank you for your patience.
  • Hi Rajasekaran,

    Thank you for the support.
    I checked a few function result of the Test report C64x+&C66x).
    The result was same between C64x+ and C66x.
    So, it is great to have other comments. Thank you so much.

    best regards,
    g.f.
  • When comparing the performance of C64x+ and C66, you must consider the low-level arithmetic operations of the code being executed on both. Given the same c code, the compiler may generate roughly the same assembly for both cores (so the performance would be the same), or it can find additional optimization on the C66 using the additional instructions introduced in the C66. I suggest you refer to the instruction set and compiler guide to determine the additional instructions in the C66. Basically, the C66 has all of the instructions that the C64x+ has, in addition to several more, including floating point instructions. So, in general, the performance would be at least as good as the C64x+ in some cases, and much better in other cases. The most dramatic improvement would probably be if the code is using floating point math. Fixed point improvements can also be found due to the increased support for 16 bit SIMD instructions, as well as multiply SIMD instructions. If you look through the rest of the library, I imagine you will find it true that all the performance for C66 is equal to or better than C64x+.