🍄

ArchLinuxにcudaをインストールする手順

2024/10/05に公開

cuda

もはやAIを使うのに必須のcudaですが、調べても全然出てこなかったのでここに書きます。

/etc/os-rekease
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

上の環境で行きます。

gccのインストール

今回はcuda12-1をインストールしたいためgcc12が必要です。cuda11-8はgcc11ですね。
AURヘルパーが入っている場合はyay -S gcc12とかしておけばいいです。
今回はヘルパー使わない方で。

ターミナル
git clone https://aur.archlinux.org/gcc12.git
cd gcc12
makepkg -si

で終わるんですが、、、めっちゃ長いです。
仮眠取れるくらいには長いので覚悟の上。

cudaをインストール

早速本題のcudaであります。
https://gitlab.archlinux.org/archlinux/packaging/packages/cuda
にあります。

ターミナル
git clone https://gitlab.archlinux.org/archlinux/packaging/packages/cuda.git
cd cuda
git tag --list
git switch 12.1.1-4
sudo pacman -S opencl-nvidia
makepkg

でパッケージのビルドが始まるはず。。。なんですが私の環境ではうまく行きませんでした。
cuda_12.1.1_530.30.02_linux.runというファイルのダウンロードがうまく行かないようです。
実際ダウンロードが途中で止まります。

上の症状が出たときは

おそらく失敗したときにログにURLが出るはずなのでそれをブラウザで開いてダウンロードするのがいいと思います。
私は他のパソコンでダウンロードしてそれをscpで送信しました。(cudaディレクトリ内に)
あとはPKGBUILDを編集して

...
source=(cuda_12.1.1_530.30.02_linux.run
...

みたいにURLからファイル名だけにしてね。

成功したら2つの.zstファイルができるのでそれらを

ターミナル
sudo pacman -U cuda-12.1.1-4-x86_64.pkg.tar.zst cuda-tools-12.1.1-4-x86_64.pkg.tar.zst

でインストール。

パスを通すなどなど

まず/usr/local/cudaにシンボリックリンクを

ターミナル
sudo ln -s /opt/cuda /usr/local/cuda

あとは~/.bashrcとかに以下を追記。

export PATH="${PATH}:/usr/local/cuda/bin"
export LD_LIBRARY="${LD_LIBRARY}:/usr/local/cuda/lib64"

あとはsourceコマンドで再読込して

ターミナル
nvcc --version

でcommand not foundとかにならなければOK。

勝手にアップデートされないように

cudaってバージョンが変えられると迷惑なので固定しておきましょう。
/etc/pacman.confを開いて

pacman.conf
...
-#IgnorePkg   =
+IgnorePkg   = cuda cuda-tools
...

のように編集してね。
これでsudo pacman -Syuしても大丈夫。

終わり

わかりにくいとか言わなでください。あとはChatGPTとかに聞いてください(投げやり)

Discussion