はじめに
本記事は Qiita AdventCalendar2022 Elixir vol2 16日目の記事です
EXLAをGPUモードで動かすためのセットアップに苦労したので手順をメモしておきます
Nvidiaのドライバインストールまではこれに沿っていきます
デフォルトドライバのdisable
ubuntuではGPUのドライバがデフォルトでnouveauというのが動いているので、無効化します
sudo vi /etc/modprobe.d/blacklist-nouveau.conf
以下の内容を書き込んで
blacklist nouveau
options nouveau modeset=0
以下のコマンドで反映させます
sudo update-initramfs -u
ドライバはapt installするとうまく動かなかったので本家からもらってきます
ここから該当するドライバをダウンロードして実行権限を付与して管理者権限で実行してください
https://www.nvidia.co.jp/Download/index.aspx?lang=jp
chmod +x NVIDIA-Linux-x86_64-525.60.11.run
sudo ./NVIDIA-Linux-x86_64-525.60.11.run
終わったら再起動してください
cudaのインストール
以下をポチポチするとコマンドが出てくるので随時実行していく
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda-repo-ubuntu2204-12-0-local_12.0.0-525.60.13-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-0-local_12.0.0-525.60.13-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
インストールが完了したらパスを通します
export PATH=/usr/local/cuda-12.0/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64:${LD_LIBRARY_PATH}
通したら再ログインか再起動してください
cudnn
直リンク集があるのでwgetする
https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/libcudnn8-dev_8.7.0.84-1+cuda11.8_amd64.deb
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/libcudnn8_8.7.0.84-1+cuda11.8_amd64.deb
sudo dpkg -i libcudnn8_8.7.0.84-1+cuda11.8_amd64.deb
sudo dpkg -i libcudnn8-dev_8.7.0.84-1+cuda11.8_amd64.deb
Elixirのインストール
こちらを参考にしてください
Elixirが最新版が必要なのでlatestを指定してください
asdf install elixir latest
asdf global elixir latest
Livebookの準備
git clone https://github.com/livebook-dev/livebook.git
cd livebook
mix deps.get
mix local.hex
mix local.rebar
MIX_ENV=prod mix phx.server
Livebookで動作確認
何度か再起動したりするので新しいノートブックを作成し保存してください
setupに以下を追加します
Mix.install(
[
{:kino_bumblebee, "~> 0.1.0"},
{:exla, "~> 0.4.1"}
],
config: [nx: [default_backend: EXLA.Backend]],
system_env: [
XLA_TARGET: "cuda111"
]
)
smart cellで Neural Network taskを追加します
top-k に適当に5を入力してなんか画像を入れてrunしてください
そのあとエラーでこれが足りない、あれが足りないといってくるのでそのファイルを
sudo find / -name xx
で検索して
sudo cp xx /usr/local/cuda-12.0/lib64/
にコピーしてください
これをエラーが出なくなるまで続けます
無事動くようになったらこんな感じで動きます
最後に
anacondaとか入れて色々やってみましたが、
ドライバはインストーラー
cudaは本家
cudnnはリンク集から取ってきて展開
あとは実行しながら足りないファイルをひたすらcuda-12.0/lib64/
にコピー
が楽そうな気がしました
本記事は以上になりますありがとうございました
おまけ
ubuntuのサーバーでlivebookを動かしながら別PCのブラウザで見たい時は以下の ipを 0.0.0.0 にすれば同一ネットワーク内では見れるようになります
import Config
# Default bind and port for production
config :livebook, LivebookWeb.Endpoint,
+ http: [ip: {0, 0, 0, 0}, port: 8080],
- http: [ip: {127, 0, 0, 1}, port: 8080],
server: true
参考サイト
https://qiita.com/cinchan/items/9718e1f26146dc5e3eaa
https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/
https://atsuyakoike.hatenablog.com/entry/2019/08/08/214530
https://take6shin-tech-diary.com/ubuntu2204_ml/#toc5
https://qiita.com/ktokey/items/7ee9c112198a6b0b5709
https://qiita.com/1ain2/items/194a9372798eaef6c5ab
https://touch-sp.hatenablog.com/entry/2022/05/05/114358