背景
ついに Sandy Bridge おじさんを卒業しました。
PC を一新したので、とりあえず CUDA 環境作りたいな?と思いました。
旧 PC では GeForce GTX560Ti とかいう化石 GPU で CUDA を触っていましたが、新 PC は GeForce RTX2070 なので、色々とどれくらい早くなるのか試してみたい。
旧 PC では Windows7 と Ubuntu14.04 LTS のデュアルブートで、CUDA は Ubuntu 上で使用していました。
ただ、資料作成とかは Windows 側でするので、開発と資料作成でブート切り替えるのは非常に面倒でした。
というわけで、今回は Ubuntu の仮想環境上に CUDA 環境を構築しようと思いました。
あと、個人的な印象ですが CUDA 環境インストールって失敗しやすくて面倒なイメージが強いんですよね。
何かと失敗するだろうなと言う意味でも、仮想環境が良いかなって思った次第です。
ところで、仮想環境で GPU って認識するんですか?って話ですが、結果的に認識しませんでした。
詰みです。
実験
Windows10 Pro を買ったので標準で搭載されている Hyper-V 使いました。
- Ubuntu 18.04 LTS
- Hyper-V のクイックインストールで入るやつ
- CUDA 10.1
- 公式のインストール方法をそのまま
これだけです。
結果・考察
正直、lspci コマンドで確認したときから気づいてましたが、Hyper-V では GPU 認識しないっぽいです。
詰みです。
Hyper-V が無理っていうより、DDA ( Discreate Device Assignment ) っていう機能が Hyper-V にはあって、DDA が使えれば GPU を仮想環境から認識できるみたいですが、現状それが使えるのは Windows Server 2016 (今は 2019 も?) くらいみたいです。
以下、参考ページです。
[Hyper-V上のUbuntuでCUDAを導入する Windows 10ではだめでした。。。]
(https://qiita.com/Masutani/items/4309e6f9ca0141a08471)
["Which graphics virtualization technology is right for you?"]
(https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/rds-graphics-virtualization)
ちなみに今流行りの docker とかならいけるか?と思って調べましたが、ホストOSが Windows だと駄目っぽい。
【TensorFlow】Docker for Windowsで動かす機械学習!
その他・知見
CUDA のインストール自体はすんなり行きました。
機械学習で GPGPU が一般的になってパッケージも整理されたのでしょうか。助かります。
HDD 割当容量が足りなくて一回インストール中にディスクフルになったのは内緒です。
直接は関係無いですが、CUDA の主な使用目的として python で tensorflow を使おうと思っていました。
ただ、tensorflow(>=1.13.0)は、CUDA10.0しか対応してないみたいです。
import しようとしたら CUDA のライブラリが無いぞ!!ってキレられました。
何かやりようはありそうですが、そもそも GPU 認識してないのでここで終了です。
今後の予定
仮想環境は詰み、またデュアルブートは嫌ということで、今回の PC では Windows 環境で CUDA 開発環境を整えようと思います。
Windows10 だと WSL (Windows Subsystem for Linux) なんていう機能が標準であるみたい。
Windows で ubuntu のコマンドが使えたり(というかほぼ ubuntu )と、mingw や sygwin, msys が不要な環境を作れるかも?
【WSL入門】第1回 Windows 10標準Linux環境WSLを始めよう
WSLでも、GPU などの ハードウェアはやはり認識しないようですが、WSLはwindows バイナリも動かせるということで、CUDA 対応した python コードを動かせるそうです。
えるしってるか WSLではwindowsのバイナリを実行できる
というわけで、次は windows10 に CUDA をインストールからの WSL 環境構築かなぁ…