Hi, next problem (or two) moving to another cluster. Running the tutorial, on the Patch Motion Correction (multi) step, I get this error (full traceback below):
[command: nvcc --preprocess -arch sm_80 -I/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/cuda /tmp/tmpu4irjcs8.cu --compiler-options -P]
[stderr:
b'cc1plus: fatal error: cuda_runtime.h: No such file or directory\ncompilation terminated.\n']
The include path does not seem like the right place. The include file is really in /usr/local/cuda-11.7/include. I tried copying cuda_runtime.h from there to the place that nvcc is looking for it, but that just led to the next missing include file. I could copy them all, but that doesn’t seem like the right solution.
I tried setting NVCC_PREPEND_FLAGS and CPATH in cluster_script.sh, and I can see in the logs that those variables are being set, but they do not seem to effect the nvcc command that’s being run.
I also wonder why the path /projects/MOLBIO/local/cryosparc is still the one for my production installation, and not this test installation. I have separate installation directories, separate databases, separate licenses, and I’ve set the worker path in cluster_info.json. The only place I can think of that might retain the path is in the database – my test instance is using a copy of the production database. Could you tell me where that include path is coming from?
Also note that I had to add to the list of libcufft versions in cryosparc2_worker/cryosparc_compute/skcuda_internal/cufft.py. Under RHEL 8, none of the listed versions match the versions that are installed, because the list includes minor versions (e.g. 10.1), but the installed versions have these, ro example – either the major version only (10), or the full version (10.7.2.50). RHEL 7 had 10.1. Adding “10” to the list seems to work – at least libcufftw.so is found.
/usr/local/cuda-11.7/lib64/libcufftw.so.10
/usr/local/cuda-11.7/lib64/libcufftw.so.10.7.2.50
Your help is greatly appreciated.
Matthew
Here’s the whole traceback from the failure to find the include file:
[CPU: 216.7 MB] Error occurred while processing J1/imported/017013418492253161062_14sep05c_00024sq_00003hl_00005es.frames.tif
Traceback (most recent call last):
File "/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/tools.py", line 429, in context_dependent_memoize
return ctx_dict[cur_ctx][args]
KeyError: <pycuda._driver.Context object at 0x148254eeb210>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/projects/MOLBIO/local/cryosparc-della-test/cryosparc2_worker/cryosparc_compute/jobs/pipeline.py", line 60, in exec
return self.process(item)
File "cryosparc_worker/cryosparc_compute/jobs/motioncorrection/run_patch.py", line 190, in cryosparc_compute.jobs.motioncorrection.run_patch.run_patch_motion_correction_multi.motionworker.process
File "cryosparc_worker/cryosparc_compute/jobs/motioncorrection/run_patch.py", line 193, in cryosparc_compute.jobs.motioncorrection.run_patch.run_patch_motion_correction_multi.motionworker.process
File "cryosparc_worker/cryosparc_compute/jobs/motioncorrection/run_patch.py", line 195, in cryosparc_compute.jobs.motioncorrection.run_patch.run_patch_motion_correction_multi.motionworker.process
File "cryosparc_worker/cryosparc_compute/jobs/motioncorrection/patchmotion.py", line 255, in cryosparc_compute.jobs.motioncorrection.patchmotion.unbend_motion_correction
File "cryosparc_worker/cryosparc_compute/jobs/motioncorrection/patchmotion.py", line 264, in cryosparc_compute.jobs.motioncorrection.patchmotion.unbend_motion_correction
File "cryosparc_worker/cryosparc_compute/jobs/motioncorrection/patchmotion.py", line 121, in cryosparc_compute.jobs.motioncorrection.patchmotion.prepare_movie_for_processing
File "/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/gpuarray.py", line 549, in fill
func = elementwise.get_fill_kernel(self.dtype)
File "<decorator-gen-120>", line 2, in get_fill_kernel
File "/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/tools.py", line 433, in context_dependent_memoize
result = func(*args)
File "/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/elementwise.py", line 498, in get_fill_kernel
"fill")
File "/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/elementwise.py", line 163, in get_elwise_kernel
arguments, operation, name, keep, options, **kwargs)
File "/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/elementwise.py", line 149, in get_elwise_kernel_and_types
keep, options, **kwargs)
File "/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/elementwise.py", line 76, in get_elwise_module
options=options, keep=keep, no_extern_c=True)
File "/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/compiler.py", line 291, in __init__
arch, code, cache_dir, include_dirs)
File "/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/compiler.py", line 254, in compile
return compile_plain(source, options, keep, nvcc, cache_dir, target)
File "/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/compiler.py", line 78, in compile_plain
checksum.update(preprocess_source(source, options, nvcc).encode("utf-8"))
File "/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/compiler.py", line 55, in preprocess_source
cmdline, stderr=stderr)
pycuda.driver.CompileError: nvcc preprocessing of /tmp/tmp2hdc51cy.cu failed
[command: nvcc --preprocess -arch sm_80 -I/projects/MOLBIO/local/cryosparc/cryosparc2_worker/deps/anaconda/envs/cryosparc_worker_env/lib/python3.7/site-packages/pycuda/cuda /tmp/tmp2hdc51cy.cu --compiler-options -P]
[stderr:
b'cc1plus: fatal error: cuda_runtime.h: No such file or directory\ncompilation terminated.\n']
Marking J1/imported/017013418492253161062_14sep05c_00024sq_00003hl_00005es.frames.tif as incomplete and continuing...