自分用メモ
OS : Ubuntu 18.04 LTS
PyTorch : 1.5.0, 1.6.0
CUDA : 10.2
NVIDIA-driver : 440
もともとは,PyTorch Geometricをimportしたときに起きたエラー.公式の通りにインストールしたのにおかしいな...と思ったが,結論から言うと,NVIDIA-driverはちゃんとインストールされていたが,NVCCがインストールされていなかったため.
症例
import torch_geometric.transforms as T
OSError: libcusparse.so.10: cannot open shared object file: No such file or directory
tensorflow-gpuで libcublas.so.10.0のImportError
https://qiita.com/Uejun/items/fbb579374eafab8633d6
こちらも似たような症例だが,単にパスを通すだけで済むらしい.しかし,私のパソコンには,どこを探しても,libcusparse.so.10なるライブラリはなかった.
公式のissueにこのようなものがあった.
libcusparse.so.10 error when importing
https://github.com/rusty1s/pytorch_geometric/issues/1092
問題の状況は違うけど,/usr/local/cuda/lib64
下に,libcusparse.so.10があること,また,$ nvcc -V
がちゃん通ることが必要なようである.私の場合,$ nvcc -V
がそもそも通っていなかった.このコマンドを叩いたときには,
$ nvcc -V
Command 'nvcc' not found, but can be installed with:
sudo apt install nvidia-cuda-toolkit
と表示されたが,$ sudo apt install nvidia-cuda-toolkit
では目的のライブラリは入らなかった.それ以前に,cuda10.2をインストールする必要があるらしい.
解決策
cuda10.2を入れ直す.
$ sudo apt purge nvidia-cuda-*
の後(なくてもいけるが念の為),公式をもとに,cuda10.2をインストールする.これに関しては,各デバイスごとに違うと思うので割愛.この後,.bashrcに
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
を書き込んだら,$ nvcc -V
が通り,PyTorch Geometricも使えるようになった.また,libucusparse.so.10.0などのモジュールがある場合は$ ln -s libucusparse.so.10.0 libucusparse.so.10
などの対処で行ける場合もあるらしいが,自分の場合はエラーが起きた.