backend(build): set CUDA arch defaults before enable_language(CUDA) #2855
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change included in v3.2.0 introduced a build regression that caused llama.cpp to build for only the CUDA 5.2 compute architecture by default. Normally this would only be a performance regression, but for whatever reason this seems to be causing incorrect output. If this fix is confirmed, we should report the issue upstream.
Why the defaults were wrong before this PR is best explained in my own words from a month ago:
enable_language(CUDA)
sets CMAKE_CUDA_ARCHITECTURES (assuming CMP0104 is enabled), so any defaults of our own must be set before this. This unfortunately means this code must be moved into the main backend CMakeLists.txt.Follow-up to #2802