Pythonやってみる!

(128) RTX 5070ti, 5060tiで PyTorchを動かす。

3,469 views

【1】やりたいこと

NVIDIA GeForce RTX 5070tiを搭載したマシン上で PyTorchを動かしたい。

追記(2025.06.23): RTX 5060tiでもまったく同じ手順で PyTorchが動いた。

【2】やってみた

Step 1/6: NVIDIAドライバをインストールする。

過去記事 (163) Ubuntu 24.04に NVIDIAドライバをインストールする。 を参照のこと。

Step 2/6: CUDA Toolkitをインストールする。

こちらのサイトで OS, バージョンを指定してダウンロード&インストールする。
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=24.04&target_type=deb_local

注意:
CUDA Toolkit 12.9が公開されているが、本日時点で
PyTorchは 12.8対応版までしか公開されていないので 12.8を選択 する。
過去バージョンは Archive of Previous CUDA Releases から探せばよい。

OS, バージョン等のパラメーターを選択すると、画面下部にインストール手順(=Bashに入力するコマンド)が表示されるので、この通りに実行すればよい。

$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin
$ sudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda-repo-ubuntu2404-12-8-local_12.8.1-570.124.06-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu2404-12-8-local_12.8.1-570.124.06-1_amd64.deb
$ sudo cp /var/cuda-repo-ubuntu2404-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
$ sudo apt-get update
$ sudo apt-get -y install cuda-toolkit-12-8

パスを通す。

$ nano ~/.bashrc
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"

Shellを再起動する。

$ source .bashrc

Step 3/6: cuDNNをインストールする。

こちらのサイトで OS, バージョンを指定する。
→ インストールコマンドが表示されるので、その通りに実行する。
https://developer.nvidia.com/cudnn

Step 4/6: TensorRTをインストールする。

【Q】インストールされている CUDAバージョンの確認方法は?

$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0 

【Q】CUDA12.8に対応するTensorRTは?
10.9を使用する。 ※2025年4月21日時点

※要ユーザー登録&ログイン(無料)

我が家では Ubuntu24.04 + CUDA 12.8 の組み合わせに合わせて、下記のバージョンをダウンロード&インストールする。
https://developer.nvidia.com/tensorrt/download/10x

TensorRTのインストール手順

$ wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/10.9.0/local_repo/nv-tensorrt-local-repo-ubuntu2404-10.9.0-cuda-12.8_1.0-1_amd64.deb
$ sudo dpkg -i nv-tensorrt-local-repo-ubuntu2404-10.9.0-cuda-12.8_1.0-1_amd64.deb
$ sudo cp /var/nv-tensorrt-local-repo-ubuntu2404-10.9.0-cuda-12.8/*.gpg /usr/share/keyrings/
$ sudo apt update
$ sudo apt install tensorrt python3-libnvinfer

正しくインストールされたことを Pythonシェルで確認してみる。

>>> import tensorrt as trt
>>> trt.__version__
‘10.9.0.34’

Step 5/6: PyTorchをインストールする。

■PyTorch用の仮想環境の作成と実行

$ sudo apt install python3-pip
$ sudo apt install python3-venv 

仮想環境名は自由に付けてよい。ここでは myPyTorch とする。

$ python3 -m venv myPyTorch
$ . ./myPyTorch/bin/activate

ここで下記のように PyTorchをインストールするとダメ

(myPyTorch) $ pip install torch torchvision torchaudio

Pythonシェルで PyTprchを使ったプログラムを実行すると、以下のようなエラーが発生する。

/home/hoge/myPyTorch/lib/python3.12/site-packages/torch/cuda/__init__.py:235: UserWarning:
NVIDIA GeForce RTX 5070 Ti with CUDA capability sm_120 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_50 sm_60 sm_70 sm_75 sm_80 sm_86 sm_90.
If you want to use the NVIDIA GeForce RTX 5070 Ti GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/

  warnings.warn(
Traceback (most recent call last):
  File "", line 1, in 
RuntimeError: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions. 

NVIDIA GeForce RTX 5070 Ti GPUを PyTorchで使用したい場合は https://pytorch.org/get-started/locally をチェックして。
とのことなので、指定されたページを見ればよい。

その前に、インストールしてしまった PyTorchをアンインストールしておく。

(myPyTorch) $ pip uninstall torch torchvision torchaudio
(myPyTorch) $ pip cache purge

再度、PyTorchをインストールする。ただし、上記の通り PyTorch公式が公開している Preview版(RTX 5070ti対応)のインストーラを使う。
後日、Stable版が更新されたら入れ替えを忘れずに。
追記: 2025.05.21 CUDA 12.8用 Stable版が公開されたので、そちらを使う。

指定されたページで CUDA12.8を選択すると、その下に pipコマンドが表示される。この通りにインストールすればよい。
https://pytorch.org/get-started/locally/

(myPyTorch) $ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

追記: 2025.05.21 ↑↑↑ CUDA 12.8用 Stable版が公開されたので、コマンドを変更済み。

Step 6/6: PyTorchを使ってみる。

Pythonを起動し、Python shell上で以下を実行してみる。
単純な二次元配列の足し算だ。

>>> import torch
>>>
>>> device = torch.device(“cuda” if torch.cuda.is_available() else “cpu”)
>>> device
device(type=’cuda’)
>>>
>>> a = torch.rand(10000, 10000, device=device)
>>> b = torch.rand(10000, 10000, device=device)
>>>
>>> a+b
tensor([[1.1051, 1.7026, 0.4868,  ..., 1.2196, 0.6159, 1.2123],
        [1.7712, 0.9288, 1.0838,  ..., 1.1087, 0.8116, 1.3092],
        [0.1965, 0.6683, 1.2354,  ..., 0.5542, 0.9295, 1.1723],
        ...,
        [0.5446, 0.9329, 1.0721,  ..., 0.8439, 0.6026, 1.2240],
        [0.6722, 1.0614, 0.5205,  ..., 0.3612, 1.4174, 0.6487],
        [1.1193, 1.4363, 0.9264,  ..., 0.4703, 1.2994, 0.9731]],
       device=’cuda:0′)
>>>

OKだ!正しくテンソル計算ができた。
因みにテンソル(tensor)とは、プログラムで使用する多次元配列のこと。

多次元配列の計算がシンプルに記述できるのが、Python, MATLAB, FORTRANなどの機械学習で使われる言語の特徴だ。
初めてFORTRANに触れたのが 1990年だから、もう35年も前か・・・

【3】追加作業

(1) DKMS (Dynamic Kernel Module Support) も入れておく。

DKMS : Dynamic Kernel Module Support
カーネルがアップデートされるたびに、自動でモジュールを再ビルド&インストールしてくれる。
※ sudo apt upgrade で依存関係が壊れる事態を回避できる。

nvidia-dkms-570-openとは?
NVIDIAのオープンソース版 GPUドライバ(570系列)のカーネルモジュール を自動的にビルド・管理するためのパッケージ。
NVIDIAのドライバは、ユーザ空間ライブラリ群(libcuda, libnvidia-mlなど)とカーネルモジュール(nvidia.ko)の両方から成り立っている。
nvidia-dkms-570-open は、このカーネルモジュールをカーネルのバージョンに合わせて自動でビルド&インストールしてくれる。

$ sudo apt install --reinstall nvidia-dkms-570-open
$ sudo update-initramfs -u
$ sudo reboot

【4】応用

PyTorchを使った機械学習&自動認識プログラムを動かしてみた。

(30)【PyTorchでMNIST #1】GeForce RTX 5070tiで高速実行
(31)【PyTorchでMNIST #2】GPU vs CPU どちらが速い?
(32)【PyTorchでMNIST #3】理解の助けになるミニマム実装(CPU用、GPU用)
(33)【PyTorchでMNIST #4】プログラムの保守性を向上させる。
(34)【PyTorchでMNIST #5】学習済みパラメータファイルを指定可能にする。
(35)【PyTorchでMNIST #6】不正解画像と判定結果をJPEG画像出力する。
(36)【PyTorchでMNIST #7】自筆画像PNGファイルを自動認識させる。
(40)【PyTorchでMNIST #8】自動認識をWebサービス化する。
(38)【PyTorchでCIFAR-10 #1】自動認識してみる。

【5】参考情報

PyTorch公式ページ

とても有益な情報をありがとうございます。m(_ _)m
https://qiita.com/xtrizeShino/items/56125ef057c6e88b4302


アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済
  • 2025-10-04: 4回
  • 2025-10-03: 21回
  • 2025-10-02: 21回
  • 2025-10-01: 17回
  • 2025-09-30: 11回
  • 2025-09-29: 23回
  • 2025-09-28: 23回
  • モバイルバージョンを終了