flatironinstitute / ironclust

Spike sorting software being developed at Flatiron Institute, based on JRCLUST (Janelia Rocket Cluster)
Apache License 2.0
28 stars 7 forks source link

Errors in cuda compilation #64

Open FelixAntonSchneider opened 1 year ago

FelixAntonSchneider commented 1 year ago

Hi, I'm experiencing errors when I try to compile the cuda code. Since I have quite large Neuropix recordings and a GPU, it would be nice if it works.

My system:

Ubuntu 22.04 Matlab2019b gcc/g++ 8.4 CUDA version 11.6 nvcc 11.5

I already changed the path pointing to nvcc in the irc2.m script. So nvcc is definitely used. For every .cu file I get the same output:

usr/bin/nvcc -ptx -m 64 -arch sm_35 "/home/experiment/src/ironclust/matlab/cuda_delta_knn.cu"
    nvcc warning : The 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
/usr/include/c++/11/type_traits(1406): error: type name is not allowed

/usr/include/c++/11/type_traits(1406): error: type name is not allowed

/usr/include/c++/11/type_traits(1406): error: identifier "__is_same" is undefined

/usr/include/c++/11/type_traits(3250): error: type name is not allowed

/usr/include/c++/11/type_traits(3250): error: type name is not allowed

/usr/include/c++/11/bits/stl_pair.h(460): error: argument list for class template "std::pair" is missing

/usr/include/c++/11/bits/stl_pair.h(460): error: expected a ")"

/usr/include/c++/11/bits/stl_pair.h(460): error: template parameter "_T1" may not be redeclared in this scope

/usr/include/c++/11/bits/stl_pair.h(460): error: expected a ";"

9 errors detected in the compilation of "/home/experiment/src/ironclust/matlab/cuda_delta_knn.cu".
    Warning: CUDA could not be compiled but IronClust may work fine.
    If not, install CUDA toolkit v10.1 and run "irc install".
    If you encounter error:  nvcc fatal   : Microsoft Visual Studio configuration file 'vcvars64.bat' could not be found...
      1. Copy $VS12/VC/bin/x86_amd64 to $VS12/VC/bin/amd64
      2. Rename $VS12/VC/bin/amd64/vcvarsx86_amd64.bat to vcvars64.bat
    Finished compiling, took 5.0s

Thanks in advance for your help

FelixAntonSchneider commented 1 year ago

cuda compilation works for Kilosort. So I don't think it is an issue of nvcc per se