Page 1 of 1

New version of ImPPG: faster processing on the GPU

Posted: Mon Dec 23, 2019 9:53 pm
by GreatAttractor
ImPPG version 0.6.0 has been released. After some architectural cleanup, I added a GPU/OpenGL back end, that is, almost all processing (except image alignment) is now performed on the GPU. In practical terms, on most computers it means:
  • processing is faster by a factor of several or more
  • for quite big selection sizes and moderate L-R iteration counts, the results are rendered immediately as you move the "sigma" slider
  • no delay of image refresh when scrolling with zoom ≠ 100%
  • cubic interpolation does not cause a slow down
You can see the new version in action in this short video:
https://www.youtube.com/watch?v=giq4jCnC6KM

Benchmarking result of my system - CPU: Ryzen 2700 (8 cores, 16 threads, 3.2 GHz base), GPU: Radeon R370. A typical workload - batch processing of 200 images, 1.2 Mpix each, 50 iterations of L-R deconvolution, unsharp masking and tone mapping. (Note that in CPU mode all cores are used.)
  • CPU mode: 2:20 min
  • GPU mode: 19 s
Even on a 5-year old laptop with an integrated Intel GPU there is a noticeable speed-up.

Re: New version of ImPPG: faster processing on the GPU

Posted: Mon Dec 23, 2019 10:05 pm
by marktownley
Brilliant!

Re: New version of ImPPG: faster processing on the GPU

Posted: Mon Dec 23, 2019 10:14 pm
by MalVeauX
You're the man! Will try it out!

Is there a minimum or ideal class GPU for this and at what CPU level/class/cores/etc does it run away? I have an 8 core 4ghz (all 8 physical, not just threads) CPU but my GPU is an older nVidia 750Ti.

Very best,

Re: New version of ImPPG: faster processing on the GPU

Posted: Mon Dec 23, 2019 10:43 pm
by GreatAttractor
Hard to compare GPU-CPU performance, I'd need many data points. As for a desirable GPU, even my ancient Intel HD Graphics 5500 (integrated) benefits here; generally, the more powerful, the better.

I'm wondering if the current highest-end GPUs could apply L-R in real-time for, say, a 1 Mpix image (if anyone has one, let us know).

Re: New version of ImPPG: faster processing on the GPU

Posted: Mon Dec 23, 2019 11:22 pm
by MalVeauX
I tried it. So far, something is wrong. Driver maybe. Everything is over-the-top processed when I use it. It's ultra-fast, truly real time rendered without delay at all. But, the values are over the top and I have to dial everything way, way, way, way back, near zero, to see a normal image. The defaults at 1.3 and 50 iterations are way, way, way, way, over the top for me so far. Still experimenting. But it's fast, whatever its doing.

Very best,

Re: New version of ImPPG: faster processing on the GPU

Posted: Mon Dec 23, 2019 11:44 pm
by GreatAttractor
Thanks for feedback, Marty.
When you switch to CPU mode, does everything look OK? Also, in GPU mode please try with View/Scaling method/Linear. And check if a saved output image also looks bad.

I tested on 3 different GPUs (Intel, NVidia, AMD), each under Linux and Windows, but yeah, there might be some driver quirks/inconsistencies.

If anyone else is experiencing issues, please let me know.

Re: New version of ImPPG: faster processing on the GPU

Posted: Tue Dec 24, 2019 12:51 am
by Stardust5858
Many thanks for the heads up, appreciate and value the software.

Re: New version of ImPPG: faster processing on the GPU

Posted: Tue Dec 24, 2019 4:21 am
by JochenM
Thanks for the update (and for all your efforts in providing this tool).

I just tested it on a relatively high-end GPU (GTX 1080). For me, the results are consistent regardless of which mode I use (CPU vs GPU). Of course, the GPU mode is way faster in spitting out results.

Re: New version of ImPPG: faster processing on the GPU

Posted: Tue Dec 24, 2019 11:05 am
by banjo
:bow :bow :bow :bow

Re: New version of ImPPG: faster processing on the GPU

Posted: Tue Dec 24, 2019 11:35 am
by MalVeauX
Heya,

I tried swapping between CPU & GPU. The CPU works appropriately as the other versions, takes about 1.5 seconds for a full screen process to occur and preview (smaller FOV are near instant). The GPU setting for me goes crazy. This is an nVidia 750 Ti, driver version is 344.11. I will update to 381.65 today and see if that changes anything. Currently the GPU setting on, the decon and unsharp mask processes work in overdrive, like way way strong. I have to nearly turn them to the minimal value to see the image not like this.

The only other thing I'm curious about is that I have two GPU's in my system (not on the motherboard, two independent GPU's for running many monitors). I wonder if this is a problem? Have you tested multi-GPU systems? How does the software pick which GPU to send the work to? I have an nVidia GT 610 in there as well as my nVidia 750 Ti. The lower end model runs peripheral monitors and the 750 Ti runs the primary monitor. This may also be the issue for me?

Here's some screen shots.

CPU:
IMMPG_060_01.jpg
IMMPG_060_01.jpg (102.21 KiB) Viewed 11954 times
GPU, same values:
IMMPG_060_GPU_02.jpg
IMMPG_060_GPU_02.jpg (539.54 KiB) Viewed 11954 times
IMMPG_060_GPU_03.jpg
IMMPG_060_GPU_03.jpg (191.81 KiB) Viewed 11954 times
Very best,

Re: New version of ImPPG: faster processing on the GPU

Posted: Tue Dec 24, 2019 12:28 pm
by GreatAttractor
Hmm, by the looks of it, it's not "too strong", rather the processing went completely bonkers :)

Standard OpenGL has no provisions to choose the active GPU (though there are AMD- and NVidia-specific extensions, as I've now googled), it's up to the operating system/driver configuration. I wouldn't think your having 2 GPUs would cause problems like this, but you could try deactivating each one in turn (and rebooting for good measure) and retrying with ImPPG.

Could you also try if disabling L-R (iterations=0) helps?

Re: New version of ImPPG: faster processing on the GPU

Posted: Tue Dec 24, 2019 12:45 pm
by MAURITS
Very interesting test from Marty.

Re: New version of ImPPG: faster processing on the GPU

Posted: Tue Dec 24, 2019 10:17 pm
by Boso36
Thanks Great Attractor! I will mark this post, as I will aim to upgrade with similar GPu and cpu speed. Imppgr is great, but I thought it was fast enough already!!

Re: New version of ImPPG: faster processing on the GPU

Posted: Tue Dec 24, 2019 10:41 pm
by MalVeauX
I updated drivers and that solved the issue. Full FOV instant processing with GPU enabled is literally instant on my 750 Ti. No waiting time at all. When I slide the sliders, everything instantly changes real time. No lag at all.

Absolutely outstanding work! :bow

Very best,

Re: New version of ImPPG: faster processing on the GPU

Posted: Wed Dec 25, 2019 1:05 am
by GreatAttractor
Wow, great to hear this! Thanks for checking. I must get me one of those high-end babies one day... ;)

Re: New version of ImPPG: faster processing on the GPU

Posted: Wed Dec 25, 2019 11:20 am
by MAURITS
Where can I switch to GPU mode, is it in IMPPG?

Re: New version of ImPPG: faster processing on the GPU

Posted: Wed Dec 25, 2019 12:41 pm
by GreatAttractor
GPU mode will be activated by default when you first start ImPPG 0.6.0. The current mode is indicated in the status bar in the lower right:
imppg_back_end_info.png
imppg_back_end_info.png (96.9 KiB) Viewed 11846 times
You can switch between CPU/GPU modes in the menu:
back_end_selection.png
back_end_selection.png (36.8 KiB) Viewed 11846 times

Re: New version of ImPPG: faster processing on the GPU

Posted: Wed Dec 25, 2019 12:51 pm
by MAURITS
Oh thank you very much for the above GPU solution.
Indeed it works like a dream.

Re: New version of ImPPG: faster processing on the GPU

Posted: Thu Dec 26, 2019 10:59 am
by GreatAttractor
To those who downloaded the Ubuntu package: I've uploaded a corrected one, which also installs an ImPPG application shortcut (so it can be selected in "application launcher" of your desktop environment).

The same goes for building under any Linux (or alike) system. Pull the latest source code, and the installation step will install also this shortcut.

Re: New version of ImPPG: faster processing on the GPU

Posted: Fri Dec 27, 2019 8:06 am
by Carbon60
Looking good and running well. Many thanks for this. Excellent work, as always.

Stu.

Re: New version of ImPPG: faster processing on the GPU

Posted: Fri Dec 27, 2019 11:08 pm
by LTHB
Just downloaded the new version and tried it, works smooth and fast. Thanks a lot for your work!

Regards,

Frank

Re: New version of ImPPG: faster processing on the GPU

Posted: Wed Jan 01, 2020 7:14 pm
by eroel
Thank you very much, a new year to learn your superb softwares.
Best wishes,
Eric.

Re: New version of ImPPG: faster processing on the GPU

Posted: Sun Jan 05, 2020 9:37 pm
by salvo lauricella
Thank you for your excellent software!!!

Re: New version of ImPPG: faster processing on the GPU

Posted: Mon Jan 06, 2020 2:49 pm
by Bruce G
A Christmas present!

Thank you!!!


Bruce G

Re: New version of ImPPG: faster processing on the GPU

Posted: Thu Feb 13, 2020 7:55 pm
by GreatAttractor
A small bugfix update – version 0.6.1 – is available at https://github.com/GreatAttractor/imppg/releases

Bug fixes:
  • Invalid batch processing results in OpenGL mode
Enhancements:
  • Tone curve window position reset command

For the rare situations where window positioning does not work correctly, you can now force a reset of the tone curve window's position:
pos_reset_cmd.png
pos_reset_cmd.png (49.93 KiB) Viewed 11276 times