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

usage of __shfl_down is deprecated #43

Open
arielzn opened this issue Jun 22, 2023 · 2 comments
Open

usage of __shfl_down is deprecated #43

arielzn opened this issue Jun 22, 2023 · 2 comments

Comments

@arielzn
Copy link

arielzn commented Jun 22, 2023

It looks the cuda kernels being created are using a deprecated function __shfl_down :

__device__ inline double __shfl_down(double var, unsigned int srcLane, int width=32) {

__device__ inline double __shfl_down(double var, unsigned int srcLane, int width=32) {

When trying to run the code on a computer with recent hardware, which defaults to a compute capability sm_86 we get the error for the kernel compilation:

  kernel.cu(3823): error: identifier "__shfl_down" is undefined

If we force to build for an old arch passing the option -arch sm_53, it builds with the message

kernel.cu(3823): warning: function "__shfl_down(double, unsigned int, int)"                                                                                                                                                                                                                 
/opt/local/easybuild/software/CUDA/10.1.243-GCC-8.3.0/bin/../targets/x86_64-linux/include/sm_30_intrinsics.hpp(295): here was declared deprecated ("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to s
uppress this warning).")                                                                                                                                                                                                                                                                    

this makes the code cumbersome to install and use on recent hardware with recent CUDA versions.

maybe the info on this question can help

https://stackoverflow.com/questions/50639194/shfl-down-and-shfl-down-sync-give-different-results

could you consider patching this ?

@ABignaud
Copy link
Member

Hi,
Unfortunately, I don't think we will consider patching this as we have no longer cuda developer in our team. InstaGRAAL is currently working only with CUDA v10, I don't think you will manage to use it with more recent version of CUDA. To install it easily, you can use the docker image we have provided which use CUDA v10 without downgrading the version of CUDA on your computer. Otherwise, you can use the Galaxy Europe server where instaGRAAL has been installed.
Amaury

@arielzn
Copy link
Author

arielzn commented Jun 26, 2023

The issue in my case is present even using CUDA v10, I tried with cuda v10 installed or also creating a singularity container with cuda v10.

My guess is it depends on the hardware being found, with the A5000 we have available it's triggered to use sm_86 as compute capability automatically, and thus we get the error I mention.
It can be eventually circumvent forcing to use an older capability, but is not quite practical as a workaround.

Without modifications, did you have the chance to run instaGRAAL on GPUs generation 30XX or newer 40XX ?

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

No branches or pull requests

2 participants