Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
EXLAでcudaが動作する環境の構築と実際にNxで動かしたデモ
Search
masahiro-999
November 10, 2022
Programming
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
EXLAでcudaが動作する環境の構築と実際にNxで動かしたデモ
Nxバックエンド勉強会#7
EXLAでcudaが動作する環境の構築と実際にNxで動かしたデモ
masahiro-999
November 10, 2022
Other Decks in Programming
See All in Programming
golang-bob.pdf
iwatsukayura
0
130
Jetpack Compose Mechanisms
skydoves
3
820
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
630
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.2k
ジョジョの世界をXRで再現する
mofurune
0
170
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
140
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.2k
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
3
440
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
0
100
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
For a Future-Friendly Web
brad_frost
184
10k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
270
Done Done
chrislema
187
17k
YesSQL, Process and Tooling at Scale
rocio
174
15k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
640
The agentic SEO stack - context over prompts
schlessera
0
970
The SEO identity crisis: Don't let AI make you average
varn
0
590
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
540
Transcript
EXLAでcudaが動作する 環境の構築と実際にNx で動かしたデモ @GeekMasahiro
自己紹介 Twitter/Qiita @GeekMasahiro 会社員 自社サービスのソフトウエア開発、運営( AWS, Python, vue.js等) 趣味 Elixir、電子工作全般、ソーラー発電、 3DPrinter Elixirを2022年7月に出会って、趣味に追加。楽しいので本業にも活用したい。
2
今回の目標 目標 • NxにEXLAを導入してGPUで演算を行えるようにする 環境 • nvidiaのGPU(RTX3060)を使用 • Windows11のWSL環境で使用する 3
GPU購入 NxでGPUを使ってみたい! Ethereumのマイニングが終わって価格 も戻ってきた 買いしました。 4
GPU取り付け 大きさ的に、内蔵できなかったので、 PCIeの延長 ケーブルを購入して外置き GPU用の電源も購入 PCの電源と連動する仕組みは電子工作。 5
ドライバーインストール(Windows側) https://developer.nvidia.com/cuda/wsl 6
WSL側の環境構築 nvidia社のドキュメントにWSL環境についての記述がある。この通りで動作する。 https://docs.nvidia.com/cuda/wsl-user-guide/index.html#getting-started-with-cuda-on-wsl CUDA Toolkit 11.8 Downloads(内容は同じ) https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distri bution=WSL-Ubuntu&target_version=2.0&target_type=deb_network 7
EXLAで使う場合の注意 sudo apt-key del 7fa2af80 wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin sudo mv cuda-wsl-ubuntu.pin
/etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/3bf863cc.pub sudo add-apt-repository 'deb https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/ /' sudo apt-get update sudo apt-get -y install cuda=11.1.0-1 #バージョン指定する 最新のバージョン(1.1.8だとうまく動作しない)ので、 11.1.0-1を指定 xlaのissue報告中。https://github.com/elixir-nx/xla/issues/23 8
動作確認 Mix.install([ {:nx, "~> 0.3.0"}, {:exla, "~> 0.3.0"}, ], config:
[ nx: [ default_backend: EXLA.Backend, default_defn_options: [compiler: EXLA], ] ], system_env: [ XLA_TARGET: "cuda111" ], force: false, ) Nx.add(Nx.tensor([1]), Nx.tensor([1])) iexのプロンプトで実行 9
実行結果 cudaで作成されている 10
デモ • Config.exsの働き • cpu/cudaでの速度比較 • GPUが動いている様子を観察 11
EXLAを使用する設定 import Config config :nx, :default_backend, EXLA.Backend config :nx, :default_defn_options,
compiler: EXLA 12
XLA_TARGETの指定 export XLA_TARGET=cuda111 mix deps.clean --all rm -Rf ~/.cache/xla/ mix
deps.get iex -S mix cpuを使う場合は、XLA_TARGET=cpu ※変更した場合、deps.cleanが必要。~/.cache/xla/を削除しないとEXLAのコンパイルエラーになる。 13
GPU動作状況の確認(nvidia-smi) 14
速度比較 200x200,2000x2000の単位行列の内積の演算時間を比較 条件 200x200 Exla使用しない 2.03sec cpu 0.0752sec rate 26倍
条件 2000x2000 cpu 12.4sec cuda 0.911us rate 13.6倍 15