環境
Dockerイメージ :nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04
Pythonバージョン:3.10.12
困ったこと
GPUでspaCyを使おうとしてspacy.require_gpu()
を実行すると、以下のエラーが出た。
import spacy
spacy.require_gpu()
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[1], line 2
1 import spacy
----> 2 spacy.require_gpu()
File /workspace/.venv/lib/python3.10/site-packages/thinc/util.py:230, in require_gpu(gpu_id)
228 raise ValueError("Cannot use GPU, PyTorch is not installed")
229 elif platform.system() != "Darwin" and not has_cupy:
--> 230 raise ValueError("Cannot use GPU, CuPy is not installed")
231 elif not has_gpu:
232 raise ValueError("No GPU devices detected")
ValueError: Cannot use GPU, CuPy is not installed
確認したこと
spaCyはちゃんとCUDA対応でインストールしている。
pip install spacy[cuda12x]
実際、pip freeze
でもcupyのCUDA対応版が入っている。
pip freeze
spacy==3.8.6
cupy-cuda12x==12.3.0
原因
どうやら、Docker側にlibgomp1が入ってないとそもそもimport cupy
すら通らないらしい。
というわけで、Docker側に入れる。
apt install -y libgomp1
これでもう一度spacy.require_gpu()
をやってもエラーが出なくなった。