CryoSPARC 3.3.2
Cudatoolkit 11.1
RHEL 8.5
Patch motion correction (multi) fails with:
File "/projects/MOLBIO/local/cryosparc-della-test-2/cryosparc_worker/cryosparc_compute/skcuda_internal/cufft.py", line 53, in <module>
raise OSError('cufft library not found')
That seems to be because libcufft is installed with these names – .so, .so.10, and .so.10.3.0.74:
# ls -l /usr/local/cuda-11.1/lib64/libcufft.so*
lrwxrwxrwx. 1 root root 14 Sep 16 2020 /usr/local/cuda-11.1/lib64/libcufft.so -> libcufft.so.10
lrwxrwxrwx. 1 root root 21 Sep 16 2020 /usr/local/cuda-11.1/lib64/libcufft.so.10 -> libcufft.so.10.3.0.74
-rwxr-xr-x. 1 root root 235963680 Sep 16 2020 /usr/local/cuda-11.1/lib64/libcufft.so.10.3.0.74
The variable _linux_version_list
in /projects/MOLBIO/local/cryosparc-della-test-2/cryosparc_worker/cryosparc_compute/skcuda_internal/cufft.py
does not list those:
_linux_version_list = [11.0, 10.1, 10.0, 9.2, 9.1, 9.0, 8.0, 7.5, 7.0, 6.5, 6.0, 5.5, 5.0, 4.0]
Adding 10 to the list fixes the problem.
_linux_version_list = [10, 11.0, 10.1, 10.0, 9.2, 9.1, 9.0, 8.0, 7.5, 7.0, 6.5, 6.0, 5.5, 5.0, 4.0]
– Matthew Cahn