CUDA開発環境について試したものをまとめる。CUDA開発環境(CUDA Toolkit)はLinux, Windowsのマルチプラットフォームに対応しており、ユーザーが好きな環境を選ぶことができる。
1. ネイティブLinux
Linux専用マシンを用意できればの話ではあるが、物理マシンにLinuxを直接インストールしてある環境を整えるのが一番シンプルで楽である。(結論)
GPU実行、デバッグ、プロファイルやりたいこと全てができる。
2. VirtualBox + Linux
筆者はWindows PCしか持っていないかつ、Linux環境でCUDAプログラムを作成したいため、VirtualなLinuxを使えないか試みた。
VirtualBox + Linuxはできなくはないが、環境構築のハードルが高く断念した。
通常、仮想環境からだとホストPCのGPUを見ることができず、PCIパススルーという手段を講じなければならない。
PCIパススルーをするとホストはGPUを利用できなくなるため、グラボが複数ないとホストの画面出力等ができなくなってしまうらしい。。
サルでもできるGPUパススルー
https://zenn.dev/190ikp/articles/vagrant_libvirt_gpu
3. WSL
WindowsにGPUドライバー、WSLにCUDA ToolkitをインストールすればWSL内部でGPU実行ができる!
とぬか喜びしたが、デバッガーやプロファイラはサポート外のようで動作しない(2022/05/06現在)。
CUDA実行するだけで良いならWSLは簡単でおすすめ。
4. Windows
Windows環境での開発はあまり経験がないためこれから勉強予定。
Visual StudioやVScodeにCUDA用プラグインが用意されている。
GPU実行、デバッガー、プロファイラはすべて動くはず。
環境名 | 開発ベース環境 | GPU実行 | デバッガ | プロファイラ | 備考 |
---|---|---|---|---|---|
ネイティブLinux | Linux | ○ | ○ | ○ | |
VirtualBox + Linux | Linux | ○ | ○ | ○ | 環境構築の難易度高 |
WSL | Linux | ○ | - | - | Tool利用不可 |
Windows | Windows | ○ | ○ | ○ |
結局、物理マシンに直接乗ってるOSで開発するのが手っ取り早いのか(?)