☠️

CUDA無し環境でPyTorchでGPUを使用する手軽な方法

に公開

「CUDAをインストールしていないけど、PyTorchでGPUを使いたい」

一昔前なら、Linux(Ubuntu)の黒画に10回くらい泣いてからようやく実現できたその行為も、今やpipやuvでPyTorchをインストールするだけでCUDA機能が使えるようになっています。簡単に紹介します。

環境

  • Ubuntu 22.04
  • NVIDIA GeForce RTX 3060
  • NVIDIAドライバ: 535.183.01
  • Python 3.10.12
  • CUDA: 未インストール

NVIDIAドライバは必要です。LinuxとNVIDIAドライバの具体的なセットアップ方法は、以下記事参照ください(Dockerのセットアップは不要です)。

https://qiita.com/karaage0703/items/e79a8ad2f57abc6872aa

CUDAツールキットがなくても動く理由

PyTorchのCUDA版には、必要なCUDAランタイムライブラリがすべて同梱されています。

つまり:

  • システムにnvcc(CUDAコンパイラ)がなくても動作
  • PyTorchが必要なCUDAライブラリをすべて持っている
  • ドライバーさえあればGPUが使える

インストール方法

pip を使う場合

pipコマンドでPyTorchをインストールしたら、CUDAが使えるPyTorchがセットアップできます。

pip install torch

以下CUDAの動作確認です。

$ python3 -c "import torch; print(torch.cuda.is_available())"
True

uv を使う場合

uvでも同様にインストールできます。uv自体のセットアップは以下記事を参照してください。

https://zenn.dev/karaage0703/articles/029b45ff78bc57

PyTorchのセットアップは以下コマンドです。

$ uv venv
$ source .venv/bin/activate
$ uv pip install torch

以下コマンドで動作確認ができます。

$ python3 -c "import torch; print(torch.cuda.is_available())"
True

※ 環境によっては、Numpyのwarningが出るかもしれません

何もオプションつけずにうまくいきましたが、以下のオプションを付けることで、より確実になるかもしれません。

$ uv pip install torch --torch-backend=auto

--torch-backend=autoに関しては、以下記事が参考になります。

https://zenn.dev/turing_motors/articles/ab155fe6653660

まとめ

PyTorchを何も考えずにデフォルトインストールしたら、実はPyTorchでCUDA(GPU)が使えるという話の紹介でした。

少し前は、ドライバとCUDAとPyTorchのバージョンの組み合わせで悩まされたので、バージョンの試行錯誤をするためと、手軽なセットアップ方法としてDockerを使っていました。

ただ、PyTorchで簡単にCUDA使えるのであれば少なくとも自分の使い方だと、Dockerは必要ないかもしれないなと思いました。

なにはともあれ、セットアップ方法が手軽になるのはありがたいですね。

参考リンク

Discussion