「cryoSPARCトラブルシューティング」の版間の差分
提供: Eospedia
(→OSError: cublas library not found) |
(→依存ライブラリ関係) |
||
行1: | 行1: | ||
== 依存ライブラリ関係 == | == 依存ライブラリ関係 == | ||
=== OSError: cublas library not found === | === OSError: cublas library not found === | ||
− | + | ジョブを実行したら以下のエラーが出てきた。 | |
<pre> | <pre> | ||
[CPU: 190.1 MB] Traceback (most recent call last): | [CPU: 190.1 MB] Traceback (most recent call last): | ||
行22: | 行22: | ||
OSError: cublas library not found | OSError: cublas library not found | ||
</pre> | </pre> | ||
+ | |||
+ | cryoSPARCのフォーラムを見ると、これはCUDA 10.1特有の問題と書いてあった。( https://discuss.cryosparc.com/t/patch-ctf-job-fails-child-process-with-pid-31697-has-terminated-unexpectedly/3670/19 ) | ||
+ | |||
+ | 実際、使用しているCUDAは 10.1であった(Dockerのベースイメージは https://hub.docker.com/r/nvidia/cuda/ の 10.1-cudnn7-devel-centos7 )。 | ||
+ | |||
+ | cryoSPARCのインストール時に指定したCUDAのパスは /usr/local/cuda で、これは /usr/local/cuda-10.1 のシンボリックリンクになっている。その中のlib64/には、libcublasは存在しない。一方で /usr/local/cuda-10.2 というディレクトリも存在しており、その中のlib64/にはlibcublas.soが存在していた。 | ||
+ | |||
+ | /usr/local/cuda-10.2/lib64 にライブラリパスを通せば良さそうなので、cryosparc2_worker/config.shに以下の行を付け加えた。 | ||
+ | <pre> | ||
+ | export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-10.2/lib64" | ||
+ | </pre> | ||
+ | |||
+ | で、先ほど失敗したジョブをクローンして再度実行すると、今度はエラー無く実行できた。再インストールやマスターの再起動などは必要なし。config.shを編集するだけ。 |
2020年9月24日 (木) 05:35時点における版
依存ライブラリ関係
OSError: cublas library not found
ジョブを実行したら以下のエラーが出てきた。
[CPU: 190.1 MB] Traceback (most recent call last): File "cryosparc2_worker/cryosparc2_compute/run.py", line 72, in cryosparc2_compute.run.main File "cryosparc2_compute/jobs/jobregister.py", line 337, in get_run_function runmod = importlib.import_module(".."+modname, __name__) File "/net/fs10/work02/csparc/cryosparc2_worker/deps/anaconda/lib/python2.7/importlib/__init__.py", line 37, in import_module __import__(name) File "cryosparc2_worker/cryosparc2_compute/jobs/abinit/run.py", line 15, in init cryosparc2_compute.jobs.abinit.run File "cryosparc2_compute/engine/__init__.py", line 8, in <module> from engine import * File "cryosparc2_worker/cryosparc2_compute/engine/engine.py", line 12, in init cryosparc2_compute.engine.engine File "cryosparc2_worker/cryosparc2_compute/engine/gfourier.py", line 6, in init cryosparc2_compute.engine.gfourier File "/net/fs10/work02/csparc/cryosparc2_worker/deps/anaconda/lib/python2.7/site-packages/skcuda/fft.py", line 20, in <module> from . import misc File "/net/fs10/work02/csparc/cryosparc2_worker/deps/anaconda/lib/python2.7/site-packages/skcuda/misc.py", line 25, in <module> from . import cublas File "/net/fs10/work02/csparc/cryosparc2_worker/deps/anaconda/lib/python2.7/site-packages/skcuda/cublas.py", line 56, in <module> raise OSError('cublas library not found') OSError: cublas library not found
cryoSPARCのフォーラムを見ると、これはCUDA 10.1特有の問題と書いてあった。( https://discuss.cryosparc.com/t/patch-ctf-job-fails-child-process-with-pid-31697-has-terminated-unexpectedly/3670/19 )
実際、使用しているCUDAは 10.1であった(Dockerのベースイメージは https://hub.docker.com/r/nvidia/cuda/ の 10.1-cudnn7-devel-centos7 )。
cryoSPARCのインストール時に指定したCUDAのパスは /usr/local/cuda で、これは /usr/local/cuda-10.1 のシンボリックリンクになっている。その中のlib64/には、libcublasは存在しない。一方で /usr/local/cuda-10.2 というディレクトリも存在しており、その中のlib64/にはlibcublas.soが存在していた。
/usr/local/cuda-10.2/lib64 にライブラリパスを通せば良さそうなので、cryosparc2_worker/config.shに以下の行を付け加えた。
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-10.2/lib64"
で、先ほど失敗したジョブをクローンして再度実行すると、今度はエラー無く実行できた。再インストールやマスターの再起動などは必要なし。config.shを編集するだけ。