見出し画像

Windows 10 Pro 20H2にCUDA 11.2をインストールしたい

CUDA 11.2をWindows 10にインストールするには、ドライバとVisual Studioを先にインストールする必要がある。

Windows用ドライバは、CUDA 11.2なら、version 460.82以上、CUDA 11.2.2 Update 2なら、version 461.33以上が必要。NVIDIAのドライバダウンロードのページで、GPUの種類を入力すれば、適切なドライバがダウンロードできる。ダウンロードタイプは、Studioドライバーを選んだ。versionは461.92で、サイズは、631MBあった。ダウンロードしたインストーラを起動して、躓くことなく、インストールできた。

CUDA TOOLKIT DOCUMENTATIOのページによれば、Visual Studioは、2019 16.xをサポートしている。Visual Sudio 2019のコミュニティが無料でダウンロードできる。ダウンロードしたインストーラを起動すると、言語の選択がある。今回は、CUDAのためだけなので、C++だけを選択した。インストール後、コマンドライン用のサンプルプロジェクトHelloをビルド、実行して、動作を確認した。

CUDA 11.2をダウンロードして、インストールした。クリックの回数も少なく、問題なく、インストールできた。インストーラの最後のところで、「Launch Samples」にチェックを入れると、エクスプローラがサンプルのフォルダを開いた。Visual Studio 2019用のslnファイルがあったので、クリックして、Visual Studioが起動した。

slnファイルが183個のプロジェクトを含んでいるようで、読み込みが終わるのに、数分かかった。「Debug」を「Release」にして、ビルドした。8個の論理プロセッサを全部使って、ビルドしているようで、約20分かかった。

ビルドしたdveiceQuery.exeの出力結果。

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.2\bin\win64\Release\deviceQuery.exe Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce GTX 1050 Ti"
 CUDA Driver Version / Runtime Version          11.2 / 11.2
 CUDA Capability Major/Minor version number:    6.1
 Total amount of global memory:                 2048 MBytes (2147483648 bytes)
 ( 6) Multiprocessors, (128) CUDA Cores/MP:     768 CUDA Cores
 GPU Max Clock rate:                            1620 MHz (1.62 GHz)
 Memory Clock rate:                             3504 Mhz
 Memory Bus Width:                              128-bit
 L2 Cache Size:                                 1048576 bytes
 Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
 Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
 Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
 Total amount of constant memory:               65536 bytes
 Total amount of shared memory per block:       49152 bytes
 Total shared memory per multiprocessor:        98304 bytes
 Total number of registers available per block: 65536
 Warp size:                                     32
 Maximum number of threads per multiprocessor:  2048
 Maximum number of threads per block:           1024
 Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
 Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
 Maximum memory pitch:                          2147483647 bytes
 Texture alignment:                             512 bytes
 Concurrent copy and kernel execution:          Yes with 5 copy engine(s)
 Run time limit on kernels:                     Yes
 Integrated GPU sharing Host Memory:            No
 Support host page-locked memory mapping:       Yes
 Alignment requirement for Surfaces:            Yes
 Device has ECC support:                        Disabled
 CUDA Device Driver Mode (TCC or WDDM):         WDDM (Windows Display Driver Model)
 Device supports Unified Addressing (UVA):      Yes
 Device supports Managed Memory:                Yes
 Device supports Compute Preemption:            Yes
 Supports Cooperative Kernel Launch:            Yes
 Supports MultiDevice Co-op Kernel Launch:      No
 Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
 Compute Mode:
    < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 11.2, CUDA Runtime Version = 11.2, NumDevs = 1
Result = PASS

DeviceQuery.exeはうまく動いたが、nbody.exe、smokparticle.exeが起動しない。じつは、ここまでの作業は、GeForce 1050TiがあるPCにリモートデスクトップ接続して行っている。リモートデスクトップ接続の場合、描画には接続元のGPUが使われるが、今回は接続元PCにNvidiaのGPUはない。描画を必要としないアプリは動作するようで、例えば、bandwidthTest.exeも動いている。

[CUDA Bandwidth Test] - Starting...
Running on...
Device 0: GeForce GTX 1050 Ti
Quick Mode
Host to Device Bandwidth, 1 Device(s)
PINNED Memory Transfers
  Transfer Size (Bytes)	Bandwidth(GB/s)
  32000000			13.1
Device to Host Bandwidth, 1 Device(s)
PINNED Memory Transfers
  Transfer Size (Bytes)	Bandwidth(GB/s)
  32000000			13.2
Device to Device Bandwidth, 1 Device(s)
PINNED Memory Transfers
  Transfer Size (Bytes)	Bandwidth(GB/s)
  32000000			91.0
Result = PASS
NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.

描画を必要とする場合、リモートデスクトップ接続ではなく、VNCをつかえばできると書いてあるページもある。