Page 1 of 1

Re: Size of distributive, size installed program and what is cufft64_100.dll

Posted: September 21st, 2019, 7:25 pm
by jsachs
cufft64_100.dll is a package for doing fast fourier transforms using CUDA -- these are used by the Texture transformation. It is an adaptation of the FFTW package which makes massive trade-offs in size to get the fastest possible performance. The speed boost in Texture with an NVIDIA card is huge.

I has been on my to-do list for a while to reduce the size of the help file. I deliberately added lots of images and incorporated material previously in white papers to make it more useful as a reference, but some of the images are larger than necessary as you point out. I would have done this sooner, but the help authoring tool only fairly recently made it easier to locate the oversize images.

I could split the installer into parts (main program / help file / NVIDIA support file/ extras), so you could avoid downloading components that stay the same, but then it becomes easy to create version skew among the components as they are updated individually. Earlier in the beta process I provided a much smaller download of just the executable file which is mostly what changes from version to version, but as the beta audience grew larger I became concerned about possible issues using a new executable with old support files.

I will take a closer look at the downloadable size and see what I can do.

Re: Size of distributive, size installed program and what is cufft64_100.dll

Posted: September 22nd, 2019, 8:45 am
by jsachs
I was able to reduce the size of the help file by about 30MB (roughly 30%) by resizing some of the larger embedded image files. Help files are already compressed, so trying to reduce it much below that size would be increasingly hard for little return.

With a little work, I should be able to eliminate Gamma Curves.bmp and Chromaticity Diagram.bmp by computing them on the fly. They are only used by the Create Profile transformation.

CUDA is the de facto standard for speeding up programs by using graphic cards. NVIDIA pretty much owns the high end graphics card market and the low end cards don't have enough memory or processors to make it worthwhile. FFTW, on which CUFFT64 is built is the end product of years of work and not created inexpensively, but it was created to be as fast as possible with no regard to size, and it also has a lot of capabilities PWP does not use. While the Texture transformation is rarely used, PWP also uses CUDA to speed up Bilateral Sharpening by a lot, which I use on almost every image. Several other transformations also benefit from CUDA. I would prefer not to have two different versions of PWP -- one with and one without CUDA as this slows down the development cycle and makes testing more complicated.

Maybe the best solution during the beta period is to go back to providing an update of just the PWP executable so users who are downloading frequently only get the one thing that changes all the time. When the releases get more stable and less frequent, the issue of distribution size becomes much less important.

Re: Size of distributive, size installed program and what is cufft64_100.dll

Posted: September 22nd, 2019, 10:01 am
by jsachs
Even reducing the size of the help file and removing the two large bitmaps only reduces the install file by a little over 30MB. Well worth doing, but not that big a reduction overall since it is still over 217MB. Since installer files are compressed, not all of the reductions in the file sizes show up in the final install file size.

On the other hand, the executable by itself is less than 2MB when zipped.