question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Windows build failure on CUDA 11.2

See original GitHub issue

This fails with CuPy v8.6.0 and likely v9.0.0rc1 as well: https://github.com/conda-forge/cupy-feedstock/pull/113#issuecomment-807202827

    nvcc warning : The 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
    cupy_thrust.cu
    cupy/cuda/cupy_thrust.cu(145): error C3615: constexpr function 'thrust::less<thrust::complex<float>>::operator ()' cannot result in a constant expression
    cupy/cuda/cupy_thrust.cu(148): note: failure was caused by call of undefined function or one not declared 'constexpr'
    cupy/cuda/cupy_thrust.cu(148): note: see usage of '_cmp_less'
    cupy/cuda/cupy_thrust.cu(157): error C3615: constexpr function 'thrust::less<thrust::complex<double>>::operator ()' cannot result in a constant expression
    cupy/cuda/cupy_thrust.cu(160): note: failure was caused by call of undefined function or one not declared 'constexpr'
    cupy/cuda/cupy_thrust.cu(160): note: see usage of '_cmp_less'
    cupy/cuda/cupy_thrust.cu(169): error C3615: constexpr function 'thrust::less<thrust::tuple<unsigned __int64,thrust::complex<float>,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type>>::operator ()' cannot result in a constant expression
    cupy/cuda/cupy_thrust.cu(172): note: failure was caused by call of undefined function or one not declared 'constexpr'
    cupy/cuda/cupy_thrust.cu(172): note: see usage of '_tuple_less'
    cupy/cuda/cupy_thrust.cu(181): error C3615: constexpr function 'thrust::less<thrust::tuple<unsigned __int64,thrust::complex<double>,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type>>::operator ()' cannot result in a constant expression
    cupy/cuda/cupy_thrust.cu(184): note: failure was caused by call of undefined function or one not declared 'constexpr'
    cupy/cuda/cupy_thrust.cu(184): note: see usage of '_tuple_less'
    cupy/cuda/cupy_thrust.cu(223): error C3615: constexpr function 'thrust::less<float>::operator ()' cannot result in a constant expression
    cupy/cuda/cupy_thrust.cu(226): note: failure was caused by call of undefined function or one not declared 'constexpr'
    cupy/cuda/cupy_thrust.cu(226): note: see usage of '_real_less'
    cupy/cuda/cupy_thrust.cu(235): error C3615: constexpr function 'thrust::less<double>::operator ()' cannot result in a constant expression
    cupy/cuda/cupy_thrust.cu(238): note: failure was caused by call of undefined function or one not declared 'constexpr'
    cupy/cuda/cupy_thrust.cu(238): note: see usage of '_real_less'
    cupy/cuda/cupy_thrust.cu(247): error C3615: constexpr function 'thrust::less<thrust::tuple<unsigned __int64,float,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type>>::operator ()' cannot result in a constant expression
    cupy/cuda/cupy_thrust.cu(250): note: failure was caused by call of undefined function or one not declared 'constexpr'
    cupy/cuda/cupy_thrust.cu(250): note: see usage of '_tuple_less'
    cupy/cuda/cupy_thrust.cu(259): error C3615: constexpr function 'thrust::less<thrust::tuple<unsigned __int64,double,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type>>::operator ()' cannot result in a constant expression
    cupy/cuda/cupy_thrust.cu(262): note: failure was caused by call of undefined function or one not declared 'constexpr'
    cupy/cuda/cupy_thrust.cu(262): note: see usage of '_tuple_less'
    cupy/cuda/cupy_thrust.cu(287): error C3615: constexpr function 'thrust::less<__half>::operator ()' cannot result in a constant expression
    cupy/cuda/cupy_thrust.cu(288): note: failure was caused by call of undefined function or one not declared 'constexpr'
    cupy/cuda/cupy_thrust.cu(288): note: see usage of '_real_less'
    cupy/cuda/cupy_thrust.cu(297): error C3615: constexpr function 'thrust::less<thrust::tuple<unsigned __int64,__half,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type,thrust::null_type>>::operator ()' cannot result in a constant expression
    cupy/cuda/cupy_thrust.cu(300): note: failure was caused by call of undefined function or one not declared 'constexpr'
    cupy/cuda/cupy_thrust.cu(300): note: see usage of '_tuple_less'
    error: command 'D:\\bld\\cupy_1616682886118\\_build_env\\Library\\bin\\nvcc.bat' failed with exit status 2

My theory is that on our Windows CI we use VS2015, but on Conda-Forge we use VS2017. According to the VS docs the C3615 error is only raised with VS2017, so we didn’t catch it.

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:5 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
leofangcommented, Mar 26, 2021
1reaction
kmaehashicommented, Mar 26, 2021

I guess we should have used the value of _MSVC_LANG to determine use of constrexpr, instead of just _WIN32 flag…? https://github.com/NVIDIA/thrust/blob/96a7e7b6bd99027c8450b11d02195a0209df6fa7/thrust/detail/config/cpp_dialect.h#L61-L69

Read more comments on GitHub >

github_iconTop Results From Across the Web

Cuda installation: error message with MVS 'build solution' step
I'm trying to install Cuda on my windows 10 x 64 bits 8 Go (Ram). I have a NVIDIA Quadro M620 which seems...
Read more >
Error build darknet windows 10 cuda and cudnn 11.2
I want to build darknet for YOLOv4. my configuration is: win10, microsoft visual studio code 2019, openCV 4.5.1, cuda and cudnn 11.2.
Read more >
Build pytorch 1.8 failure on Windows with cuda 11.2.2 - C++
It seems that calling std::floor from a cuda kernel function is forbidden. Is there anyone who can help me with this? Thanks!
Read more >
CUDA 11.2 SDK Incorrect Detection Under Windows - Usage
It looks like that you haven't installed the Visual Studio CUDA integration components for CUDA 11.2 and therefore it is finding the old...
Read more >
Install TensorFlow with pip
For the CPU-only build use the pip package named tensorflow-cpu . Here are the quick versions ... conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found