0

I use OpenCL for image processing(About SIFT algorithm specially).

Actually, I tested the same code using two images with different sizes. One is 1024*768, the other is 512*384. My opencl GPU platform are 1. NvidIA 760(PC, 2G) 2. Nvidia 560(PC, 1G) 3. Vivante GPU (Embedded Freescale i.MX6, 1G).

When I used the 512*384 image, N760 and N560 are both OK, but the Vivante GPU doesn't work

Then I turned it into a double-size image 1024*768. The N760 is still OK, but the results on N560 are all black(means no processing at all).

In my idea, if the image is too big, the processing time should be more, and why there was no result at all? And since the code is the same, why it can't be worked on the embedded GPU?

I think I may have two points be cared in this code.

  1. When I do the Gaussian blur and feature description, the temporary image number is a lot. Maybe the temporary image used too much GPU memory(Over 1G? It is too big...)?

  2. The computing unit number for different image is also different, is that because the large image's computing unit's number is exceeded?

Anyhow, why they may not explain the reason why the same code can't run on Embedded GPU even though we used a very small image.

Thanks! I felt so headache about this problem...

Robert Crovella
  • 143,785
  • 11
  • 213
  • 257
David Ding
  • 680
  • 3
  • 9
  • 19

0 Answers0