1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PyTorchのモジュールでlibcusparse.so.10がないと言われる

Last updated at Posted at 2020-09-19

自分用メモ

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などの対処で行ける場合もあるらしいが,自分の場合はエラーが起きた.

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?