WSLは使わずに素のWindows10環境にPyTorchをインストールする
voxelpose-pytorchをWindowsで動かしてみたいので、Windows上にPyTorch環境をつくる。
machine specs:
CPU: Intel Core i5-10400F
RAM: 32GB
GPU: RTX2060 SUPER 8GB
Windows10 Home 20H2
Pythonのインストールは以下で完了した。
以下を参照してCUDAをインストールする。
cuda_11.2.2_win10_network.exe
Installed:
- Nsight for Visual Studio 2019
- Nsight Monitor
Not Installed:
- Nsight for Visual Studio 2017
Reason: VS2017 was not found
- Integrated Graphics Frame Debugger and Profiler
Reason: see https://developer.nvidia.com/nsight-vstools
- Integrated CUDA Profilers
Reason: see https://developer.nvidia.com/nsight-vstools
インストールは問題なくできたようなのでサンプルをビルドしてみる。
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.2
に配置されたSamples_vs2019.sln
をVS2019で開く。
OKをクリックしたところ、「出力」に以下のような感じのエラーが大量に出てる。VS2019のバージョンは、Microsoft Visual Studio Community 2019 Version 16.9.1
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.2\0_Simple\asyncAPI\asyncAPI_vs2019.vcxproj : error : エラー HRESULT E_FAIL が COM コンポーネントの呼び出しから返されました。
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.2\0_Simple\clock\clock_vs2019.vcxproj : error : エラー HRESULT E_FAIL が COM コンポーネントの呼び出しから返されました。
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.2\0_Simple\cppIntegration\cppIntegration_vs2019.vcxproj : error : エラー HRESULT E_FAIL が COM コンポーネントの呼び出しから返されました。
VS2019の最新バージョン16.9.3がリリースされてたので、とりあえずアップデートしてみる。
アップデートしてサンプルのプロジェクト開きなおしてみたら、エラー出なくなった。
WTを再起動して以下のとおり実行したら、nvcc
コマンドが反応した。
PS C:\Users\yosuke> nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Sun_Feb_14_22:08:44_Pacific_Standard_Time_2021
Cuda compilation tools, release 11.2, V11.2.152
Build cuda_11.2.r11.2/compiler.29618528_0
PS C:\Users\yosuke>
nvidia-smi
の実行結果はこんな感じ。
(.venv-3.9.3) PS C:\Users\yosuke\shared\work\voxelpose> nvidia-smi
Sun Apr 4 19:00:23 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 461.33 Driver Version: 461.33 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce RTX 206... WDDM | 00000000:01:00.0 On | N/A |
| 29% 30C P8 11W / 175W | 588MiB / 8192MiB | 6% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1252 C+G C:\Windows\System32\dwm.exe N/A |
| 0 N/A N/A 1264 C+G ...wekyb3d8bbwe\Video.UI.exe N/A |
| 0 N/A N/A 3860 C+G ...y\ShellExperienceHost.exe N/A |
| 0 N/A N/A 6824 C+G ...ub.ThreadedWaitDialog.exe N/A |
| 0 N/A N/A 7528 C+G ...5n1h2txyewy\SearchApp.exe N/A |
| 0 N/A N/A 8616 C+G ...nputApp\TextInputHost.exe N/A |
| 0 N/A N/A 8764 C+G ...ty\Common7\IDE\devenv.exe N/A |
| 0 N/A N/A 22304 C+G ...8bbwe\WindowsTerminal.exe N/A |
+-----------------------------------------------------------------------------+
参考:
VS2019サンプルの方は、何をデバッグ実行しても最後に「プログラム '[21544] asyncAPI.exe' はコード 0 (0x0) で終了しました。」となってまともに動いてるようにはみえないな。。
PyTorchが動いてくれればとりあえずOKなので、以下を参考にインストールする。
(.venv-3.9.3) PS C:\Users\yosuke\shared\work\voxelpose> python -m pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio===0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
Looking in links: https://download.pytorch.org/whl/torch_stable.html
Collecting torch==1.8.1+cu111
Downloading https://download.pytorch.org/whl/cu111/torch-1.8.1%2Bcu111-cp39-cp39-win_amd64.whl (3055.6 MB)
|████████████████████████████████| 3055.6 MB 13 kB/s
Collecting torchvision==0.9.1+cu111
Downloading https://download.pytorch.org/whl/cu111/torchvision-0.9.1%2Bcu111-cp39-cp39-win_amd64.whl (1.9 MB)
|████████████████████████████████| 1.9 MB 6.8 MB/s
Collecting torchaudio===0.8.1
Downloading https://download.pytorch.org/whl/torchaudio-0.8.1-cp39-none-win_amd64.whl (109 kB)
|████████████████████████████████| 109 kB ...
Collecting typing-extensions
Downloading typing_extensions-3.7.4.3-py3-none-any.whl (22 kB)
Collecting numpy
Downloading numpy-1.20.2-cp39-cp39-win_amd64.whl (13.7 MB)
|████████████████████████████████| 13.7 MB 6.8 MB/s
Collecting pillow>=4.1.1
Downloading Pillow-8.2.0-cp39-cp39-win_amd64.whl (2.2 MB)
|████████████████████████████████| 2.2 MB ...
Installing collected packages: typing-extensions, numpy, torch, pillow, torchvision, torchaudio
Successfully installed numpy-1.20.2 pillow-8.2.0 torch-1.8.1+cu111 torchaudio-0.8.1 torchvision-0.9.1+cu111 typing-extensions-3.7.4.3
(.venv-3.9.3) PS C:\Users\yosuke\shared\work\voxelpose>
VerificationとしてはOKかな。
(.venv-3.9.3) PS C:\Users\yosuke\shared\work\voxelpose> python
Python 3.9.3 (tags/v3.9.3:e723086, Apr 2 2021, 11:35:20) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> x = torch.rand(5, 3)
>>> x
tensor([[0.2069, 0.7575, 0.0234],
[0.2461, 0.1027, 0.9481],
[0.6030, 0.2482, 0.7323],
[0.7054, 0.5376, 0.0544],
[0.3658, 0.8337, 0.2055]])
>>> torch.cuda.is_available()
True
>>> torch.cuda.get_device_name()
'GeForce RTX 2060 SUPER'
>>>
参考:
もう少しPyTorch with CUDA on Windows 10をいろいろ動かしたいので、jupyterlabを入れて以下をざっと通しでやってみる。
Jupyterlabのインストール。
(.venv-3.9.3) PS C:\Users\yosuke\shared\work\voxelpose> python -m pip install jupyterlab
(...snip...)
Successfully installed MarkupSafe-1.1.1 Send2Trash-1.5.0 anyio-2.2.0 argon2-cffi-20.1.0 async-generator-1.10 attrs-20.3.0 babel-2.9.0 backcall-0.2.0 bleach-3.3.0 certifi-2020.12.5 cffi-1.14.5 chardet-4.0.0 colorama-0.4.4 decorator-5.0.5 defusedxml-0.7.1 entrypoints-0.3 idna-2.10 ipykernel-5.5.3 ipython-7.22.0 ipython-genutils-0.2.0 jedi-0.18.0 jinja2-2.11.3 json5-0.9.5 jsonschema-3.2.0 jupyter-client-6.1.12 jupyter-core-4.7.1 jupyter-packaging-0.7.12 jupyter-server-1.5.1 jupyterlab-3.0.12 jupyterlab-pygments-0.1.2 jupyterlab-server-2.4.0 mistune-0.8.4 nbclassic-0.2.6 nbclient-0.5.3 nbconvert-6.0.7 nbformat-5.1.3 nest-asyncio-1.5.1 notebook-6.3.0 packaging-20.9 pandocfilters-1.4.3 parso-0.8.2 pickleshare-0.7.5 prometheus-client-0.10.0 prompt-toolkit-3.0.18 pycparser-2.20 pygments-2.8.1 pyparsing-2.4.7 pyrsistent-0.17.3 python-dateutil-2.8.1 pytz-2021.1 pywin32-300 pywinpty-0.5.7 pyzmq-22.0.3 requests-2.25.1 six-1.15.0 sniffio-1.2.0 terminado-0.9.4 testpath-0.4.4 tornado-6.1 traitlets-5.0.5 urllib3-1.26.4 wcwidth-0.2.5 webencodings-0.5.1
(.venv-3.9.3) PS C:\Users\yosuke\shared\work\voxelpose> jupyter lab
"Learn the Basics"は以下のスクラップでやる。