<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/54609>54609</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Various cuda compiling problems on Windows
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          cloudhan
      </td>
    </tr>
</table>

<pre>
    NOTE: `empty.cu` is simply an empty file.

---
### Incompatible STL provided by MSVC toolchain

```powershell
clang++.exe -std=c++14 -x cuda -c .\empty.cu --cuda-path=$env:CUDA_PATH_V10_1 --cuda-gpu-arch=sm_61
```

Resulting the following error:

```
In file included from <built-in>:1:
In file included from C:\LLVM\LLVM-main-win64\lib\clang\15.0.0\include\__clang_cuda_runtime_wrapper.h:41:
In file included from C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\cmath:9:
In file included from C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\yvals.h:9:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\yvals_core.h:545:2: error: STL1002: Unexpected compiler version, expected CUDA 10.1 Update 2 or newer.
#error STL1002: Unexpected compiler version, expected CUDA 10.1 Update 2 or newer.
 ^
1 error generated when compiling for sm_61.
```

The root cause is [this section in microsoft/STL yvals_core.h](https://github.com/microsoft/STL/blob/27877181dc50fc5f0dc9d679703437eb105e2b9f/stl/inc/yvals_core.h#L590-L610)

Adding `-D_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH` to compiling cmd fixes it.
```powershell
clang++.exe -std=c++14 -x cuda -c .\empty.cu --cuda-path=$env:CUDA_PATH_V10_1 --cuda-gpu-arch=sm_61 -D_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH
```
will do the trick.

---

### unknown type name 'uint32_t'

And this one cannot be fixed on the cmd.

**NOTE: the difference of `$env:CUDA_PATH_V11_2` in this section compares to `$env:CUDA_PATH_V10_1` in the previous section.**

```powershell
clang++.exe -std=c++14 -x cuda -c .\empty.cu --cuda-path=$env:CUDA_PATH_V11_2 --cuda-gpu-arch=sm_61 -D_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH
```
results
```
In file included from <built-in>:1:
In file included from C:\LLVM\LLVM-main-win64\lib\clang\15.0.0\include\__clang_cuda_runtime_wrapper.h:473:
C:\LLVM\LLVM-main-win64\lib\clang\15.0.0\include\__clang_cuda_intrinsics.h:512:19: error: unknown type name 'uint32_t'; did you mean 'cuuint32_t'?
__device__ inline uint32_t __nvvm_get_smem_pointer(void *__ptr) {
                  ^
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2/include\cuda.h:55:26: note: 'cuuint32_t' declared here
typedef unsigned __int32 cuuint32_t;
                         ^
1 error generated when compiling for sm_61.
```

Adding `-###` gives following info
```
clang version 15.0.0 (https://github.com/llvm/llvm-project.git 0e1d2007aa3c63597c6965dd265055da78bf7c51)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\LLVM\LLVM-main-win64\bin
 "C:\\LLVM\\LLVM-main-win64\\bin\\clang++.exe" "-cc1" "-triple" "nvptx64-nvidia-cuda" "-aux-triple" "x86_64-pc-windows-msvc" "-S" "-disable-free" "-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "empty.cu" "-mrelocation-model" "static" "-mframe-pointer=all" "-fno-rounding-math" "-fno-verbose-asm" "-no-integrated-as" "-aux-target-cpu" "x86-64" "-fcuda-is-device" "-mllvm" "-enable-memcpyopt-without-libcalls" "-mlink-builtin-bitcode" "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.2/nvvm/libdevice/libdevice.10.bc" "-target-feature" "+ptx72" "-target-sdk-version=11.2" "-target-cpu" "sm_61" "-target-feature" "+ptx72" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" "-fno-dwarf-directory-asm" "-resource-dir" "C:\\LLVM\\LLVM-main-win64\\lib\\clang\\15.0.0" "-internal-isystem" "C:\\LLVM\\LLVM-main-win64\\lib\\clang\\15.0.0\\include\\cuda_wrappers" "-include" "__clang_cuda_runtime_wrapper.h" "-D" "_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH" "-D" "_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH" "-internal-isystem" "C:\\LLVM\\LLVM-main-win64\\lib\\clang\\15.0.0\\include" "-internal-isystem" "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30133\\ATLMFC\\include" "-internal-isystem" "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30133\\include" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\include\\um" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\ucrt" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\shared" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\um" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\winrt" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\cppwinrt" "-internal-isystem" "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.2/include" "-internal-isystem" "C:\\LLVM\\LLVM-main-win64\\lib\\clang\\15.0.0\\include" "-internal-isystem" "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30133\\ATLMFC\\include" "-internal-isystem" "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30133\\include" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\include\\um" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\ucrt" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\shared" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\um" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\winrt" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\cppwinrt" "-std=c++14" "-fdeprecated-macro" "-fno-autolink" "-fdebug-compilation-dir=D:\\rules_cuda\\examples\\basic" "-ferror-limit" "19" "-fmessage-length=318" "-fms-extensions" "-fms-compatibility" "-fms-compatibility-version=19.29.30141" "-fdelayed-template-parsing" "-fcxx-exceptions" "-fexceptions" "-fcolor-diagnostics" "-cuid=25dcc15944fa3f58" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o" "C:\\Users\\GUANGY~1\\AppData\\Local\\Temp\\empty-90ac4b\\empty-sm_61.s" "-x" "cuda" ".\\empty.cu"
 "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.2/bin\\ptxas" "-m64" "-O0" "--gpu-name" "sm_61" "--output-file" "C:\\Users\\GUANGY~1\\AppData\\Local\\Temp\\empty-78d68a\\empty-sm_61.o" "C:\\Users\\GUANGY~1\\AppData\\Local\\Temp\\empty-90ac4b\\empty-sm_61.s"
 "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.2/bin\\fatbinary" "-64" "--create" "C:\\Users\\GUANGY~1\\AppData\\Local\\Temp\\empty-17b90b.fatbin" "--image=profile=sm_61,file=C:\\Users\\GUANGY~1\\AppData\\Local\\Temp\\empty-78d68a\\empty-sm_61.o" "--image=profile=compute_61,file=C:\\Users\\GUANGY~1\\AppData\\Local\\Temp\\empty-90ac4b\\empty-sm_61.s"
 "C:\\LLVM\\LLVM-main-win64\\bin\\clang++.exe" "-cc1" "-triple" "x86_64-pc-windows-msvc19.29.30141" "-target-sdk-version=11.2" "-aux-triple" "nvptx64-nvidia-cuda" "-emit-obj" "-mrelax-all" "-mincremental-linker-compatible" "--mrelax-relocations" "-disable-free" "-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "empty.cu" "-mrelocation-model" "pic" "-pic-level" "2" "-mframe-pointer=none" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-fcoverage-compilation-dir=D:\\rules_cuda\\examples\\basic" "-resource-dir" "C:\\LLVM\\LLVM-main-win64\\lib\\clang\\15.0.0" "-internal-isystem" "C:\\LLVM\\LLVM-main-win64\\lib\\clang\\15.0.0\\include\\cuda_wrappers" "-include" "__clang_cuda_runtime_wrapper.h" "-D" "_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH" "-internal-isystem" "C:\\LLVM\\LLVM-main-win64\\lib\\clang\\15.0.0\\include" "-internal-isystem" "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30133\\ATLMFC\\include" "-internal-isystem" "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30133\\include" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\include\\um" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\ucrt" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\shared" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\um" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\winrt" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\cppwinrt" "-internal-isystem" "C:\\LLVM\\LLVM-main-win64\\lib\\clang\\15.0.0\\include" "-internal-isystem" "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30133\\ATLMFC\\include" "-internal-isystem" "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30133\\include" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\include\\um" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\ucrt" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\shared" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\um" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\winrt" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\cppwinrt" "-internal-isystem" "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.2/include" "-std=c++14" "-fdeprecated-macro" "-fdebug-compilation-dir=D:\\rules_cuda\\examples\\basic" "-ferror-limit" "19" "-fmessage-length=318" "-fno-use-cxa-atexit" "-fms-extensions" "-fms-compatibility" "-fms-compatibility-version=19.29.30141" "-fdelayed-template-parsing" "-fcxx-exceptions" "-fexceptions" "-fcolor-diagnostics" "-fcuda-include-gpubinary" "C:\\Users\\GUANGY~1\\AppData\\Local\\Temp\\empty-17b90b.fatbin" "-cuid=25dcc15944fa3f58" "-faddrsig" "-o" "empty.o" "-x" "cuda" ".\\empty.cu"
```

`uint32_t` is refered due to `"-include" "__clang_cuda_runtime_wrapper.h"`. Manually add `-includestdint.h` cannot workaround the problem.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztW1lz2zgS_jXyC4osHqKOBz8okp1xjZ2k4iO7TywQACWMSYAFgrL876cBXpIix_GMnWNXKZVEAg2g0cfX6DaSSPp4-uHjzdkgnKHByGN5oR9dUsEj4iUqeV5kjwgLZDtQyjPmDrzFwJvV347jNK9BWH_QhSAyL7DmScbQ9c0lKpRcc8ooSh7R1fXdHGkpM7LCXGzPBCvWn0I-MFWuWJbVHSTDYjkI3sHHZRuGnFLTQbggdZM_RM4GkYpi5BDkDqJ5uwXkOKbZAVZWQD8IhkysYZvz28Us_jS7-SO-873Yb8mWReVgRQxpmccjf4-rbVY_s7LKNBdLpFcMpTLL5IN5Y0pJBSsc3Fb9eiGsDBEXJKuMTFIlczQI50nFM-2ASEKjCr-b5fCAuemP5peXd1fNj5ODPB1gYzSElown8F1LLpr7keu5Hjw0k8BTHNvO2Gw9VpXQPGfxg8JFwZQLMpgNv5OFT0ouFc7ROVCUaBBMNpPRIJhCzxUnSpYy1eiOlxXO0LWuKJfQE3i-ITgTmqlC8dIwdDeHrxswjNIMvbav_tANpm7o-WG4wzzJrUpn01-Xxcc1zkp3l8mfzU5MpGKWp2gYwXdgfL61WeOpvufZtlvBNgUjGuRoXBn4VGgNPsmlGARz1HUaT0K-5_rotqBYMxQgqZBg4L9uhwp2gbeZHQ2is_rJr_eBlkwwhc3ohxUTzfzGNVPotG7tfsOvb8CblZQaEVyVzODfIHqnVwYHgSXgD-wL5a2SBsG5Qbcd0UYAM5OV1kVpdB2cw2fJ9apKXGAFXvYGw3eSyQR-gvFkPPYnPiWRl5Io9SiZ0tF4OvbCYThmie9FLEimKZCWOoNv0C187ywehJfR1HMuR75n7GlrYzNKjRBgu84inl1efvwSzz9efbq4PPsczz4sYmAlvjv7fH3x8UN8dXF9NbuZ_2EigJZbIiQ5uBXfgM1yvS_FXwSz0Qu2d8gMHniWISotrGvFyf0TsW4v4lXiXsgHgfRjwZDAOQOvHldc6DCIQdPjHVUIiqxJScHAzoQAc0uYFSyFNrs0SNrdXcl82ihtKChPU6aYIAzJ1Oj1oKT8OLBxXKAdI7bhWYEeQb1PDQUhd0MZRHC25rLqpnBrjn56-IYNvpUpKBvjy988iI_D_ejzSquBcSsuSk7qIBf5Btr96U5EedYtwndgyBQ9ygrlDM6Y0EaqHYLzmvc4pmCAhMUxiBDAiKGWCsWxWK_zeMl0XOYsjwvJTZAEGF5LmBusNI4LDe9TNBi_a-LGV_-6QHIoRsP7h7uLxcUMvf90i-bgPZU9_JnYe881dBubhJ-177tBjc3tSQVkVQvIBtyREQt4PLOn7b3dIspAwAqsYwWuXbNjREdZCqIs-VJAVxzbAWhrZPjkrvY39zpRciuYdBBosGLJ14Ap_WmYi1QenMaaURvyUW1p6NtxM8vW7Y8D6cRfAEMuECCP-TTwvDHGIRmF0XRMRtNRRGkwirwoong8SdIxifwuHt5gBaZixA-nrng0dApiPIDKh9LJyzVpDwKKYYpySVlmaAtZ8k3ryqXGWcboglsjf86tkjbLgR0GDXFPf3BIM8o-7KEnzGHmcQjx20fwwyJrO8S60BvYlYCEi2OLjC0drja7tE8IoCG_bh8oLzFkck6qWL98xrBycKmdhIHNMCfB5J4Juj_G6gsUzVNuXLLrJFhRB44uFXMMLpRtlxWDQUrb3LR2KWlLpFgmCTZxyKk1VHeAXjTv-M9T8F_mtHAQLkBpbV8qpKNkJYwdOzaX2OoAdhNZMthd3jZDq5llaX0GOnZEag3KIUXVi9UBNbYz2uDES6cGsI672qDrFyassAC9SPEoCw360CtZaQcgmQDbvXjASe8dG2RATgnXBLbfdPamtY9dz8NXj2BbIGZg1bgcT1rW-2cXjuVJJ-pGBCnDulItP2CwYIrjYI-opPdOe9gPF_VSOwS9IOss_CVr7EhVgwvDeiDA2nzNAcux-AcadB6wEtx4VmOTLKmWS6YcXdnmcLGkybZVUBiQgukqQB6pHretA04KslKEmd6vlPGMn9dBdyvu9qG3md2ar8AZ2NBjqVn-iivY5z5WNeGqPUCUPQc1Rf36zJmjGbNoqb_3CPYvx_0oKX3vck_n-N9M8_tMfz_Zb_P9rZS_z_q_SvzhM7u5vDqf_67cvyrHX-rwhv7kusXDs5vz_1wv_qzfhu7kgC9U-Vut7h9yPUBUz_Wn3tBvba4iSv9kFsqVOY_-bDn8bEUATvx0TZCi-BdsDP7xKeCljnjE2d-K-yPOHnH2iLPfwNm9YmWXElBWQCpg88Ecg6Nu5wq40tJkalvEkF04dZmlzltNqhAuFt1mVAWbsGfq-p1tcF50wJ3gsk9s0zqHyXjOWy4BC9pOSKZLvITMm4mlrZuG_qTvLB220UyY7Kvcbm3_YMszrh-f7NhO3KYNkAz9rV1m-BHkAcoqYJuQe2Mg73OslGw2sD5hhd5Z_0ATkRlskXK8FLKEpL7rIRU3-ggiSogfTYfDFIdp1O1wEcfv5_P4j9ndWbz4Mvt8HsTz84t4dn1leG6pWmX1tnRbmnzHPr6_nX14_9_B-Mxv8L0oFlg3armUkE42-Aq7bHRl6hPO1MNkmGy31IW0jvVN87BVk3G3yOsCx6FS0StF8q6kBClzX8LI-1LFxy7ntMX0rQrMTibuyErDirZM8xaCHE_oaIK_FuQP19qP0EWKNTxj1Tldrw6HmALGm4jYHydTL3Hrxbv1eA7AAX5SKGl1296DCObN6w9V8yF-iJUvezumXmoOb1TFPVyZPYC5zxbVvir6fqNAzCCgODL5q4MGBYC-cbbqpjkET8VyJjTEZRPhmHL6uz6d4pqBfZm2Q5vfppZc9PEWHiGarruuvtq4X2EWUnS7Sk1Z2ZQbRX80SAuQltAKEw3UsvO8J8vROZCXWlWm5Ah64Ljst5dWwhgHmEBioAhi4p5RPFWR1pVgW532b0FbZfN_XEKFoA3aMWePVzroHOuqr1dXPebtx7z9mLcf8_b_m7z9CHhHwDsC3hHwjoD3tn8QenF99FephULOVZWQq2ywA1xuuvH_C1XS5tJRrSlTzNupMb19KemZKm2KKYU9d1tujaNOzjtTeUHB9OA9RXjt7kjW_5tJMXNpmiJase7u84vzMBjloissINKZ_xlFqb0J2UwC7gBLAh0s2FzufpDqHtv0vrlKLSGXzpsLlif0NKTTcIpPNNcZO73Dyt6zthei-3uZzSBzaRw1iHFSqez0ZTcmjfeWZWVqCOfRcORNT1anKfUmk-FkSCaePxn645QMx5Tg0TBNUpr40xNI_VlWng4icPBAsAdkpzByiBYn_DTwgsALg6k3jkbh2E1DL_DZBCepT2kEeDD0GBytMtfw4Uq1PFGnliUAgRI6M17qsu_Epb3myuxyMD-u9EqqU5LJiq6wOLFrn1re_wYZIAFm">