CuPy 13.2 のインストール,CuPy のプログラム例(Windows 上)
CuPyのインストールでは,まず公式ページでNVIDIA CUDAツールキットとPythonの互換性を確認する.次に,使用中のCUDAバージョンに適したCuPyをインストールする.CUDA バージョン 11 の場合は,Windowsでは管理者権限でコマンドプロンプトを開き,「python -m pip install -U cupy-cuda11x」を実行する(「11x」は使用中のCUDAバージョンに合わせて調整).インストール後,Pythonでインポートしてバージョンを確認する.CuPyは,GPU上での配列操作,ユーザー定義カーネル,Rawカーネル,カーネルフュージョンなどの機能を提供する.
【目次】
CuPy
CuPy は NumPyのGPU実装であり,CUDA対応GPUで高速な数値計算を行うためのPythonライブラリである.
【関連する外部ページ】
- CyPy の公式ページ: https://cupy.chainer.org/
- CyPy の公式のインストールページ: https://docs.cupy.dev/en/stable/install.html
【関連項目】 NVIDIA CUDA
前準備
Python 3.10, 7-Zip のインストール(Windows 上)
Pythonは,プログラミング言語の1つ. 7-Zipは,ファイル圧縮・展開(解凍)ツール.
【手順】
- Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
次のコマンドを実行
次のコマンドは,Python ランチャーとPython 3.10と7-Zipをインストールし,7-Zipにパスを通すものである.
winget install --scope machine Python.Launcher winget install --scope machine Python.Python.3.10 winget install --scope machine 7zip.7zip powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\Program Files\7-Zip\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
【関連する外部ページ】
- Python の公式ページ: https://www.python.org/
- 7-Zip の公式ページ: https://7-zip.opensource.jp/
【サイト内の関連ページ】
Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)または Visual Studio 2022 のインストール(Windows 上)
CUDAツールキットは、GPU上でコードをコンパイルするためにC++コンパイラを必要とします。そのため、事前にMicrosoft C++ Build Tools または Visual Studio (C++開発ワークロードを含む) をインストールしておく必要があります。
【インストールの判断】 Build Tools for Visual Studio は,C++コンパイラなどを含む開発ツールセットです. Visual Studio は統合開発環境であり,いくつかのエディションがあり,Build Tools for Visual Studioの機能を含むか連携して使用します.インストールは以下の基準で判断してください:
- コマンドラインからのビルドなど、C++コンパイラ機能のみが必要な場合:
- Visual Studioのエディタやデバッガなどの統合開発環境機能が必要な場合、あるいは、どちらをインストールすべきかよく分からない場合:
Visual Studio Community (または他のエディション) をインストール します.
Visual Studio 2022 をインストールする際に,「C++ によるデスクトップ開発」ワークロードを選択することで,必要なBuild Toolsの機能も一緒にインストールされます.
不明な点がある場合は,Visual Studio 全体をインストール する方が、後で機能を追加する手間が省ける場合があります.
Build Tools for Visual Studio 2022 のインストール(Windows 上)
- Windows で,コマンドプロンプトを管理者権限で起動します(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)。
以下の
winget
コマンドを実行します。winget
はWindows標準のパッケージマネージャーです。--scope machine
オプションはシステム全体にインストールすることを意味します。次のコマンドは,Build Tools for Visual Studio 2022と、多くのプログラムで必要とされるVC++ 2015以降の再頒布可能パッケージをインストールします.
- Build Tools for Visual Studio 2022 で C++ によるデスクトップ開発関連コンポーネントのインストール
CUDA開発には、標準のC++開発ツールに加えて、特定のコンポーネントが必要になる場合があります。
- Visual Studio Installer を起動します。
起動方法: スタートメニューから「Visual Studio Installer」を探して実行します.
- Visual Studio Build Tools 2022 の項目で「変更」ボタンをクリックします.
- 「ワークロード」タブで「C++ によるデスクトップ開発」をクリックして選択します。画面右側の「インストールの詳細」で、必要に応じて「v143 ビルドツール用 C++/CLI サポート(最新)」、「ATL」、「MFC」などをチェックします(これらは一般的なC++開発や特定のプロジェクトタイプで必要になる場合があります)。その後、「変更」をクリックしてインストールまたは変更を適用します.
- Visual Studio Installer を起動します。
Visual Studio Community 2022 のインストール(Windows 上)
- Windows で,コマンドプロンプトを管理者権限で起動します。
- インストールコマンドの実行
以下の
winget
コマンドを実行します。--override "--add ..."
部分で、インストールするワークロードやコンポーネントを指定しています。winget install Microsoft.VisualStudio.2022.Community --scope machine --override "--add Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core Microsoft.VisualStudio.Component.VC.CLI.Support Microsoft.VisualStudio.Component.CoreEditor Microsoft.VisualStudio.Component.NuGet Microsoft.VisualStudio.Component.Roslyn.Compiler Microsoft.VisualStudio.Component.TextTemplating Microsoft.VisualStudio.Component.Windows.SDK.Latest Microsoft.VisualStudio.Component.VC.Tools.x86.x64 Microsoft.VisualStudio.Component.VC.ATL Microsoft.VisualStudio.Component.VC.ATLMFC" winget install Microsoft.VisualStudio.2022.Community --scope machine Microsoft.VCRedist.2015+.x64
インストールされる主要なコンポーネントの説明:
NativeDesktop
(C++によるデスクトップ開発): CUDA開発に必要なC++コンパイラ(VC.Tools.x86.x64
)やWindows SDK (Windows.SDK.Latest
)など、基本的な開発ツール一式を含みます。CoreEditor
: Visual Studioの基本的なコードエディタ機能を提供します。VC.CLI.Support
: C++/CLIを用いた開発サポート(通常、純粋なCUDA C++開発では不要な場合もあります)。NuGet
: .NETライブラリ管理用(C++プロジェクトでも利用されることがあります)。VC.ATL
/VC.ATLMFC
: 特定のWindowsアプリケーション開発フレームワーク(通常、CUDA開発自体には直接必要ありません)。
システム要件と注意事項:
- 管理者権限でのインストールが必須です。
- 必要ディスク容量:10GB以上(選択するコンポーネントにより変動)。
- 推奨メモリ:8GB以上のRAM。
- インストール過程でシステムの再起動が要求される可能性があります。
- 安定したインターネット接続環境が必要です。
後から追加のコンポーネントが必要になった場合は,Visual Studio Installerを使用して個別にインストールすることが可能です.
- インストール完了の確認
インストールが成功したか確認するには、管理者権限のコマンドプロンプトで以下のコマンドを実行します。
winget list Microsoft.VisualStudio.2022.Community
リストに表示されればインストールされています。
トラブルシューティング:
インストール失敗時は,以下のログファイルを確認すると原因究明の手がかりになります:
%TEMP%\dd_setup_
.log %TEMP%\dd_bootstrapper_ .log (
は実行日時に対応する文字列) - (オプション) Visual Studio Installer での確認と変更
winget
でのインストール後も、Visual Studio Installerを使ってインストール内容を確認・変更できます。- Visual Studio Installer を起動します。
- Visual Studio Community 2022 の項目で「変更」をクリックします。
- 「ワークロード」タブで「C++ によるデスクトップ開発」がチェックされていることを確認します。必要であれば、「個別のコンポーネント」タブで特定のツール(例: 特定バージョンのMSVCコンパイラ、CMakeツールなど)を追加・削除できます。「インストールの詳細」で「v143 ビルドツール用 C++/CLI サポート(最新)」などが選択されているかも確認できます。変更後、「変更」または「インストール」をクリックします。
NVIDIA ドライバのインストール(Windows 上)
NVIDIA ドライバとは
NVIDIA ドライバは,NVIDIA製GPUをWindowsシステム上で適切に動作させるための基盤となるソフトウェアです.このドライバをインストールすることにより,GPUの性能を最大限に引き出し,グラフィックス処理はもちろん,CUDAを利用したAI関連アプリケーションなどの計算速度を向上させることが期待できます.
ドライバは通常、NVIDIA公式サイトからダウンロードするか、NVIDIA GeForce Experienceソフトウェアを通じてインストール・更新します。
公式サイト: https://www.nvidia.co.jp/Download/index.aspx?lang=jp
【サイト内の関連ページ】
- (再掲) NVIDIA グラフィックス・ボードの確認
インストールするドライバを選択するために、まずご使用のPCに搭載されているNVIDIAグラフィックス・ボードの種類を確認します。(確認済みであれば、この手順は不要です。) Windows のコマンドプロンプトで次のコマンドを実行します。
wmic path win32_VideoController get name
- NVIDIA ドライバのダウンロード
確認したグラフィックス・ボードのモデル名と、お使いのWindowsのバージョン(例: Windows 11, Windows 10 64-bit)に対応するドライバを、以下のNVIDIA公式サイトからダウンロードします.
https://www.nvidia.co.jp/Download/index.aspx?lang=jp
サイトの指示に従い、製品タイプ、製品シリーズ、製品ファミリー、OS、言語などを選択して検索し、適切なドライバ(通常は最新のGame Ready ドライバまたはStudio ドライバ)をダウンロードします。
- ドライバのインストール
ダウンロードしたインストーラー(.exeファイル)を実行し、画面の指示に従ってインストールを進めます。「カスタムインストール」を選択すると、インストールするコンポーネント(ドライバ本体、GeForce Experience、PhysXなど)を選ぶことができます。通常は「高速(推奨)」で問題ありません。
インストール完了後、システムの再起動を求められる場合があります。
- CUDA対応のNVIDIA GPU。
- 対応するNVIDIA ドライバ。
- サポートされているバージョンのC++コンパイラ (Visual StudioまたはBuild Toolsをインストール済み)。
- Windows では,NVIDIA CUDA ツールキットのインストール中は,予期せぬ問題を避けるため、なるべく他のアプリケーションは終了しておくことが推奨されます。
- インストール後に環境変数が正しく設定されているか確認することが重要です。
- NVIDIA CUDA ツールキットのアーカイブの公式ページ: https://developer.nvidia.com/cuda-toolkit-archive (他のバージョンが必要な場合)
- NVIDIA CUDA ツールキット の公式ドキュメント: https://docs.nvidia.com/cuda/index.html
- NVIDIA CUDA ツールキットのインストールに関する,NVIDIA CUDA Installation Guide for Windows: https://docs.nvidia.com/cuda/cuda-installation-guide-windows/index.html
- (再掲) 他のウィンドウを閉じる:インストール中のコンフリクトを避けるため、可能な限り他のアプリケーションを終了します。
- Windows で,コマンドプロンプトを管理者権限で起動します。
-
winget
コマンドで CUDA 11.8 をインストールします。以下のコマンドは、(必要であれば)NVIDIA GeForce Experienceと、指定したバージョンのNVIDIA CUDA ツールキット (11.8) をインストールします。また、
CUDA_HOME
環境変数を設定します(一部のツールで参照されることがあります)。rem グラフィックボードの確認 (参考) wmic path win32_VideoController get name rem CUDA Toolkit 11.8 のインストール winget install --scope machine Nvidia.CUDA --version 11.8 rem CUDA_HOME 環境変数の設定 (システム環境変数として設定) powershell -command "[System.Environment]::SetEnvironmentVariable(\"CUDA_HOME\", \"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\", \"Machine\")"
注釈: これは特定のバージョン(11.8)をインストールする例です。他のバージョンをインストールする場合は
--version
オプションを適宜変更してください(例:--version 11.2
)。利用可能なバージョンはwinget search Nvidia.CUDA
で確認できます。 - (重要) ユーザ環境変数 TEMP の設定(日本語ユーザ名の場合)
Windows のユーザ名に日本語(マルチバイト文字)が含まれている場合、CUDAコンパイラ
nvcc
が一時ファイルの作成に失敗し、コンパイルが正常に動作しないことがあります(エラーメッセージが表示されない場合もあるため注意が必要です)。この問題を回避するために、ユーザ環境変数TEMP
およびTMP
を、ASCII文字のみのパス(例:C:\TEMP
)に変更します。管理者権限のコマンドプロンプトで,次のコマンドを実行して
C:\TEMP
ディレクトリを作成し、ユーザ環境変数TEMP
とTMP
を設定します。mkdir C:\TEMP powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")" powershell -command "[System.Environment]::SetEnvironmentVariable(\"TMP\", \"C:\TEMP\", \"User\")"
この設定は、コマンドプロンプトを再起動するか、Windowsに再サインインした後に有効になります。
- CuPy の公式のインストールページを開く
- 開いたページで,必要となるNVIDIA CUDA ツールキット,Python のバージョンの確認
- CuPy の公式ページを開く
- 使用している NVIDIA CUDA ツールキットのバージョンに合うものの指示に従う.
- Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
- CuPy のインストール
「11x」のところは,使用している NVIDIA CUDA ツールキットのバージョンに合わせて調整すること.
python -m pip install -U cupy-cuda11x
- 確認
python -c "import cupy; print( cupy.__version__ )"
- 配列(cupy.ndarray)の作成と操作
import cupy as cp # GPU配列の作成 x_gpu = cp.array([1, 2, 3]) # GPU上での計算 y_gpu = x_gpu * 2 print(y_gpu) # array([2, 4, 6])
- ユーザー定義カーネル
import numpy as np import cupy as cp squared_diff = cp.ElementwiseKernel( 'float32 x, float32 y', 'float32 z', 'z = (x - y) * (x - y)', 'squared_diff' ) x = cp.arange(10, dtype=np.float32) y = cp.ones(10, dtype=np.float32) z = squared_diff(x, y) print(z) # array([0., 0., 1., 4., 9., 16., 25., 36., 49., 64.], dtype=float32)
- Rawカーネル
import cupy as cp add_kernel = cp.RawKernel(r''' extern "C" __global__ void my_add(const float* x1, const float* x2, float* y) { int tid = blockDim.x * blockIdx.x + threadIdx.x; y[tid] = x1[tid] + x2[tid]; } ''', 'my_add') x1 = cp.arange(25, dtype=cp.float32).reshape(5, 5) x2 = cp.arange(25, dtype=cp.float32).reshape(5, 5) y = cp.zeros((5, 5), dtype=cp.float32) add_kernel((5,), (5,), (x1, x2, y)) print(y)
- カーネルフュージョン
import cupy as cp @cp.fuse() def squared_diff(x, y): return (x - y) * (x - y) x_cp = cp.arange(10) y_cp = cp.arange(10)[::-1] result = squared_diff(x_cp, y_cp) print(result) # array([81, 49, 25, 9, 1, 1, 9, 25, 49, 81])
NVIDIA CUDA ツールキット 11.8 のインストール(Windows 上)
CUDAツールキットには、GPUでプログラムを実行するためのライブラリ、`nvcc`コンパイラ、開発ツールなどが含まれています。ここでは`winget`を使ってCUDA 11.8をインストールする手順を示します。
NVIDIA CUDA ツールキットの概要と注意点
NVIDIAのGPUを使用して並列計算を行うための開発・実行環境です。
主な機能: GPU を利用した並列処理のコンパイルと実行、GPU のメモリ管理、C++をベースとした拡張言語(CUDA C/C++)とAPI、ライブラリ(cuBLAS, cuFFTなど)を提供します。
【NVIDIA CUDA ツールキットの動作に必要なもの】
【Windows でインストールするときの一般的な注意点】
【関連する外部ページ】
【関連項目】 NVIDIA CUDA ツールキットの概要, NVIDIA CUDA ツールキットの他バージョンのインストール