-
Notifications
You must be signed in to change notification settings - Fork 316
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhancement request: Faster build for modern windows machines #7155
Comments
OP @chaimav has tested |
For a fast windows 11 optimized build, I would recommend testing skylake-raptorlake: Note: LTO doesn’t seem to work for the windows build. See: #5379 Skylake represents the 8th gen intel architecture (minimum for windows 11), Raptor Lake is the 13th gen (including the specific These 2017-2022 tuning architectures should be available in gcc-13 and later. For a fast windows 10 build, existing processor target number 10 (sandybridge-ivybridge) could be used. Example github CI build: Workflow link: about_this_build:
Runs ok on Windows10 / i7-6700 (Skylake). I'm not the expert at generating timing comparison data. Just by seat-of-the-pants it does seem way faster. |
@chaimav There are two things going on here. The first is optimal thread usage. There might be (just my speculation) a limit on the number of threads when it is set to automatic. If this is the case, manually setting the maximum threads to at least the number of logical cores you have could give you the best result. Based on the specs you provided in the Pixls thread, that would be 24. Be cautious about possible performance issues when using high values (see #6730), so some experimentation could be required. The other thing is build optimization for more recent architectures. The official builds are generic, which means they work for a large percentage of computers (I'm only talking about x86). We could provide one or more optimized builds for more recent architectures. I'd like to see what the performance improvements are for various processor targets to determine the best compromise between performance and compatibility. We also have to think about AMD and how to make the optimized builds available without making it confusing for those who are not techies. |
Is it possible for the installer to determine the CPU on install? Or even have a manual option during install that defaults to the current version if the user doesn't select another option? |
I tried @Benitoite build, and still saw measurable improvement by increasing the number of threads |
I'm not sure if it's possible to detect the CPU architecture. I took a quick look at the Inno Setup documentation and didn't see anything that can help. |
The results from https://discuss.pixls.us/t/rawtherapee-windows-performance-testing-needed-powershell/44819 show very little difference between builds for different architectures in most test runs. There is one or two CPUs that show a preference for one build, but it's hard to draw conclusions without knowing the margin of error. |
Current Windows builds are not optimized for the number of threads for modern processors.
Manually setting the number of threads for Wavelets yields increased performance over the automatic setting.
A full explanation from HIRAM is here:
https://discuss.pixls.us/t/how-to-optimize-rawtherapee/44786/15
The text was updated successfully, but these errors were encountered: