-
Notifications
You must be signed in to change notification settings - Fork 135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rework mdspan concept emulation #2213
Rework mdspan concept emulation #2213
Conversation
It is proving difficult to handle for msvc and also the one we are using in libcu++ it much cleaner Gets NVIDIA#2160 compiling on MSVC
// nvcc cannot deduce this constructor when using _LIBCUDACXX_REQUIRES | ||
template < | ||
class _IntegralTypes, | ||
/* requires */ ( | ||
// MSVC 19.32 does not like using index_type here, requires the typename _Extents::index_type | ||
// error C2641: cannot deduce template arguments for '_CUDA_VSTD::layout_stride::mapping' | ||
_CCCL_TRAIT(_CUDA_VSTD::is_convertible, const remove_const_t<_IntegralTypes>&, typename _Extents::index_type) | ||
&& _CCCL_TRAIT( | ||
_CUDA_VSTD::is_nothrow_constructible, typename _Extents::index_type, const remove_const_t<_IntegralTypes>&))) | ||
__MDSPAN_INLINE_FUNCTION | ||
constexpr mapping(extents_type const& __e, | ||
_CUDA_VSTD::span<_IntegralTypes, extents_type::rank()> const& __s) noexcept | ||
enable_if_t<_CCCL_TRAIT(is_convertible, const remove_const_t<_IntegralTypes>&, index_type), int> = 0, | ||
enable_if_t<_CCCL_TRAIT(is_nothrow_constructible, index_type, const remove_const_t<_IntegralTypes>&), int> = 0> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This might have been the breaking thing, because nvcc has issues deducing the template arguments here otherwise
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wow. this looks like it was a lot of work. THANK YOU.
🟩 CI finished in 3h 24m: Pass: 100%/417 | Total: 2d 02h | Avg: 7m 19s | Max: 1h 02m | Hits: 98%/31306
|
Project | |
---|---|
CCCL Infrastructure | |
+/- | libcu++ |
CUB | |
Thrust | |
CUDA Experimental | |
pycuda |
Modifications in project or dependencies?
Project | |
---|---|
CCCL Infrastructure | |
+/- | libcu++ |
+/- | CUB |
+/- | Thrust |
+/- | CUDA Experimental |
+/- | pycuda |
🏃 Runner counts (total jobs: 417)
# | Runner |
---|---|
305 | linux-amd64-cpu16 |
61 | linux-amd64-gpu-v100-latest-1 |
28 | linux-arm64-cpu16 |
23 | windows-amd64-cpu16 |
It is proving difficult to handle for msvc and also the one we are using in libcu++ it much cleaner Gets NVIDIA#2160 compiling on MSVC
It is proving difficult to handle for msvc and also the one we are using in libcu++ it much cleaner
Gets #2160 compiling on MSVC