Skip to content
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

cuda: Support CUDA toolkit versions older than 10. #216

Merged
merged 1 commit into from Sep 18, 2023

Conversation

matheusd
Copy link
Member

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.

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 documentation[1], 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.

[1]: https://docs.nvidia.com/cuda/archive/10.0/cuda-math-api/group__CUDA__MATH__INTRINSIC__INT.html
@davecgh davecgh merged commit 1c92e04 into decred:master Sep 18, 2023
2 checks passed
@matheusd matheusd deleted the older-cuda branch September 19, 2023 10:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants