Please see the following posts:
opened 10:55PM - 13 May 20 UTC
category: build/install
category: gpu/cuda (contrib)
platform: win32
##### System information (version)
- OpenCV => 4.3.0
- Operating System / Plat… form => Windows 10 64 Bit v 1909
- Compiler => Visual Studio 2019 community
- CUDA => v10.2.89
- GSTREAMER => v1.16.2
- NINJA => v1.10.0
- CMAKE => v3.17.2
- NVIDIA RTX2070 with Q-Max design
Please refer to the attached build config "BuildCONFIG.txt"
[BuildCONFIG.txt](https://github.com/opencv/opencv/files/4625103/BuildCONFIG.txt)
Please refer to the build file (NinjaRELEASECuDNNGStreamerNonFree.txt) here:
[NinjaRELEASECuDNNGStreamerNonFree.txt](https://github.com/opencv/opencv/files/4625106/NinjaRELEASECuDNNGStreamerNonFree.txt)
##### Detailed description
When i build "RELEASE" version, I see the following error in building gpu_mat.cu
And the error is:
**gpu_mat.cu**
C:/Nitin/OpenCVCode/opencv4_3_0/modules/core/include\opencv2/core/traits.hpp(374): **error C2993: 'T': illegal type for non-type template parameter '__formal'**
C:/Nitin/OpenCVCode/opencv4_3_0/modules/core/include\opencv2/core/traits.hpp(374): note: see reference to class template instantiation 'cv::traits::internal::CheckMember_fmt<T>' being compiled
C:/Nitin/OpenCVCode/opencv4_3_0/modules/core/include\opencv2/core/traits.hpp(374): **error C2065: '__T0': undeclared identifier**
C:/Nitin/OpenCVCode/opencv4_3_0/modules/core/include\opencv2/core/traits.hpp(374): **error C2923: 'std::_Select<__formal>::_Apply': '__T0' is not a valid template type argument for parameter '<unnamed-symbol>'**
C:/Nitin/OpenCVCode/opencv4_3_0/modules/core/include\opencv2/core/traits.hpp(374): e**rror C2062: type 'unknown-type' unexpected
CMake Error at cuda_compile_1_generated_gpu_mat.cu.obj.Release.cmake:280 (message):
Error generating file**
C:/Nitin/OpenCVCode/opencv4_3_0/build/modules/world/CMakeFiles/cuda_compile_1.dir/__/core/src/cuda/./cuda_compile_1_generated_gpu_mat.cu.obj
Whereas, DEBUG build builds just fine !
opened 12:10AM - 04 Apr 20 UTC
closed 05:47PM - 11 May 20 UTC
We experience intermittent compilation failure on our CI server.
The CXX compil… er identification is MSVC 19.25.28612.0. The CUDA compiler identification is NVIDIA 10.2.89.
Retrying the compilation typically succeeds. Our CI server now retries compiling the project up to 5 times to avoid this issue. (The issue has never occurred 5 times in a row yet.)
The error looks as follows
```
[2020-03-29T04:47:50.014Z] C:\PROGRA~1\NVIDIA~2\CUDA\v10.2\bin/../include\thrust/detail/allocator/allocator_traits.h(42): error C2993: 'T': illegal type for non-type template parameter '__formal'
[2020-03-29T04:47:50.014Z] C:\PROGRA~1\NVIDIA~2\CUDA\v10.2\bin/../include\thrust/detail/allocator/allocator_traits.h(42): note: see reference to class template instantiation 'thrust::detail::allocator_traits_detail::has_value_type<T>' being compiled
[2020-03-29T04:47:50.014Z] C:\PROGRA~1\NVIDIA~2\CUDA\v10.2\bin/../include\thrust/detail/allocator/allocator_traits.h(42): error C2065: 'U1': undeclared identifier
[2020-03-29T04:47:50.014Z] C:\PROGRA~1\NVIDIA~2\CUDA\v10.2\bin/../include\thrust/detail/allocator/allocator_traits.h(42): error C2923: 'std::_Select<__formal>::_Apply': 'U1' is not a valid template type argument for parameter '<unnamed-symbol>'
[2020-03-29T04:47:50.014Z] C:\PROGRA~1\NVIDIA~2\CUDA\v10.2\bin/../include\thrust/detail/allocator/allocator_traits.h(42): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
[2020-03-29T04:47:50.014Z] C:\PROGRA~1\NVIDIA~2\CUDA\v10.2\bin/../include\thrust/detail/allocator/allocator_traits.h(42): error C2144: syntax error: 'unknown-type' should be preceded by ')'
[2020-03-29T04:47:50.014Z] C:\PROGRA~1\NVIDIA~2\CUDA\v10.2\bin/../include\thrust/detail/allocator/allocator_traits.h(42): error C2144: syntax error: 'unknown-type' should be preceded by ';'
[2020-03-29T04:47:50.014Z] C:\PROGRA~1\NVIDIA~2\CUDA\v10.2\bin/../include\thrust/detail/allocator/allocator_traits.h(42): error C2238: unexpected token(s) preceding ';'
[2020-03-29T04:47:50.014Z] C:\PROGRA~1\NVIDIA~2\CUDA\v10.2\bin/../include\thrust/detail/allocator/allocator_traits.h(42): error C2059: syntax error: ')'
[2020-03-29T04:47:50.014Z] C:\PROGRA~1\NVIDIA~2\CUDA\v10.2\bin/../include\thrust/detail/allocator/allocator_traits.h(42): error C2988: unrecognizable template declaration/definition
[2020-03-29T04:47:50.014Z] C:\PROGRA~1\NVIDIA~2\CUDA\v10.2\bin/../include\thrust/detail/allocator/allocator_traits.h(42): error C2059: syntax error: '<end Parse>'
```
This affects at least two projects
- https://github.com/apache/incubator-mxnet/issues/17935
- https://github.com/pytorch/pytorch/issues/25393
I keep hearing NVIDIA team thinks it is a bug but do not have a definitive action plan.
What is the plan of action (tentative release version or date) to fix it ?
njuffa
May 15, 2020, 12:48pm
2
From the thread you linked:
I confirmed with the nvcc team that this issue was recently fixed and that the fix will be available in the next version of the CUDA Toolkit. […]
Could you clarify if next version refers to Cuda 11 […]
the information I was given said 11.0
That seems like a very definite plan of action. As for release date , NVIDIA typically does not pre-announce those. Since they just introduced Ampere today, I would expect CUDA 11 real soon now .
was hoping to see a release plan from NVIDIA. Helping others in the community too. Thanks for stressing out an imminent release post hardware release.