decred / gominer

Go (golang) based GPU miner for Decred.
GNU General Public License v3.0
160 stars 80 forks source link

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

Closed matheusd closed 1 year ago

matheusd commented 1 year ago

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.