Performance Improvement - GPU / Vulkan

midnightlightning

Well-known member
Hi,

Maybe PI already utilises GPU processing power but I also use APP and they are increasing performance by using GPU's and Vulkan software.

I have a reasonably powerful GPU for gaming and it would be great if this could be used to increase performance.

So, the first question is, does PI already utilise GPU processing power?

Second question, if not could this be considered as a way to boost performance?

I think this is getting much more important now as image files are getting much bigger and I understand there may be some new FF sensors released later this year that may be around 60mp.

Thanks
Jon
 
Reading this https://pixinsight.com/sysreq/ it does say there are plans to implement in the future......

We have plans to implement GPU acceleration in PixInsight, but currently we have much more important priorities, including evolving our development platforms, and the design and implementation of new image analysis and processing tools.
 
it would be interesting to know how APP handled all this - is there for instance no GPU support on OSX? cross platform GPU support is hard to do right across 2 vendors and many different drivers.

rob
 
well that's a good sign - apple is onboard with vulkan apparently. i didn't know about these APIs.
 
Actually, I've been working on this for some time, but preferred to keep it silent until now. I already started exploring the possibility of adding optional GPU support to several critical parts of our PCL development framework a few months ago. As a starting point, a version of PCL (and hence of PixInsight) with OpenCL kernels implementing some important bottlenecks (such as inner convolution loops, statistics and linear algebra routines, etc) should be ready sometime this year.

As I already have said many times, however, the amount of pending work and ongoing projects that we have ahead is huge, and right now we have more important things to do than adding GPU support. So this is not at the top of the stack, but is undoubtedly important and I am taking it into account.
 
i think both AMD and NVidia support vulkan. not sure about intel.

they do, but it's more about Nvidia CUDA cores vs AMD stream processors and how they work with an existing API such as OpenCL or Vulkan etc. Intel is so far behind the other 2 it isn't funny. Crikey, they can't even match AMD for CPUs now.
 
On Windows PI could support DIrectML to get tensorflow support if they wanted and that would cover any DirectML enabled GPU
 
I've been reading another post in General about the RTX 30 series cards and performance differences using GPU acceleration for starnet. One saw a 9x increase in performance vs a high end Ryzen CPU, another was over 100x.

Forgive my ignorance as I'm not a programmer, but could we expect to see results anywhere near this when applied to other processes? Or does this only work well for niche processes like starnet?

Maybe I'm just daydreaming about preprocessing not taking hours, but even if the performance were only a fraction of what we see with starnet it would be a massive leap for PI.
 
I think that the preview window mode should be deprecated, so most processes should be previewed in real time in the same window, entirely, or by selection. They could be executed from a pixel shader, or through compute shaders, which is compatible with any current hardware.

It is a bit frustrating not being able to see the results in real time as I cannot correctly assess and interpret the changes that occur. By sliding the controls in real time you can see the progression, make combinations quickly, and learn much more than reading tutorials. It can be learned in a faster, more intuitive, and fun way.

For me it is the only defect of this application. It is a defect that for me weighs down the whole program because I think that I will never be able to master by not knowing what the parameter combinations do, nor finding the precise settings.
 
I think that the preview window mode should be deprecated, so most processes should be previewed in real time in the same window, entirely, or by selection. They could be executed from a pixel shader, or through compute shaders, which is compatible with any current hardware.

It is a bit frustrating not being able to see the results in real time as I cannot correctly assess and interpret the changes that occur. By sliding the controls in real time you can see the progression, make combinations quickly, and learn much more than reading tutorials. It can be learned in a faster, more intuitive, and fun way.

For me it is the only defect of this application. It is a defect that for me weighs down the whole program because I think that I will never be able to master by not knowing what the parameter combinations do, nor finding the precise settings.

Make a "significative" preview, and each time you adapt a parameter execute it on the preview.
Those are not done cumulative, but each time from the original/pristine preview, so it is relatively easy to see what will happen if you execute it on the complete image.

just my 2 cents...
 
I think that the preview window mode should be deprecated

Not only it won't be deprecated, but the Real-Time Preview window will see spectacular improvements in version 1.9 of PixInsight, probably some of them will also be available in successive 1.8.9-x versions. One of them is the possibility to split the preview into several sections or tiles, where you'll be able to evaluate and compare results obtained from different process executions, e.g. from different processes and/or process parameters, different masks, etc.

, so most processes should be previewed in real time in the same window

Previews are a unique, distinctive feature of PixInsight, and mastering their use is essential to work with PixInsight in an effective way. Previews can be used to execute processes on regions of interest. A preview is not a simulation of a processed image, but a real processed image where you can perform qualitative and quantitative analysis and evaluations. For example, you can perform PSF measurements on a preview with the DynamicPSF tool after applying a process, or see how its histogram and statistics change as you apply processes (this can also be done with the R-T preview, BTW). Previews can also accumulate a complete processing history as an option. This goes much beyond the typical simulations that can be achieved in other simple implementations, mainly in painting and retouching applications.

Right now the real-time preview functionality has already been implemented for all processes where it makes sense and can be used efficiently with reasonably 'normal' hardware. As soon as we start implementing GPU acceleration in more processes, more of them will gain real-time previewing functionality. We are already working on this.
 
Does this mean you will finally implement layers ?
With of course for each layer a separate mask,
with the grouping of the layers,
with possbility to change the order of the layers,

And, bien sur, with the activating and desactivating of layers and groups of layers, and then instant view (not preview) what the effect of a layer is ?

And all of this in a non destructive way ?
 
Hi Pieter,

No, what I have described has nothing to do with layers. The improvements will be implemented directly in the Real-Time Preview window.
 
Old thread, but just want to say I can't wait for GPU implementation! In all the video and editing software I use that has this ability, its easily twice as fast as using my processor. My processor is a 14 core intel (i9=10940x), so its no slouch, vs the nvida 3090 the other software uses.

I think GPU implementation is going to be a massive step forward in processing speed, can't wait to see it, and given how I use pixinsight, its the future enhancement I'm most excited for!
 
Last edited:
I would like to suggest that GPU usage is now getting increasingly important.

As more of us are using the likes of QHY600 cameras with 120MB subs, which result in massive channel combined images, processing is becoming a real time wasting chore. I find many processes take several minutes to run, yes I use previews first but its surprising how often the results seen in previews are not reflected accurately when run on the full image and repeated running is necessary.

As a result of slow processing I have had to spend a lot of money on upgrading hardware, it will certainly improve speed to some extent, but like many Gamers I also have a powerful GPU which, which in PI's case, is sat there doing nothing.

So for me at least, improving PI performance is at the top of my wish list.

Without wishing to hijack this thread, but on a similar subject, could anything be done to make better use of RAM. I have 32MB of RAM and other than perhaps for WBPP it seems to hardly get used yet Swap files are hammered. Adding RAM is a "relatively" cheap and easy upgrade.

I set up a 16GB RAM drive as per someone else's post, and used this for some Swap files, alongside my regular M2 NVMe Swap files but a) it was no faster and b) once the RAMDrive was full PI errored - it appeared not to be able to go on to use the standard Swap file.

Maybe something I am not doing right so it would be good to know if using RAMDisk is worth doing but perhaps also there is some development that could be done to make better use of RAM?
 
Maybe something I am not doing right so it would be good to know if using RAMDisk is worth doing but perhaps also there is some development that could be done to make better use of RAM?

Contrary to what is said out there, we cannot do miracles. The only solution to preprocess massive amounts of data is more RAM. We currently recommend a minimum of 64 GB, and 128 GB is a more realistic minimum to work with large amounts of big subframes, such as what you are describing, especially if you want to apply the most demanding processes, such as LocalNormalization. You can disable advanced features to process your data sets faster and using less memory resources. See my answer here for practical options.

As for GPU acceleration, the amount of pending work and high-priority tasks ahead of us is so huge, and our human resources are so scarce, that again, don't expect miracles. PixInsight is a big and complex image processing and development platform. We can only work a maximum of 24 hours every day (and sometimes we work a tad less than that :)).
 
Back
Top