Hello and thanks in advance,
I’ve been trying to set up LibTorch on Windows 11 by following the official PyTorch guide for “Installing C++ Distributions of PyTorch”. I have come across three to four issues trying to follow this. I only include the first two in case someone finds this by Google.
Issue 1 (resolved):
I learned from one thread that I had to specify the Torch_DIR to the TorchConfig.cmake
and torch-config.cmake
files. This effectively replaced the command
cmake -DCMAKE_PREFIX_PATH=/absolute/path/to/libtorch ..
to
cmake -DCMAKE_PREFIX_PATH=C:/Users/evana/Documents/MyPrograms/C++/Chess2/libtorch-win-shared-with-deps-2.2.1+cu121 -DTorch_DIR=C:\Users\evana\Documents\MyPrograms\C++\Chess2\libtorch-win-shared-with-deps-2.2.1+cu121\libtorch\share\cmake\Torch ..
Issue 2 (resolved):
Even after including Torch_DIR in the command, I received the same error found in this post. I could be completely misunderstanding this, but I think that one of CUDA’s 12.1 libraries’ new header-only format was conflicting with LibTorch or one of its dependencies.
The post helped me realize I had to use part of the CUDA 11.8 library.
Issue 3:
Finally, I could enter the first CMake command of the guide without errors:
PS C:\Users\evana\Documents\MyPrograms\C++\Chess2\build> cmake -DCMAKE_PREFIX_PATH=C:/Users/evana/Documents/MyPrograms/C++/Chess2/libtorch-win-shared-with-deps-2.2.1+cu121 -DTorch_DIR=C:\Users\evana\Documents\MyPrograms\C++\Chess2\libtorch-win-shared-with-deps-2.2.1+cu121\libtorch\share\cmake\Torch ..
>>
-- Building for: Visual Studio 16 2019
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22631.
-- The C compiler identification is MSVC 19.29.30153.0
-- The CXX compiler identification is MSVC 19.29.30153.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found CUDA: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1 (found version "12.1")
-- The CUDA compiler identification is NVIDIA 12.1.66
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- Check for working CUDA compiler: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/bin/nvcc.exe - skipped
-- Detecting CUDA compile features
-- Detecting CUDA compile features - done
-- Found CUDAToolkit: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/include (found version "12.1.66")
-- Caffe2: CUDA detected: 12.1
-- Caffe2: CUDA nvcc is: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/bin/nvcc.exe
-- Caffe2: CUDA toolkit directory: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1
-- Caffe2: Header version is: 12.1
-- C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/nvrtc.lib shorthash is bac8224f
-- USE_CUDNN is set to 0. Compiling without cuDNN support
-- USE_CUSPARSELT is set to 0. Compiling without cuSPARSELt support
-- Autodetected CUDA architecture(s): 8.6
-- Added CUDA NVCC flags for: -gencode;arch=compute_86,code=sm_86
-- Found Torch: C:/Users/evana/Documents/MyPrograms/C++/Chess2/libtorch-win-shared-with-deps-2.2.1+cu121/libtorch/lib/torch.lib
-- Configuring done (23.9s)
-- Generating done (0.1s)
-- Build files have been written to: C:/Users/evana/Documents/MyPrograms/C++/Chess2/build
However, there was a problem with the second CMake command:
PS C:\Users\evana\Documents\MyPrograms\C++\Chess2\build> cmake --build . --config Release
Microsoft (R) Build Engine version 16.11.2+f32259642 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
1>Checking Build System
Building Custom Rule C:/Users/evana/Documents/MyPrograms/C++/Chess2/CMakeLists.txt
example-app.cpp
C:\Users\evana\Documents\OtherPrograms\vcpkg\installed\x64-windows\include\glog/log_severity.h(57,1): fatal error C1189: #error: ERROR macro is defined. Define GLOG_NO_ABBREVIATED_SEVERITIES before including logging.h. See the document
for detail. [C:\Users\evana\Documents\MyPrograms\C++\Chess2\build\example-app.vcxproj]
Issue 4:
When I threw in a #define GLOG_NO_ABBREVIATED_SEVERITIES
in logging.h
to arbitrarily define the variable, I recieved over 100 syntax errors across multiple of LibTorch’s dependencies:
PS C:\Users\evana\Documents\MyPrograms\C++\Chess2\build> cmake --build . --config Release
Microsoft (R) Build Engine version 16.11.2+f32259642 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
1>Checking Build System
Building Custom Rule C:/Users/evana/Documents/MyPrograms/C++/Chess2/CMakeLists.txt
example-app.cpp
C:\Users\evana\Documents\OtherPrograms\vcpkg\installed\x64-windows\include\c10/core/TensorImpl.h(2065,1): error C2589: '(': illegal token on right side of '::' [C:\Users\evana\Documents\MyPrograms\C++\Chess2\build\example-app.vcxproj]
C:\Users\evana\Documents\OtherPrograms\vcpkg\installed\x64-windows\include\c10/core/TensorImpl.h(2065): error C2062: type 'unknown-type' unexpected [C:\Users\evana\Documents\MyPrograms\C++\Chess2\build\example-app.vcxproj]
C:\Users\evana\Documents\OtherPrograms\vcpkg\installed\x64-windows\include\c10/core/TensorImpl.h(2065,1): error C2059: syntax error: ')' [C:\Users\evana\Documents\MyPrograms\C++\Chess2\build\example-app.vcxproj]
... many more syntax errors later ...
C:\Users\evana\Documents\OtherPrograms\vcpkg\installed\x64-windows\include\ATen/core/jit_type_base.h(87,1): fatal error C1003: error count exceeds 100; stopping compilation [C:\Users\evana\Documents\MyPrograms\C++\Chess2\build\example-a
pp.vcxproj]
Code and other information:
I’m certain I’m overcomplicating things, but I’ve tried to stay as close as possible to the original guide for installing LibTorch on Windows 11. The code for CMakeLists.txt
and example-app.cpp
can be seen in the guide. As of March 17, 2024, I am using the most recent GPU, CUDA 12.1, Windows, C++ API combination: libtorch-win-shared-with-deps-2.2.1+cu121.zip
.
I greatly appreciate any help with issues 3 and 4! I can provide any more information as necessary.