Skip to content
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

[DO NOT MERGE] Testing LLVM CI config #411

Draft
wants to merge 3 commits into
base: dev
Choose a base branch
from

Conversation

sleeepyjack
Copy link
Collaborator

No description provided.

Clang complains:

  In file included from cuco/static_map.cuh:24:
  In file included from cuco/pair.cuh:147:
  In file included from cuco/detail/pair/pair.inl:54:
  cuco/detail/pair/tuple_helpers.inl:18:8: error:
        cannot specialize a dependent template
     18 | struct tuple_size<cuco::pair<T1, T2>> : integral_constant<size_t, 2> {
        |        ^
  cuco/detail/pair/tuple_helpers.inl:22:8: error:
        cannot specialize a dependent template
     22 | struct tuple_size<const cuco::pair<T1, T2>> : tuple_size<cuco::pair<T1, T2>> {
        |        ^
  cuco/detail/pair/tuple_helpers.inl:26:8: error:
        cannot specialize a dependent template
     26 | struct tuple_size<volatile cuco::pair<T1, T2>> : tuple_size<cuco::pair<T1, T2>> {
        |        ^
  cuco/detail/pair/tuple_helpers.inl:30:8: error:
        cannot specialize a dependent template
     30 | struct tuple_size<const volatile cuco::pair<T1, T2>> : tuple_size<cuco::pair<T1, T2>> {
        |        ^
  cuco/detail/pair/tuple_helpers.inl:34:8: error:
        cannot specialize a dependent template
     34 | struct tuple_element<I, cuco::pair<T1, T2>> {
        |        ^
  cuco/detail/pair/tuple_helpers.inl:39:8: error:
        cannot specialize a dependent template
     39 | struct tuple_element<0, cuco::pair<T1, T2>> {
        |        ^
  cuco/detail/pair/tuple_helpers.inl:44:8: error:
        cannot specialize a dependent template
     44 | struct tuple_element<1, cuco::pair<T1, T2>> {
        |        ^
  cuco/detail/pair/tuple_helpers.inl:49:8: error:
        cannot specialize a dependent template
     49 | struct tuple_element<0, const cuco::pair<T1, T2>> : tuple_element<0, cuco::pair<T1, T2>> {
        |        ^
  cuco/detail/pair/tuple_helpers.inl:53:8: error:
        cannot specialize a dependent template
     53 | struct tuple_element<1, const cuco::pair<T1, T2>> : tuple_element<1, cuco::pair<T1, T2>> {
        |        ^
  cuco/detail/pair/tuple_helpers.inl:57:8: error:
        cannot specialize a dependent template
     57 | struct tuple_element<0, volatile cuco::pair<T1, T2>> : tuple_element<0, cuco::pair<T1, T2>> {
        |        ^
  cuco/detail/pair/tuple_helpers.inl:61:8: error:
        cannot specialize a dependent template
     61 | struct tuple_element<1, volatile cuco::pair<T1, T2>> : tuple_element<1, cuco::pair<T1, T2>> {
        |        ^
  cuco/detail/pair/tuple_helpers.inl:65:8: error:
        cannot specialize a dependent template
     65 | struct tuple_element<0, const volatile cuco::pair<T1, T2>> : tuple_element<0, cuco::pair<T1, T2>> {
        |        ^
  cuco/detail/pair/tuple_helpers.inl:69:8: error:
        cannot specialize a dependent template
     69 | struct tuple_element<1, const volatile cuco::pair<T1, T2>> : tuple_element<1, cuco::pair<T1, T2>> {
        |        ^

If we dig in, include/cuco/detail/pair/pair.inl is trying to teach
tuple_size and tuple_element to work with cuco::pair's.

thrust/pair.h defines thrust::tuple_size to be:

  template <class T>
  using tuple_size = ::cuda::std::tuple_size<T>;

This is a using statement, not a class.  So, we only need to teach
cuda::std::{tuple_size, tuple_element} how to work with cuco::pair, not
thrust::{tuple_size, tuple_element}.

Signed-off-by: Austin Schuh <[email protected]>
Clang complains:

  external/com_github_nvidia_cuco/include/cuco/detail/static_map.inl:446:21: error:
        explicit qualification required to use member 'initial_slot' from dependent base class
    446 |   auto current_slot{initial_slot(insert_pair.first, hash)};
        |                     ^
  frc971/orin/cuda.cc:219:32: note: in instantiation of function template
        specialization 'cuco::static_map<unsigned long, unsigned
        long>::device_mutable_view::insert_and_find<cuco::detail::XXHash_32<unsigned long>,
        thrust::equal_to<unsigned long>>' requested here
    219 |   auto [iter, inserted] = view.insert_and_find(thrust::make_pair(union_markers[i], 1));
        |                                ^

Signed-off-by: Austin Schuh <[email protected]>
Copy link

copy-pr-bot bot commented Dec 20, 2023

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@sleeepyjack
Copy link
Collaborator Author

/ok to test

@sleeepyjack
Copy link
Collaborator Author

/ok to test

@sleeepyjack
Copy link
Collaborator Author

/ok to test

@sleeepyjack
Copy link
Collaborator Author

/ok to test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants