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.

C6678 OpenMP Performance

Hello all,

Recently we used OpenMP  on C6678EVM to do some work and got some questions about the performance compared with doing the same thing without OpenMP.

We mainly did two tests. For both tests, we ran the program with OpenMP on Core_0 and let OpenMP "control" Core_1 to Core_6 (not including Core_7). Then we ran the comparison program on Core_7 (without OpenMP). Here are the results:

1. Do Sobel operation (using IMGLIB C66x 3.1.1.0 provided by Ti) on an image. The original file is 2048*2048 YUV422 image. We did Sobel operation after we transformed the image into gray-scale one.

Core_7 (truly single core): 8.5 ms

Core_0 (single core but with OpenMP initialized): 10.5 ms

7 cores (Core_0 ~ Core_6): 2.6 ms

2. Use JPEG encoder (using C66x_jpegenc_02_02_03_00_ELF provided by Ti) to encode images. The images are 2048*2048 gray-scale. I also provided the project with OpenMP in this thread:  .

Core_7 (truly single core): 23 ms

Core_0 (single core but with OpenMP initialized): 77 ms

7 cores (Core_0 ~ Core_6): 18 ms

You may find that the result for test 1 seems reasonable. However, for test 2, we noticed that the difference between the performance of  running with 7 cores and that of running with single core (Core_7) is really small while the difference between Core_7 and Core_0 is really large, which made us puzzled.

I wonder if someone knowing OpenMP on C6678 well could explain this situation. Thanks in advance.

Best,

Zhengyang Wang