WSLとCUDA: 高性能計算のための環境設定手順

1月 26, 2024

はじめに

WSL(Windows Subsystem for Linux)は、Windows上でLinux環境を実行することができる機能です。WSL(Windows Subsystem for Linux)とCUDAを組み合わせて使用することで、WindowsとLinuxのベストな部分を統合し、より効率的な開発環境を構築することができます。この記事では、WSLにCUDAをインストールする手順を詳細に解説します。この情報を用いて、CUDAを活用した高性能な計算が可能な開発環境をWSL上で簡単に設定できます。

前提条件

CUDAをWSLで使用するには、以下の前提条件が必要です。

  • Windowsバージョン: Windows 10 Insider Preview Build 20150以降またはWindows 11。Windows 10の場合、サポートが切れていないWindows 10、Version 22H2でも問題ありません。
  • NVIDIAドライバ: WSL2と互換性のあるNVIDIA GPUドライバが必要です。具体的には、バージョン460.20以降のドライバが必要です。ドライバは、NVIDIAの公式サイトからダウンロードしてインストールすることができます。

詳細はMicrosoftの公式ガイドを参照してください。

WSLとCUDAのバージョンについて

WSLとCUDAを組み合わせて使用する場合、WSLとCUDAのバージョンに互換性があることが重要です。具体的には、以下のような組み合わせが推奨されます。

  • WSL1: WSL1では、CUDAはサポートされていません。そのため、WSL1を使用する場合は、CUDAを使用することができません。
  • WSL2: WSL2では、CUDA 10.1以降がサポートされています。ただし、最新のCUDAバージョンを使用することが推奨されます。

また、WSLとCUDAのバージョンによっては、一部の機能が制限される場合があります。詳細はNVIDIAの公式ドキュメントを参照してください。

WSLとCUDAの利点

WSL 2(Windows Subsystem for Linux 2)上でCUDAを使用することにはいくつかの優れた利点があります。

  1. 統合環境: WindowsとLinuxの両方で作業ができるため、開発環境が統合されます。これにより、Windowsでの作業とLinuxでの作業をスムーズに行いやすくなります。
  2. シームレスな移行: 既存のLinuxベースのCUDAアプリケーションを、特別な変更を加えることなくWindows上で動かすことができます。
  3. デバッグとテスト: WSL 2上でCUDAアプリケーションをテストすることで、Linux環境での動作を確認しながら、Windows上でのデバッグやその他の作業を続けることができます。
  4. リソースの効率的な利用: WSL 2はWindowsとリソース(CPU、メモリ、ディスクなど)を共有するため、別途Linuxマシンを用意する必要がありません。
  5. ソフトウェアの互換性: 一部の科学計算やデータ解析、機械学習のライブラリはLinux環境でしか利用できない場合があります。WSL 2を使用することで、これらのライブラリをWindowsマシン上で利用できます。
  6. 開発のスピードアップ: WSL 2上でCUDAを使用することで、コードのビルドからテスト、デバッグまでのサイクルを高速化できます。

WSLのインストール

  1. PowerShellを管理者として開く: スタートメニューから「Windows PowerShell」を検索し、右クリックして「管理者として実行」を選びます。
  2. WSLの有効化: PowerShellで以下のコマンドを実行してWSLを有効にします。dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  3. 仮想マシンプラットフォームの有効化: PowerShellで以下のコマンドを実行して仮想マシンプラットフォームを有効にします。dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  4. Linuxディストリビューションのインストール: Microsoft Storeから好きなLinuxディストリビューション(Ubuntu, Fedoraなど)を選び、インストールします。

インストール手順

CUDAのインストール

  1. リポジトリの追加: 以下のコマンドを実行してCUDAのリポジトリを追加します。sudo apt-add-repository multiverse sudo apt update
  2. CUDAパッケージのインストール: 以下のコマンドでCUDAをインストールします。sudo apt install nvidia-cuda-toolkit
  3. CUDAのバージョン確認: CUDAのインストールが完了したら、以下のコマンドを実行してCUDAのバージョンを確認することができます。nvcc --version
  4. 環境変数の設定: CUDAを使用するためには、環境変数`PATH`と`LD_LIBRARY_PATH`を設定する必要があります。以下のコマンドを実行して、環境変数を設定します。export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
  5. サンプルプログラムの実行: CUDAには、サンプルプログラムが付属しています。これらのサンプルプログラムを実行することで、CUDAが正しくインストールされているかどうかを確認することができます。

動作確認

インストールが正常に完了したかを確認するには、以下の手順を実行します。

  1. CUDAバージョンの確認: 以下のコマンドを実行してCUDAのバージョンを確認します。nvcc --version 出力される情報でCUDAのバージョンが表示されれば、インストールは成功です。
  2. GPU状態の確認: 以下のコマンドを実行してGPUの状態やCUDAのバージョンを確認します。nvidia-smi 出力される情報でGPUの状態やCUDAのバージョンが表示されれば、インストールは成功です。なおこのコマンドは、NVIDIAのGPUドライバがインストールされていれば、CUDAをインストールする前でも、WSLインストール時にすでに使える状態です。

WSLとCUDAのパフォーマンス

WSL2(Windows Subsystem for Linux 2)は、Windows 10およびWindows 11でLinuxコマンドラインツールを直接実行できるようにする機能です。NVIDIAは、WSL2でのCUDAドライバーのパフォーマンスを最適化することに焦点を当てており、複数の重要なドライバーパスを分析して最適化しています。これにより、WSL2上でのCUDAドライバーのパフォーマンスが向上しました。

ただし、WSL2でのCUDA使用にはいくつかの制約があります。例えば、WSL2でサポートされていない機能があります。また、WSL2でのCUDA使用には、特定のカーネルバージョン(5.10.43.3以上)が必要です。

WSL2でのCUDA使用には多くの利点があります。例えば、既存のMLツール、ライブラリ、および人気のあるフレームワーク(PyTorchやTensorFlowなど)をWSLインスタンス内でGPUハードウェアアクセラレーションを使用して実行できます。これにより、データサイエンス、機械学習、および推論にNVIDIA GPUアクセラレーションコンピューティング技術を活用することができます。

トラブルシューティング

インストール中に問題が発生した場合は、以下の一般的な解決策を試してください。

  1. ドライバの更新: NVIDIAドライバが最新でない場合、更新してください。
  2. 再起動: システムの不具合を解消するために、PCを再起動してみてください。
  3. エラーログの確認: エラーが発生した場合は、エラーログを確認して具体的な問題点を特定します。
  4. WSL2のカーネルバージョン: WSL2でCUDAを使用するためには、特定のカーネルバージョン(5.10.43.3以上)が必要です。カーネルバージョンが古い場合は、更新してください。
  5. GPUドライバーの互換性: WSL2と互換性のあるNVIDIA GPUドライバーが必要です。ドライバーが互換性がない場合は、更新してください。
  6. ハードウェアの互換性: CUDAを使用するためには、CUDA対応のNVIDIA GPUが必要です。GPUがCUDA対応でない場合は、CUDAを使用することができません。

まとめ

この記事では、WSL(Windows Subsystem for Linux)上でCUDAをインストールして利用する方法を詳しく解説しました。この設定を通して、WindowsとLinuxの統合環境で、CUDAを活用した高性能計算が可能になります。前提条件、インストール手順、動作確認、トラブルシューティングについて具体的な指南を提供していますので、ぜひ参考にしてください。

次のステップとして、実際にCUDAを活用したアプリケーションやプロジェクトに取り組むことが考えられます。WSLとCUDAの組み合わせは、開発者にとって非常に強力なツールとなり得るでしょう。

参考文献

この記事の作成にあたり、以下の資料を参考にしました。

これらの資料は、WSLとCUDAに関する詳しい情報が記載されています。さらに詳しい情報が必要な場合は、これらの資料を参照してください。

教育

Posted by admin