WindowsへのNVIDIA CUDAのGPU環境構築

スポンサーリンク
PyTorch
スポンサーリンク

WindowsネイティブへのNVIDIA CUDAのGPU環境構築の詳しい手順をまとめます。Stable DiffusionやCPT、Whisperなどの最近、大発展を遂げているAIを使うには今は不可欠になっています。ここでは、CUDAのGPU環境の前準備となるツールのインストールします。以前もおなじような記事をまとめたのですが、分かりにくい部分に追加の画像を加えたり、説明を追加したりしています。

※より最新のバージョンに対応したアップデート記事もご参考ください
WindowsへのNVIDIA CUDAのGPU環境構築(2023年9月最新版)

GPU環境構築のためのPC

まず、準備として、お使いのPCがNVIDIA製のGPUを搭載していることが前提となります。PCのGPUは「CTRL」+「ALT」+「DEL」でタスクマネージャーを開いて、「パフォーマンス」の中のGPUから確認できます。また、GPUのVRAM容量は「専用メモリ」のところから確認できます。もし、お使いのPCがオンボードのGPUしかない場合は、Google Colabのクラウド環境を使うか、新しいPCの買い替えを検討してください。(参考記事:生成系AIを使うためのGPU搭載おすすめパソコン)AMD社のRADEONのGPUの場合は、CUDAの代わりにROCmを使えばできるようですが、私はやったことがないのでわかりません。もし、1からPCを準備する場合は個人的には情報量の多いNVIDIA製GPUをお勧めします。

NVIDIAドライバの更新

まず下記のNVIDIAのWebサイトから、構成にあった最新のドライバを確認し、最新になっていない場合は、インストールします。(2023/07/22追記: 現在NVIDIAの最新のドライバーには深刻なバグがあるとのうわさをTwitterで見ました。ドライバ更新はご注意ください。)

Build Tools for Visual Studio(C++コンパイラ)のインストール

CUDA Toolkitのインストールに先立って、C++のコンパイラを含むBuild Tools for Visual Studioをインストールしておきます。(WindowsにC++のコンパイラを含まないため)
下記から、Build Tools for Visual Studio2022をダウンロードして、インストールします

「Build Tools for Visual Studio2022」のインストーラーから「C++によるデスクトップ開発」と、左側の「v143ビルドツール用C++/CLIサポート(最新)」にチェックを入れて、インストールします。インストール後、再起動が促されるので、再起動します。

PyTorchソフトウエア要件確認

公式ページから要件を確認します。現状、安定版PyTorch1.13.1はCUDA11.7までしか対応していないようです。CUDA Toolkitは12.0が最新版ですが、現状、PyTorchに対応していないので、最新のCUDA12.0ではなく、CUDA11.7をインストールします。

CUDA Toolkit 11.7のインストール

公式ページからバージョンに注意して、アーカイブからCUDA Toolkit 11.7をインストールします。

CUDAインストール後、PATHを確認します。歯車のアイコンの「設定」を開いて、検索窓に「環境変数」と入れると出てくる「環境変数の編集」を選択します。「Path」を選んで「編集」を選択し、「cuda\v11.7\bin」と「cuda\v11.7\libnvpp」が登録されていることを確認します。もし、ない場合は、cudaがインストールされたフォルダを探して、この2つのPATHを手動で追加します。

PATHが通っていることを確認するためにターミナル等で「nvcc -V」で確認します。以下のような感じになっていれば、成功です。うまくいかない場合は、PCを再起動してみましょう。

> nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_May__3_19:00:59_Pacific_Daylight_Time_2022
Cuda compilation tools, release 11.7, V11.7.64
Build cuda_11.7.r11.7/compiler.31294372_0

cuDNNのインストール

公式ページにアクセスし、アカウント作成を行ってログインします。cuDNNは、GPUに対応したニューラルネットワークのライブラリです。プラットフォームとインストールしたCUDA ToolkitのバージョンにあったcuDNNをダウンロードします。

cuDNNをインストールするためには、NVIDIA Developerのmembershipに登録する必要があります。また、登録時にアンケートに答える必要があるかもしれないので、必要事項に入力してください。

もし、cuDNNが見つからない場合は、「Platforms」から「cuDNN」を探します。

「Download cuDNN」を選択します。

引き続き、「Agree To the Terms of the cuDNN Software License Agreement」にチェックを入れ、「~ for CUDA 11.x」の方を選択。「local installer for Windows」を選択し、インストーラーをダウンロードし、インストールします。

ダウンロードしたzipファイルを解凍します。中には「bin」「include」「lib」の3つのフォルダが入っているので、それをそのまま、先ほどCUDAをインストールしたフォルダ(例えば、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\)の中に入れます。

cuDNNのPATHを通します。こちらは自動では通らないので、自分で設定する必要があります。同じように「設定」から今度は「システム環境変数の編集」を開きます。そこから「環境変数」を選択して、システム環境変数の欄から「新規」を選択し、「変数名」に「CUDNN_PATH」を入れ、「変数値」に解凍した3つのcuDNNのフォルダを入れたPATHを入れます。今回の場合、上のCUDA_PATHの欄と同じPATHが入ると思います。(下の画像は設定後)

以上で設定環境です。お疲れさまでした。この時点でPCを再起動した方が良いです。

PyTorchをGPU環境で動かしてみる

PyTorchについては、インストールするアプリごとに仮想環境にインストールするのがおすすめですが、今回、試しに仮想環境にPyTorch環境を作ってみます。

Pythonの仮想環境構築

PyTorchが公式にサポートしているPythonのバージョンは3.7~3.9です。もし、Python3.9をインストールしていない場合は、Python3.9をインストールします。

参考記事:Windowsで複数のバージョンのPythonをインストールする

Pythonの公式ページから、Python3.9の安定版をインストールします。今回はPython3.9.13をインストーラーからインストールします。Pythonの公式ページからDownloadよりWindowsを選択し、各種バージョンの中から3.9でインストーラーがあるもので最も新しい3.9.13を選択し、ダウンロードし、メッセージに従いインストールします。

仮想環境を作っていきます。ターミナルを立ち上げて、「py -0」で確認すると、現在、この端末の場合、Python3.9, 3.10, 3.11がインストールされていることがわかります。

> py -0
 -V:3.11 *        Python 3.11 (64-bit)
 -V:3.10          Python 3.10 (64-bit)
 -V:3.9           Python 3.9 (64-bit)

今回、venvでPython3.9の仮想環境を作っていきます。仮想環境を構築したいフォルダを作ります。今回は今のフォルダに「test」というフォルダを作成し、その中に、仮想環境「venv」を作ることにします。仮想環境ができたら、「.\venv\Scripts\Activate.ps1」で仮想環境をアクティベートできます。

> mkdir test
> cd test
> py -3.9 -m venv venv 
> .\venv\Scripts\Activate.ps1
(venv) > python -V
Python 3.9.13

もし、この時、「このシステムではスクリプトの実行が無効になっているため、ファイル xxxx\test\venv\Scripts\Activate.ps1 を読み込むことができません。」というエラーが出た場合は、スクリプトの実行制限がされているので、セキュリティ設定を変更してやります。(詳しくはQiitaの参考記事参照

> Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
> Get-ExecutionPolicy
RemoteSigned
> .\venv\Scripts\Activate.ps1
(venv) > python -V
Python 3.9.13

Python3.9の環境が準備できました。

PyTorchのインストール

引き続きて、PyTorchを入れています。それに先立って、pipとsetuptoolsを「python -m pip install -U pip setuptools」で最新版にしてやります。続いて、PyTorchの公式ページに記載されているコマンドをコピーして実行します。

(venv) > python -m pip install -U pip setuptools
(venv) > pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117 

以上で、PyTorchのセットアップは完了です。

PyTorchのテスト

ターミナルでPythonを起動してみます。「pip torch」でインポートして、pytorchのバージョンやcuda環境が使用可能か、また、デバイス名を確認しました。

(venv) > python
Python 3.9.13  
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'1.13.0+cu117'
>>> torch.cuda.is_available()
True
>>> torch.cuda.get_device_name()
'NVIDIA GeForce GTX 1660 Ti'

これで、Stable DiffusionやGPT、WhisperなどのAIの実行環境が準備できました。

GPU環境のパソコン選びについて

もし、これからStable Diffusionなどをローカルで実行するためにパソコンを買いたいと思ったら、どんなパソコンにしようか悩ましいと思います。参考になるか分かりませんが、私は趣味レベルでAIで遊んでいるだけなので専門家ではありませんが、ライトにAIを楽しむ方の参考になればと思います。

GPU搭載1号機:Dell G5 5590
スペック:CPU Intel Core i7-9750H メインメモリ 32GB
     グラフィックボード NVIDIA GeForce GTX 1660 Ti(VRAM 6GB)

もともとフォートナイトなどのFPSをするためゲーム用に購入しました。メモリはゲーム用に増強しています。Stable Diffusionがリリースされた直後にメモリエラーに悩まされ導入に苦労し、通常版は動かすことはできませんでしたが、低スペックGPUの対応したフォーク版は動かすことができました。私のAIへの興味のきっかけをくれたPCです。その後、Stable DiffusionのWebUI(AUTOMATIC1111)など、低スペックでも動かせるものが出てきましたので、十分対応できています。Whisperもlargeモデルを使うとメモリオーバーになってしまいましたが、mediumまでは動かすことができました。AIの入り口には十分なスペックだと思います。GPUのメモリについては、4GBのものでも動くとの報告はあるようですが、私は試したことがないし、6GBでも結構ギリギリ感はあったので、今ならNVIDIA GeForce RTX 3060以上を搭載したモデルが無難かと思います。
GPU搭載2号機:自作デスクトップPC
スペック:CPU Intel Core i5-12400F (2.5GHz) メインメモリ 32GB
     グラフィックボード NVIDIA GeForce RTX 3080(10GB)

半年くらいAIで遊んでいると、もっと早いスペックのPCが欲しくなり、財布と相談し苦慮の上、昨年10月に購入したのがこの2号機です。自作は本当に久しぶりだったのですが、問題なく出来ました。本当はもう少しGPUのメモリを増やしたかったのと、負荷を分散させるためにCPUにもGPUが乗っているものにしたかったのですが、家族とのギリギリの予算攻防の上、将来の拡張の余地を残して、この構成になっています。現状、満足に使えています。現状はモデルの学習などはやったいませんが、そのあたりをしだすとしんどくなるかもしれません。

以上、私のパソコンの紹介でした。やりだすと、どんどんスペックの高いPCが欲しくなりますので、ひょっとしたら半年後には新しくしているかもしれません。他にもいろいろ記事をあげているので、良かったらご覧ください。不明な点があれば、投稿フォームからご質問ください。

以下、広告です。手軽に楽しむならGPU搭載のBTOのパソコンもおすすめです。

パソコン工房GeForce RTX 3070 Ti / 3060 / 3050搭載ノート大幅値下げ! デル株式会社 HP Directplus -HP公式オンラインストア-

また、パーツ単位で購入する自作PCも自分なりにカスタマイズできて良いです。


コメント

  1. ななし より:

    NVIDEAになってるスペルミスに気を取られてしまい、内容が入ってこない、、、、

    • タカ より:

      本当ですね。ブログ見るとたくさん間違えている箇所がありました。。。
      はずかしい。全部なおしました。教えてくれてありがとうございます!