$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Chainerのテスト環境と DockerでのCUDAの利⽤
Search
Yuya Unno
March 19, 2016
Technology
0
13
Chainerのテスト環境と DockerでのCUDAの利⽤
Yuya Unno
March 19, 2016
Tweet
Share
More Decks by Yuya Unno
See All by Yuya Unno
深層学習で切り拓くパーソナルロボットの未来 @東京大学 先端技術セミナー 工学最前線
unnonouno
0
21
深層学習時代の自然言語処理ビジネス @DLLAB 言語・音声ナイト
unnonouno
0
40
ベンチャー企業で言葉を扱うロボットの研究開発をする @東京大学 電子情報学特論I
unnonouno
0
38
PFNにおけるセミナー活動 @NLP2018 言語処理研究者・技術者の育成と未来への連携WS
unnonouno
0
11
進化するChainer @JSAI2017
unnonouno
0
19
予測型戦略を知るための機械学習チュートリアル @BigData Conference 2017 Spring
unnonouno
0
17
深層学習フレームワーク Chainerとその進化
unnonouno
0
19
深層学習による機械とのコミュニケーション @DeNA TechCon 2017
unnonouno
0
28
最先端NLP勉強会 “Learning Language Games through Interaction” @第8回最先端NLP勉強会
unnonouno
0
13
Other Decks in Technology
See All in Technology
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
1
200
Microsoft Agent Frameworkの可観測性
tomokusaba
1
110
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
2.3k
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
2
1.9k
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
190
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
17
2.8k
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
1.6k
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
770
Agent Skillsがハーネスの垣根を超える日
gotalab555
6
4.5k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
9.9k
New Relic 1 年生の振り返りと Cloud Cost Intelligence について #NRUG
play_inc
0
240
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
220
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
0
30k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
680
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
210
Crafting Experiences
bethany
0
22
Odyssey Design
rkendrick25
PRO
0
440
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
0
96
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.1k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5k
Transcript
Chainerのテスト環境と DockerでのCUDAの利利⽤用 (株)Preferred Infrastructure 海野 裕也 (@unnonouno)
⾃自⼰己紹介 海野 裕也 l -2008 東⼤大情報理理⼯工修⼠士 l ⾃自然⾔言語処理理 l 2008-2011
⽇日本アイ・ビー・エム(株)東京基礎研 l テキストマイニング、⾃自然⾔言語処理理の研究開発 l 2011- (株)プリファードインフラストラクチャー l ⾃自然⾔言語処理理、情報検索索、機械学習、テキストマイニングなど の研究開発 l 研究開発系案件、コンサルティング l JubatusやChainerの開発 l 最近は対話処理理 NLP若若⼿手の会共同委員⻑⾧長(2014-) 「オンライン機械学習」(2015, 講談社) 2
Chainerキートップ 3
4
初期のChainerが主に依存しているライブラリ l OS l Ubuntu14.04, CentOS 7 l Python l
2.7, 3.4 l CUDA l 6.5, 7.0 l cuDNN l v2 5 2x2x2=8通りの環境
そんなにテストいるの・・・? l protobufがPy3で動かない l 依存してたライブラリがある⽇日突然消えた l CUDA 6.5だけ最適化のバグを踏む(キャスト周 り) l
新しいcuDNNがABIを壊す l NumPyのバージョンが上がると挙動が変わる l pipやsetuptoolsのバージョンがそれぞれ10個 位ある l Python 3.5.0だけGC時のバグを踏む 6
悲痛な叫び 7
⾃自動テストをしよう 8
既存のCIサービスはGPUに⾮非対応 9
よし、Jenkinsを使おう! 10
Jenkinsとは? l 最もメジャーなオープンソースの継続的インテ グレーションツール l リポジトリを監視して、特定の条件でジョブを ⾃自動実⾏行行してくれる l テストを実⾏行行するようにすれば、⾃自動テスト環 境ができる
11
テストと仮想環境 l 8台のマシンを⽤用意せずに、複数の環境を1台の マシン上でテストしたい 12
Dockerとは? l コンテナ型仮想化技術 l 詳細を語れるほど詳しくないのでググって下さい l 起動が超早い(重要) l Dockerfileに環境のセットアップ⽅方法を書いて おくとキャッシュが効く
l Dockerfile内に環境のセットアップを書いておく 13
こんな感じ 14
Chainerの⾃自動テスト環境 15 Githubを監視 Dockerコンテナ 上でテスト実行
ところで・・・ CUDAのプログラムって Dockerで動くんですか? 結論論:動きます! 16
Dockerfileの準備 l .runファイルをダウンロードして解凍 l 中のドライバとCUDAをインストール RUN ./installers/NVIDIA-Linux- x86_64-352.39.run -s -N
--no-kernel-module && ./installers/cuda-linux64- rel-7.5.18-19867135.run --noprompt 17
問題1: GPUが⾒見見えない l ふつうに起動するとGPUがゲストから⾒見見えない l --deviceオプションを渡すと⾒見見えるようになる $ docker run --device
/dev/nvidia0 -- device /dev/nvidiactl --device /dev/nvidia- uvm chainer nvidia-smi 18
問題2: 古いCUDAが動かない l ホストとゲストで別バージョンを⼊入れると動かない l 同じバージョンのドライバを使わないとダメ l ホストもゲストもCUDA7.5付属のドライバだけ⼊入れて、 ゲスト側はライブラリだけ別のバージョンを⼊入れる RUN
./installers/NVIDIA-Linux- x86_64-352.39.run -s -N --no-kernel-module RUN ./installers/cuda-linux64- rel-7.0.28-19326674.run -noprompt 19
問題3: nvidia-uvmが消失する l 起動直後には /dev/nvidia-uvm がない l 経験的に、sampleのdeviceQueryを実⾏行行すると ⽣生成されることが知られている l
/dev/nvidia-uvmがなかったらdeviceQueryを実 ⾏行行するようにスクリプトを書いておく(あとで もっといい⽅方法があるよ) 20
問題4: ドライババージョンが合わない l nvidia-352.63が公開されて、バージョンが上 がっちゃった l ホストドライバが新しくなって、バージョンの 不不⼀一致問題が再燃 \(^o^)/ l ドライバのバージョンを戻せば・・・いいの
か・・・? 21
nvidia-dockerをつかう l さすがにしんどいので探したら、NVIDIAがCUDA⽤用の Dockerラッパーを作っていた l https://github.com/NVIDIA/nvidia-docker 22
nvidia-dockerは何をしてくれるのか・・・? l 今説明したことを全部⾃自動で解決し てくれるdockerコマンドのラッパー l 今までの苦労は・・・ 23
nvidia-dockerでのドライバ問題 l ホスト側のドライバ関連ファイルをVolumeで全部ゲス トから⾒見見えるようにしている(!) l ホストの環境に依存せずに使える 24
nvidia-dockerでのnvidia-uvm問題 l /dev/nvidia-uvmがなかったら、nvidia- modprobeを実⾏行行している(deviceQueryいらん かった) 25 nvidia-docker/tools/src/nvidia/nvidia.go
nvidia-dockerでのCUDA, cuDNNのバージョン l CUDA 6.5, 7.0, 7.5 l cuDNN v2,
v3, v4 l ⾃自分で⽤用意しなくていいのね・・・ 26
まとめ nvidia-docker使いましょう 27
テスト環境のソース類 l https://github.com/pfnet/chainer-test l run_xxx.pyを実⾏行行すると、Dockerfileを⽣生成し て、docker buildとnvidia-docker runを実⾏行行 l -iを渡すと、bashが起動してデバッグできる
28
ところで、作ってる間に増えてきた・・・ l OS l Ubuntu 14.04, CentOS 7 l Python
l 2.7, 3.4, 3.5 l CUDA l 6.5, 7.0, 7.5 l cuDNN l v2, v3, v4 l numpy l 1.9, 1.10 29 2x3x3x3x2=108通り
⽬目がシパシパする 30
え、まだ増えるの・・・ l OS l Ubuntu 14.04, CentOS 7, Ubuntu 16.04
l Python l 2.7, 3.4, 3.5 l CUDA l 6.5, 7.0, 7.5, 8.0 l cuDNN l v2, v3, v4 l numpy l 1.9, 1.10, 1.11 l protobuf l 2.7, 3.0 31
ご清聴ありがとうございました