cuda: Support CUDA toolkit versions older than 10. #216
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 commit adds a conditional macro to the Blake3 CUDA kernel so that on older CUDA Toolkit versions a shift-based rotation is used instead of the intrinsic.
According to the CUDA Toolkit documentation1, the __funnelshift_rc integer intrinsic was introduced on CUDA version 10. Prior to this commit, the CUDA kernel of gominer could not be built when using Toolkit versions older than 10.
Note that although this makes it possible to build the kenel on older Toolkit versions, performance is significantly degraded when compared to the modern, intrinsic-based versions.