-
Notifications
You must be signed in to change notification settings - Fork 131
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
Support parallel builds with make #491
Commits on Dec 11, 2023
-
Atomise commands used to generate inline headers
Individual COMMANDS in define_custom_command are not guaranteed to execute sequentially, meaning that the inline headers may be broken if doing a parallel build with make. Each command is extracted into its own custom_command (some are merged, such as subsequent sed calls) so that CMake can properly make sense of the dependencies and generate consistent headers in parallel.
Configuration menu - View commit details
-
Copy full SHA for f98ab39 - Browse repository at this point
Copy the full SHA f98ab39View commit details -
Use CMake cat instead of shell cat
This requires minimum CMake 3.18, which is not particularly recent. This provides a better cross-platform way of concatenating files.
Configuration menu - View commit details
-
Copy full SHA for 7c063d3 - Browse repository at this point
Copy the full SHA 7c063d3View commit details -
Commands in the list of SLEEF_HEADER_COMMANDS were sometimes observed to overwrite each other when doing a parallel build. Instead of building a list of commands, build a list of temporary files to depend on, add a custom_command for each of them, and cat them all together at the end.
Configuration menu - View commit details
-
Copy full SHA for 1bd448c - Browse repository at this point
Copy the full SHA 1bd448cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 48c5de1 - Browse repository at this point
Copy the full SHA 48c5de1View commit details
Commits on Dec 12, 2023
-
Also added a helper for concatenating files, as this is becoming quite a common operation.
Configuration menu - View commit details
-
Copy full SHA for 42a566b - Browse repository at this point
Copy the full SHA 42a566bView commit details -
Atomise generating simd disp files
Refactored out some shared logic - there is likely more to be done here.
Configuration menu - View commit details
-
Copy full SHA for b11e77c - Browse repository at this point
Copy the full SHA b11e77cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3f34a53 - Browse repository at this point
Copy the full SHA 3f34a53View commit details -
Reuse existing atomic inline libm header generation for CUDA
By setting a few optional params the updated header build can be reused for CUDA - manually verified that the headers are identical.
Configuration menu - View commit details
-
Copy full SHA for 9a5eb57 - Browse repository at this point
Copy the full SHA 9a5eb57View commit details -
Atomise commands used to generate quad inline headers
Individual COMMANDS in define_custom_command are not guaranteed to execute sequentially, meaning that the inline headers may be broken if doing a parallel build with make. Each command is extracted into its own custom_command (some are merged, such as subsequent sed calls) so that CMake can properly make sense of the dependencies and generate consistent headers in parallel.
Configuration menu - View commit details
-
Copy full SHA for 165f168 - Browse repository at this point
Copy the full SHA 165f168View commit details -
Atomise remaining quad build commands
Reusing the commands for the inline headers for the CUDA header, and use concat_files for disp files.
Configuration menu - View commit details
-
Copy full SHA for dbbe931 - Browse repository at this point
Copy the full SHA dbbe931View commit details -
Remove warning about parallel build with make
Now that custom_commands are atomic, parallel builds should be supported with make.
Configuration menu - View commit details
-
Copy full SHA for 425951d - Browse repository at this point
Copy the full SHA 425951dView commit details -
Configuration menu - View commit details
-
Copy full SHA for ed8f244 - Browse repository at this point
Copy the full SHA ed8f244View commit details
Commits on Dec 13, 2023
-
Ensure rename header is built before inline headers
This was mistakenly removed, now added back.
Configuration menu - View commit details
-
Copy full SHA for acd9165 - Browse repository at this point
Copy the full SHA acd9165View commit details