LoginSignup
17
3

More than 1 year has passed since last update.

はじめに

本記事は 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を追加します
スクリーンショット 2022-12-17 23.48.19.png
top-k に適当に5を入力してなんか画像を入れてrunしてください

スクリーンショット 2022-12-17 23.48.39.png

そのあとエラーでこれが足りない、あれが足りないといってくるのでそのファイルを

sudo find / -name xx で検索して
sudo cp xx /usr/local/cuda-12.0/lib64/ にコピーしてください

これをエラーが出なくなるまで続けます

スクリーンショット 2022-12-17 23.59.13.png

無事動くようになったらこんな感じで動きます

最後に

anacondaとか入れて色々やってみましたが、
ドライバはインストーラー
cudaは本家
cudnnはリンク集から取ってきて展開
あとは実行しながら足りないファイルをひたすらcuda-12.0/lib64/にコピー
が楽そうな気がしました

本記事は以上になりますありがとうございました

おまけ

ubuntuのサーバーでlivebookを動かしながら別PCのブラウザで見たい時は以下の ipを 0.0.0.0 にすれば同一ネットワーク内では見れるようになります

config/prod.exs
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

17
3
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
17
3