I am working on an industrial project dealing with large image processing (50Mo per image), and the key is productivity.
I made the choice to delegate image processing to the GPU using JavaCL . I am writing several tests to determine if the approach is right. The results are clear!
More than 100 GPU colorization runs win: GPU = 172 ms versus CPU = 438 ms
Itβs clear that the GPU is more powerful than the processor for this kind of computing, BUT! there is a problem, a memory problem. In fact, my graphics card has 256Mo VRam and cannot select an image larger than 8Mo!
So my question is, what is the best way to process images larger than 8Mo?
- Tile images and processing of each tile? Will performance be a killer due to the delay between RAM and VRAM
- Extract the original pixels as float4 vectors and send them to the GPU?
- Change my graphics card?
- Drop the project?
- Have another coffee?
Thanks to everyone in advance :-)
source share