Enable C++17 failed when build pytorch from source on windows

Hi all,

It’s my first time to try build pytorch from source on windows. I followed the official build docs. Here is the cmake summaries

  --   System                    : Windows
  --   C++ compiler              : C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.37.32822/bin/Hostx64/x64/cl.exe
  --   C++ compiler version      : 19.37.32825.0
  --   CXX flags                 : /DWIN32 /D_WINDOWS /GR /EHsc /bigobj /FS -DUSE_PTHREADPOOL /std:c++17 /EHsc /wd26812
  --   Build type                : Release
  --   Compile definitions       : ONNX_ML=1;ONNXIFI_ENABLE_EXT=1;__STDC_FORMAT_MACROS
  --   CMAKE_PREFIX_PATH         : D:\workspace\envs\py38_torch1.13.1_cuda11.6\Lib\site-packages;C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6
  --   CMAKE_INSTALL_PREFIX      : D:/workspace/codes/pytorch/torch
  --   CMAKE_MODULE_PATH         : D:/workspace/codes/pytorch/cmake/Modules;D:/workspace/codes/pytorch/cmake/public/../Modules_CUDA_fix
  --
  --   ONNX version              : 1.14.1
  --   ONNX NAMESPACE            : onnx_torch
  --   ONNX_USE_LITE_PROTO       : OFF
  --   USE_PROTOBUF_SHARED_LIBS  : OFF
  --   Protobuf_USE_STATIC_LIBS  : ON
  --   ONNX_DISABLE_EXCEPTIONS   : OFF
  --   ONNX_WERROR               : OFF
  --   ONNX_BUILD_TESTS          : OFF
  --   ONNX_BUILD_BENCHMARKS     : OFF
  --
  --   Protobuf compiler         :
  --   Protobuf includes         :
  --   Protobuf libraries        :
  --   BUILD_ONNX_PYTHON         : OFF
  --
  -- ******** Summary ********
  --   CMake version         : 3.24.1
  --   CMake command         : D:/workspace/envs/py38_torch1.13.1_cuda11.6/Library/bin/cmake.exe
  --   System                : Windows
  --   C++ compiler          : C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.37.32822/bin/Hostx64/x64/cl.exe
  --   C++ compiler version  : 19.37.32825.0
  --   CXX flags             : /DWIN32 /D_WINDOWS /GR /EHsc /bigobj /FS -DUSE_PTHREADPOOL
  --   Build type            : Release
  --   Compile definitions   : ONNX_ML=1;ONNXIFI_ENABLE_EXT=1
  --   CMAKE_PREFIX_PATH     : D:\workspace\envs\py38_torch1.13.1_cuda11.6\Lib\site-packages;C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6
  --   CMAKE_INSTALL_PREFIX  : D:/workspace/codes/pytorch/torch
  --   CMAKE_MODULE_PATH     : D:/workspace/codes/pytorch/cmake/Modules;D:/workspace/codes/pytorch/cmake/public/../Modules_CUDA_fix
  --
  --   ONNX version          : 1.4.1
  --   ONNX NAMESPACE        : onnx_torch
  --   ONNX_BUILD_TESTS      : OFF
  --   ONNX_BUILD_BENCHMARKS : OFF
  --   ONNX_USE_LITE_PROTO   : OFF
  --   ONNXIFI_DUMMY_BACKEND :
  --
  --   Protobuf compiler     :
  --   Protobuf includes     :
  --   Protobuf libraries    :
  --   BUILD_ONNX_PYTHON     : OFF
  -- Found CUDA with FP16 support, compiling with torch.cuda.HalfTensor
  -- Adding -DNDEBUG to compile flags
  -- MAGMA not found. Compiling without MAGMA support
  -- Could not find hardware support for NEON on this machine.
  -- No OMAP3 processor on this machine.
  -- No OMAP4 processor on this machine.
  -- MKL_THREADING = OMP
  -- Checking for [mkl_intel_lp64 - mkl_intel_thread - mkl_core - libiomp5md]
  --   Library mkl_intel_lp64: not found
  -- Checking for [mkl_intel - mkl_intel_thread - mkl_core - libiomp5md]
  --   Library mkl_intel: not found
  -- Checking for [mkl_intel_lp64 - mkl_intel_thread - mkl_core]
  --   Library mkl_intel_lp64: not found
  -- Checking for [mkl_intel - mkl_intel_thread - mkl_core]
  --   Library mkl_intel: not found
  -- Checking for [mkl_intel_lp64 - mkl_sequential - mkl_core]
  --   Library mkl_intel_lp64: not found
  -- Checking for [mkl_intel - mkl_sequential - mkl_core]
  --   Library mkl_intel: not found
  -- Checking for [mkl_intel_lp64 - mkl_core - libiomp5md - pthread]
  --   Library mkl_intel_lp64: not found
  -- Checking for [mkl_intel - mkl_core - libiomp5md - pthread]
  --   Library mkl_intel: not found
  -- Checking for [mkl_intel_lp64 - mkl_core - pthread]
  --   Library mkl_intel_lp64: not found
  -- Checking for [mkl_intel - mkl_core - pthread]
  --   Library mkl_intel: not found
  -- Checking for [mkl - guide - pthread - m]
  --   Library mkl: not found
  -- MKL library not found
  -- Checking for [blis]
  --   Library blis: BLAS_blis_LIBRARY-NOTFOUND
  -- Checking for [Accelerate]
  --   Library Accelerate: BLAS_Accelerate_LIBRARY-NOTFOUND
  -- Checking for [vecLib]
  --   Library vecLib: BLAS_vecLib_LIBRARY-NOTFOUND
  -- Checking for [flexiblas]
  --   Library flexiblas: BLAS_flexiblas_LIBRARY-NOTFOUND
  -- Checking for [openblas]
  --   Library openblas: BLAS_openblas_LIBRARY-NOTFOUND
  -- Checking for [openblas - pthread - m]
  --   Library openblas: BLAS_openblas_LIBRARY-NOTFOUND
  -- Checking for [openblas - pthread - m - gomp]
  --   Library openblas: BLAS_openblas_LIBRARY-NOTFOUND
  -- Checking for [libopenblas]
  --   Library libopenblas: BLAS_libopenblas_LIBRARY-NOTFOUND
  -- Checking for [goto2 - gfortran]
  --   Library goto2: BLAS_goto2_LIBRARY-NOTFOUND
  -- Checking for [goto2 - gfortran - pthread]
  --   Library goto2: BLAS_goto2_LIBRARY-NOTFOUND
  -- Checking for [acml - gfortran]
  --   Library acml: BLAS_acml_LIBRARY-NOTFOUND
  -- Checking for [blis]
  --   Library blis: BLAS_blis_LIBRARY-NOTFOUND
  -- Could NOT find Atlas (missing: Atlas_CBLAS_INCLUDE_DIR Atlas_CLAPACK_INCLUDE_DIR Atlas_CBLAS_LIBRARY Atlas_BLAS_LIBRARY Atlas_LAPACK_LIBRARY)
  -- Checking for [ptf77blas - atlas - gfortran]
  --   Library ptf77blas: BLAS_ptf77blas_LIBRARY-NOTFOUND
  -- Checking for []
  -- Cannot find a library with BLAS API. Not using BLAS.
  -- LAPACK requires BLAS
  -- Cannot find a library with LAPACK API. Not using LAPACK.
  disabling ROCM because NOT USE_ROCM is set
  -- MIOpen not found. Compiling without MIOpen support
  -- MKL_THREADING = OMP
  -- Checking for [mkl_intel_lp64 - mkl_intel_thread - mkl_core - libiomp5md]
  --   Library mkl_intel_lp64: not found
  -- Checking for [mkl_intel - mkl_intel_thread - mkl_core - libiomp5md]
  --   Library mkl_intel: not found
  -- Checking for [mkl_intel_lp64 - mkl_intel_thread - mkl_core]
  --   Library mkl_intel_lp64: not found
  -- Checking for [mkl_intel - mkl_intel_thread - mkl_core]
  --   Library mkl_intel: not found
  -- Checking for [mkl_intel_lp64 - mkl_sequential - mkl_core]
  --   Library mkl_intel_lp64: not found
  -- Checking for [mkl_intel - mkl_sequential - mkl_core]
  --   Library mkl_intel: not found
  -- Checking for [mkl_intel_lp64 - mkl_core - libiomp5md - pthread]
  --   Library mkl_intel_lp64: not found
  -- Checking for [mkl_intel - mkl_core - libiomp5md - pthread]
  --   Library mkl_intel: not found
  -- Checking for [mkl_intel_lp64 - mkl_core - pthread]
  --   Library mkl_intel_lp64: not found
  -- Checking for [mkl_intel - mkl_core - pthread]
  --   Library mkl_intel: not found
  -- Checking for [mkl - guide - pthread - m]
  --   Library mkl: not found
  -- MKL library not found
  -- Checking for [blis]
  --   Library blis: BLAS_blis_LIBRARY-NOTFOUND
  -- Checking for [Accelerate]
  --   Library Accelerate: BLAS_Accelerate_LIBRARY-NOTFOUND
  -- Checking for [vecLib]
  --   Library vecLib: BLAS_vecLib_LIBRARY-NOTFOUND
  -- Checking for [flexiblas]
  --   Library flexiblas: BLAS_flexiblas_LIBRARY-NOTFOUND
  -- Checking for [openblas]
  --   Library openblas: BLAS_openblas_LIBRARY-NOTFOUND
  -- Checking for [openblas - pthread - m]
  --   Library openblas: BLAS_openblas_LIBRARY-NOTFOUND
  -- Checking for [openblas - pthread - m - gomp]
  --   Library openblas: BLAS_openblas_LIBRARY-NOTFOUND
  -- Checking for [libopenblas]
  --   Library libopenblas: BLAS_libopenblas_LIBRARY-NOTFOUND
  -- Checking for [goto2 - gfortran]
  --   Library goto2: BLAS_goto2_LIBRARY-NOTFOUND
  -- Checking for [goto2 - gfortran - pthread]
  --   Library goto2: BLAS_goto2_LIBRARY-NOTFOUND
  -- Checking for [acml - gfortran]
  --   Library acml: BLAS_acml_LIBRARY-NOTFOUND
  -- Checking for [blis]
  --   Library blis: BLAS_blis_LIBRARY-NOTFOUND
  -- Could NOT find Atlas (missing: Atlas_CBLAS_INCLUDE_DIR Atlas_CLAPACK_INCLUDE_DIR Atlas_CBLAS_LIBRARY Atlas_BLAS_LIBRARY Atlas_LAPACK_LIBRARY)
  -- Checking for [ptf77blas - atlas - gfortran]
  --   Library ptf77blas: BLAS_ptf77blas_LIBRARY-NOTFOUND
  -- Checking for []
  -- Cannot find a library with BLAS API. Not using BLAS.
  -- MKLDNN_CPU_RUNTIME = OMP
  -- DNNL_TARGET_ARCH: X64
  -- DNNL_LIBRARY_NAME: dnnl
  CMake Warning (dev) at D:/workspace/envs/py38_torch1.13.1_cuda11.6/Library/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
    The package name passed to `find_package_handle_standard_args` (OpenMP_C)
    does not match the name of the calling package (OpenMP).  This can lead to
    problems in calling code that expects `find_package` result variables
    (e.g., `_FOUND`) to follow a certain pattern.
  Call Stack (most recent call first):
    cmake/Modules/FindOpenMP.cmake:584 (find_package_handle_standard_args)
    third_party/ideep/mkl-dnn/cmake/OpenMP.cmake:69 (find_package)
    third_party/ideep/mkl-dnn/CMakeLists.txt:117 (include)
  This warning is for project developers.  Use -Wno-dev to suppress it.
  
  CMake Warning (dev) at D:/workspace/envs/py38_torch1.13.1_cuda11.6/Library/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
    The package name passed to `find_package_handle_standard_args` (OpenMP_CXX)
    does not match the name of the calling package (OpenMP).  This can lead to
    problems in calling code that expects `find_package` result variables
    (e.g., `_FOUND`) to follow a certain pattern.
  Call Stack (most recent call first):
    cmake/Modules/FindOpenMP.cmake:584 (find_package_handle_standard_args)
    third_party/ideep/mkl-dnn/cmake/OpenMP.cmake:69 (find_package)
    third_party/ideep/mkl-dnn/CMakeLists.txt:117 (include)
  This warning is for project developers.  Use -Wno-dev to suppress it.
  
  -- Could NOT find Doxyrest (missing: DOXYREST_EXECUTABLE)
  -- Found PythonInterp: D:/workspace/envs/py38_torch1.13.1_cuda11.6/python.exe (found suitable version "3.8.18", minimum required is "2.7")
  -- Could NOT find Sphinx (missing: SPHINX_EXECUTABLE)
  -- Enabled workload: TRAINING
  -- Enabled primitives: ALL
  -- Enabled primitive CPU ISA: ALL
  -- Enabled primitive GPU ISA: ALL
  -- Primitive cache is enabled
  -- Graph component is enabled
  -- Found MKL-DNN: TRUE
  -- Version: 10.1.0
  -- Build type: Release
  -- Using CPU-only version of Kineto
  -- Configuring Kineto dependency:
  --   KINETO_SOURCE_DIR = D:/workspace/codes/pytorch/third_party/kineto/libkineto
  --   KINETO_BUILD_TESTS = OFF
  --   KINETO_LIBRARY_TYPE = static
  -- Found PythonInterp: D:/workspace/envs/py38_torch1.13.1_cuda11.6/python.exe (found version "3.8.18")
  INFO CUDA_SOURCE_DIR =
  INFO ROCM_SOURCE_DIR =
  INFO CUPTI unavailable or disabled - not building GPU profilers
  -- Kineto: FMT_SOURCE_DIR = D:/workspace/codes/pytorch/third_party/fmt
  -- Kineto: FMT_INCLUDE_DIR = D:/workspace/codes/pytorch/third_party/fmt/include
  INFO CUPTI_INCLUDE_DIR = /extras/CUPTI/include
  INFO ROCTRACER_INCLUDE_DIR = /include/roctracer
  INFO DYNOLOG_INCLUDE_DIR = D:/workspace/codes/pytorch/third_party/kineto/libkineto/third_party/dynolog/
  INFO IPCFABRIC_INCLUDE_DIR = D:/workspace/codes/pytorch/third_party/kineto/libkineto/third_party/dynolog//dynolog/src/ipcfabric/
  -- Configured Kineto (CPU)
  CMake Warning (dev) at D:/workspace/envs/py38_torch1.13.1_cuda11.6/Library/share/cmake-3.24/Modules/CMakeDependentOption.cmake:89 (message):
    Policy CMP0127 is not set: cmake_dependent_option() supports full Condition
    Syntax.  Run "cmake --help-policy CMP0127" for policy details.  Use the
    cmake_policy command to set the policy and suppress this warning.
  Call Stack (most recent call first):
    CMakeLists.txt:725 (cmake_dependent_option)
  This warning is for project developers.  Use -Wno-dev to suppress it.
  
  --
  -- Use the C++ compiler to compile (MI_USE_CXX=ON)
  --
  -- Library base name: mimalloc
  -- Version          : 1.8
  -- Build type       : release
  -- C++ Compiler     : C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.37.32822/bin/Hostx64/x64/cl.exe
  -- Compiler flags   : /Zc:__cplusplus
  -- Compiler defines :
  -- Link libraries   : psapi;shell32;user32;advapi32;bcrypt
  -- Build targets    : static
  --
  -- Could NOT find Backtrace (missing: Backtrace_LIBRARY Backtrace_INCLUDE_DIR)
  -- don't use NUMA
  -- headers outputs:
  -- sources outputs:
  -- declarations_yaml outputs:
  -- Using ATen parallel backend: OMP
  AT_INSTALL_INCLUDE_DIR include/ATen/core
  core header install: D:/workspace/codes/pytorch/build/aten/src/ATen/core/TensorBody.h
  core header install: D:/workspace/codes/pytorch/build/aten/src/ATen/core/aten_interned_strings.h
  core header install: D:/workspace/codes/pytorch/build/aten/src/ATen/core/enum_tag.h
  -- Generating sources for unboxing kernels D:/workspace/envs/py38_torch1.13.1_cuda11.6/python.exe;-m;torchgen.gen_executorch;--source-path=D:/workspace/codes/pytorch/test/edge/../../test/edge;--install-dir=D:/workspace/codes/pytorch/build/out;--tags-path=D:/workspace/codes/pytorch/test/edge/../../aten/src/ATen/native/tags.yaml;--aten-yaml-path=D:/workspace/codes/pytorch/test/edge/../../aten/src/ATen/native/native_functions.yaml;--use-aten-lib;--op-selection-yaml-path=D:/workspace/codes/pytorch/test/edge/../../test/edge/selected_operators.yaml;--custom-ops-yaml-path=D:/workspace/codes/pytorch/test/edge/../../test/edge/custom_ops.yaml
  CMake Warning (dev) at torch/CMakeLists.txt:389:
    Syntax Warning in cmake code at column 107
  
    Argument not separated from preceding token by whitespace.
  This warning is for project developers.  Use -Wno-dev to suppress it.
  
  CMake Warning (dev) at torch/CMakeLists.txt:389:
    Syntax Warning in cmake code at column 115
  
    Argument not separated from preceding token by whitespace.
  This warning is for project developers.  Use -Wno-dev to suppress it.
  
  -- Autodetected CUDA architecture(s):  8.6 6.1
  -- Using Lib/site-packages as python relative installation path
  CMake Warning at CMakeLists.txt:1113 (message):
    Generated cmake files are only fully tested if one builds with system glog,
    gflags, and protobuf.  Other settings may generate files that are not well
    tested.
  
  
  -- somehow this is happening
  --
  -- ******** Summary ********
  -- General:
  --   CMake version         : 3.24.1
  --   CMake command         : D:/workspace/envs/py38_torch1.13.1_cuda11.6/Library/bin/cmake.exe
  --   System                : Windows
  --   C++ compiler          : C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.37.32822/bin/Hostx64/x64/cl.exe
  --   C++ compiler id       : MSVC
  --   C++ compiler version  : 19.37.32825.0
  --   Using ccache if found : OFF
  --   CXX flags             : /DWIN32 /D_WINDOWS /GR /EHsc /bigobj /FS -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKINETO_NOCUPTI -DLIBKINETO_NOROCTRACER -DUSE_FBGEMM -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE /utf-8 /wd4624 /wd4068 /wd4067 /wd4267 /wd4661 /wd4717 /wd4244 /wd4804 /wd4273
  --   Build type            : Release
  --   Compile definitions   : ONNX_ML=1;ONNXIFI_ENABLE_EXT=1;ONNX_NAMESPACE=onnx_torch;_CRT_SECURE_NO_DEPRECATE=1;USE_EXTERNAL_MZCRC;MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS;WIN32_LEAN_AND_MEAN;_UCRT_LEGACY_INFINITY;NOMINMAX;USE_MIMALLOC;BUILD_NVFUSER
  --   CMAKE_PREFIX_PATH     : D:\workspace\envs\py38_torch1.13.1_cuda11.6\Lib\site-packages;C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6
  --   CMAKE_INSTALL_PREFIX  : D:/workspace/codes/pytorch/torch
  --   USE_GOLD_LINKER       : OFF
  --
  --   TORCH_VERSION         : 2.1.0
  --   BUILD_CAFFE2          : OFF
  --   BUILD_CAFFE2_OPS      : OFF
  --   BUILD_STATIC_RUNTIME_BENCHMARK: OFF
  --   BUILD_TENSOREXPR_BENCHMARK: OFF
  --   BUILD_NVFUSER_BENCHMARK: OFF
  --   BUILD_BINARY          : OFF
  --   BUILD_CUSTOM_PROTOBUF : ON
  --     Link local protobuf : ON
  --   BUILD_DOCS            : OFF
  --   BUILD_PYTHON          : True
  --     Python version      : 3.8.18
  --     Python executable   : D:/workspace/envs/py38_torch1.13.1_cuda11.6/python.exe
  --     Pythonlibs version  : 3.8.18
  --     Python library      : D:/workspace/envs/py38_torch1.13.1_cuda11.6/libs/python38.lib
  --     Python includes     : D:/workspace/envs/py38_torch1.13.1_cuda11.6/include
  --     Python site-packages: Lib/site-packages
  --   BUILD_SHARED_LIBS     : ON
  --   CAFFE2_USE_MSVC_STATIC_RUNTIME     : OFF
  --   BUILD_TEST            : True
  --   BUILD_JNI             : OFF
  --   BUILD_MOBILE_AUTOGRAD : OFF
  --   BUILD_LITE_INTERPRETER: OFF
  --   INTERN_BUILD_MOBILE   :
  --   TRACING_BASED         : OFF
  --   USE_BLAS              : 0
  --   USE_LAPACK            : 0
  --   USE_ASAN              : OFF
  --   USE_TSAN              : OFF
  --   USE_CPP_CODE_COVERAGE : OFF
  --   USE_CUDA              : ON
  --     Split CUDA          :
  --     CUDA static link    : OFF
  --     USE_CUDNN           : ON
  --     USE_EXPERIMENTAL_CUDNN_V8_API: ON
  --     USE_CUSPARSELT      : OFF
  --     CUDA version        : 11.6
  --     USE_FLASH_ATTENTION : ON
  --     cuDNN version       : 8.9.5
  --     CUDA root directory : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6
  --     CUDA library        : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/lib/x64/cuda.lib
  --     cudart library      : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/lib/x64/cudart.lib
  --     cublas library      : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/lib/x64/cublas.lib
  --     cufft library       : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/lib/x64/cufft.lib
  --     curand library      : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/lib/x64/curand.lib
  --     cusparse library    : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/lib/x64/cusparse.lib
  --     cuDNN library       : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/lib/x64/cudnn.lib
  --     nvrtc               : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/lib/x64/nvrtc.lib
  --     CUDA include path   : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/include
  --     NVCC executable     : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/bin/nvcc.exe
  --     CUDA compiler       : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/bin/nvcc.exe
  --     CUDA flags          : -D_WINDOWS -Xcompiler=" /GR /EHsc" -Xcompiler /w -w -Xcompiler /FS -Xfatbin -compress-all -DONNX_NAMESPACE=onnx_torch --use-local-env -gencode arch=compute_86,code=sm_86 -gencode arch=compute_61,code=sm_61 -Xcudafe --diag_suppress=cc_clobber_ignored,--diag_suppress=set_but_not_used,--diag_suppress=field_without_dll_interface,--diag_suppress=base_class_has_different_dll_interface,--diag_suppress=dll_interface_conflict_none_assumed,--diag_suppress=dll_interface_conflict_dllexport_assumed,--diag_suppress=bad_friend_decl --Werror cross-execution-space-call --no-host-device-move-forward --expt-relaxed-constexpr --expt-extended-lambda  -Xcompiler=/wd4819,/wd4503,/wd4190,/wd4244,/wd4251,/wd4275,/wd4522 -Wno-deprecated-gpu-targets --expt-extended-lambda -DCUB_WRAPPED_NAMESPACE=at_cuda_detail -DCUDA_HAS_FP16=1 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__
  --     CUDA host compiler  :
  --     CUDA --device-c     : OFF
  --     USE_TENSORRT        : OFF
  --   USE_ROCM              : OFF
  --   BUILD_NVFUSER         : ON
  --   USE_EIGEN_FOR_BLAS    : ON
  --   USE_FBGEMM            : ON
  --     USE_FAKELOWP          : OFF
  --   USE_KINETO            : ON
  --   USE_FFMPEG            : OFF
  --   USE_GFLAGS            : OFF
  --   USE_GLOG              : OFF
  --   USE_LEVELDB           : OFF
  --   USE_LITE_PROTO        : OFF
  --   USE_LMDB              : OFF
  --   USE_METAL             : OFF
  --   USE_PYTORCH_METAL     : OFF
  --   USE_PYTORCH_METAL_EXPORT     : OFF
  --   USE_MPS               : OFF
  --   USE_FFTW              : OFF
  --   USE_MKL               : OFF
  --   USE_MKLDNN            : ON
  --   USE_MKLDNN_ACL        : OFF
  --   USE_MKLDNN_CBLAS      : OFF
  --   USE_UCC               : OFF
  --   USE_ITT               : ON
  --   USE_NCCL              : OFF
  --   USE_NNPACK            : OFF
  --   USE_NUMPY             : ON
  --   USE_OBSERVERS         : ON
  --   USE_OPENCL            : OFF
  --   USE_OPENCV            : OFF
  --   USE_OPENMP            : ON
  --   USE_TBB               : OFF
  --   USE_MIMALLOC          : ON
  --   USE_VULKAN            : OFF
  --   USE_PROF              : OFF
  --   USE_QNNPACK           : OFF
  --   USE_PYTORCH_QNNPACK   : OFF
  --   USE_XNNPACK           : ON
  --   USE_REDIS             : OFF
  --   USE_ROCKSDB           : OFF
  --   USE_ZMQ               : OFF
  --   USE_DISTRIBUTED       : ON
  --     USE_MPI               : OFF
  --     USE_GLOO              : ON
  --     USE_GLOO_WITH_OPENSSL : OFF
  --     USE_TENSORPIPE        : OFF
  --   Public Dependencies  :
  --   Private Dependencies : Threads::Threads;pthreadpool;cpuinfo;XNNPACK;fbgemm;ittnotify;fp16;caffe2::openmp;gloo;foxi_loader;fmt::fmt-header-only;kineto
  --   Public CUDA Deps.    : caffe2::cufft;caffe2::curand;caffe2::cublas
  --   Private CUDA Deps.   : torch::cudnn;gloo_cuda;C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/lib/x64/cudart_static.lib;CUDA::cusparse;CUDA::curand;CUDA::cufft;CUDA::cusolver;ATEN_CUDA_FILES_GEN_LIB
  --   USE_COREML_DELEGATE     : OFF
  --   BUILD_LAZY_TS_BACKEND   : ON
  --   TORCH_DISABLE_GPU_ASSERTS : OFF
  -- Configuring done
  -- Generating done

The build goes well at the beginning. but when it comes caffe2 module, a fatal error occurs:

D:/workspace/codes/pytorch\c10/util/C++17.h(27): fatal error C1189: #error:  You need C++17 to compile PyTorch

It seems that the cmake try to enable c++17 by adding -std=c++17 flag instead of /std:c++17:

FAILED: caffe2/CMakeFiles/torch_cuda.dir/__/aten/src/ATen/cuda/cub.cu.obj
C:\PROGRA~1\NVIDIA~2\CUDA\v11.6\bin\nvcc.exe -forward-unknown-to-host-compiler -DAT_PER_OPERATOR_HEADERS -DMINIZ_DISABLE_ZIP_READER_CRC32_CHECKS -DNOMINMAX -DONNXIFI_ENABLE_EXT=1 -DONNX_ML=1 -DONNX_NAMESPACE=onnx_torch -DTORCH_CUDA_BUILD_MAIN_LIB -DUSE_C10D_GLOO -DUSE_CUDA -DUSE_DISTRIBUTED -DUSE_EXPERIMENTAL_CUDNN_V8_API -DUSE_EXTERNAL_MZCRC -DUSE_FLASH_ATTENTION -DUSE_MIMALLOC -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_DEPRECATE=1 -D_UCRT_LEGACY_INFINITY -Dtorch_cuda_EXPORTS -ID:\workspace\codes\pytorch\build\aten\src -ID:\workspace\codes\pytorch\aten\src -ID:\workspace\codes\pytorch\build -ID:\workspace\codes\pytorch -ID:\workspace\codes\pytorch\cmake\..\third_party\benchmark\include -ID:\workspace\codes\pytorch\third_party\onnx -ID:\workspace\codes\pytorch\build\third_party\onnx -ID:\workspace\codes\pytorch\third_party\foxi -ID:\workspace\codes\pytorch\build\third_party\foxi -ID:\workspace\codes\pytorch\third_party\mimalloc\include -ID:\workspace\codes\pytorch\aten\src\THC -ID:\workspace\codes\pytorch\aten\src\ATen\cuda -ID:\workspace\codes\pytorch\aten\src\ATen\..\..\..\third_party\cutlass\include -ID:\workspace\codes\pytorch\build\caffe2\aten\src -ID:\workspace\codes\pytorch\aten\src\ATen\.. -ID:\workspace\codes\pytorch\c10\cuda\..\.. -ID:\workspace\codes\pytorch\c10\.. -ID:\workspace\codes\pytorch\torch\csrc\api -ID:\workspace\codes\pytorch\torch\csrc\api\include -isystem=D:\workspace\codes\pytorch\build\third_party\gloo -isystem=D:\workspace\codes\pytorch\cmake\..\third_party\gloo -isystem=D:\workspace\codes\pytorch\cmake\..\third_party\googletest\googlemock\include -isystem=D:\workspace\codes\pytorch\cmake\..\third_party\googletest\googletest\include -isystem=D:\workspace\codes\pytorch\third_party\protobuf\src -isystem=D:\workspace\codes\pytorch\third_party\XNNPACK\include -isystem=D:\workspace\codes\pytorch\third_party\ittapi\include -isystem=D:\workspace\codes\pytorch\cmake\..\third_party\eigen -isystem="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include" -isystem=D:\workspace\codes\pytorch\third_party\ideep\mkl-dnn\include\oneapi\dnnl -isystem=D:\workspace\codes\pytorch\third_party\ideep\include -isystem="C:\Program Files\NVIDIA Corporation\NvToolsExt\include" -isystem=D:\workspace\codes\pytorch\cmake\..\third_party\cudnn_frontend\include -D_WINDOWS -Xcompiler=" /GR /EHsc" -Xcompiler /w -w -Xcompiler /FS -Xfatbin -compress-all -DONNX_NAMESPACE=onnx_torch --use-local-env -gencode arch=compute_86,code=sm_86 -gencode arch=compute_61,code=sm_61 -Xcudafe --diag_suppress=cc_clobber_ignored,--diag_suppress=set_but_not_used,--diag_suppress=field_without_dll_interface,--diag_suppress=base_class_has_different_dll_interface,--diag_suppress=dll_interface_conflict_none_assumed,--diag_suppress=dll_interface_conflict_dllexport_assumed,--diag_suppress=bad_friend_decl --Werror cross-execution-space-call --no-host-device-move-forward --expt-relaxed-constexpr --expt-extended-lambda  -Xcompiler=/wd4819,/wd4503,/wd4190,/wd4244,/wd4251,/wd4275,/wd4522 -Wno-deprecated-gpu-targets --expt-extended-lambda -DCUB_WRAPPED_NAMESPACE=at_cuda_detail -DCUDA_HAS_FP16=1 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -Xcompiler="-O2 -Ob2" -DNDEBUG -Xcompiler /MD -Xcompiler=-MD -DCAFFE2_USE_GLOO -DTH_HAVE_THREAD -Xcompiler= -std=c++17 -MD -MT caffe2\CMakeFiles\torch_cuda.dir\__\aten\src\ATen\cuda\cub.cu.obj -MF caffe2\CMakeFiles\torch_cuda.dir\__\aten\src\ATen\cuda\cub.cu.obj.d -x cu -c D:\workspace\codes\pytorch\aten\src\ATen\cuda\cub.cu -o caffe2\CMakeFiles\torch_cuda.dir\__\aten\src\ATen\cuda\cub.cu.obj -Xcompiler=-Fdcaffe2\CMakeFiles\torch_cuda.dir\,-FS
cl: 命令行 warning D9002 :忽略未知选项“-std=c++17”

So I try add /std:c++17 to ${CMAKE_CXX_FLAGS} . But this seems not work.
Is there any configs are missed in this process? Hope someone can give me some help or tips.

Thanks.

I got exactly the same error when trying to build the cuda version on Windows. I would really appreciate it if anyone could help me out here.

Hi, did you solve this yet?

Hi, did you solve this yet? Can you help me with this same error?