-
Notifications
You must be signed in to change notification settings - Fork 75
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
Replace alpaka metaprogramming parts with boost-1.66 mp11 #459
Comments
Note: We are currently testing |
This is really bad news. |
It looks like CUDA 8 is working but not CUDA 9. Alex creates an issue for CUDA and for mp11 directly.
|
This is what I figured out and wrote to Nvidia: I am trying to port my application to use the recently added boost::mp11 C++11 metaprogramming library. However just including the template library using nvcc 9.1 without even using it at all fails to compile with the error: boost/mp11/utility.hpp:141:184: error: expansion pattern ‘boost::mp11::detail::mp_no_type’ contains no argument packs. Line 141 in boost/mp11/utility.hpp looks like this:
The test application looks like this:
It is compiled wiht "-std=c++11"; I also tried c++14, but it doesn't make any difference. "nvcc -v --keep" shows, that the error happens while compiling the host code:
When I try to explicitly call this command by hand the same error happens, but "mp_quote" now looks like this in test.cudafe1.cpp:
which explains the error as "detail::mp_no_type..." does not make much sense. With Cuda 8 the code compiles without failes and "mp_quote" looks like this:
So the "..." for "detail::mp_no_type" is missing (as it should be). The rest of "mp_quote" looks the same. I am using "Cuda compilation tools, release 9.1, V9.1.85" shipped with Debian testing for Cuda 9 tests and "Cuda compilation tools, release 8.0, V8.0.44" of our in house GPU cluster's module system. |
Can you please add your nvidia bug report number for documentation? |
Please also check how compiles with |
cc @sbastrakov |
I directly wrote a mail as I got Ajax errors while reporting the bug 🙄 I did check |
I understand your frustration. Nevertheless, you might want to re-submit it via the official channel they have, maybe from a different computer. To my experience, that's to most reliable way to get feedback/improvement while other communications can get lost (and did a lot in the past). |
That's weird, they don't use the same splitter: https://llvm.org/docs/CompileCudaWithLLVM.html#compilation-models |
I also tried to compile the mini example with clang7 and got
|
Interesting, huh... maybe it's just an actual mp11 bug. @theZiz wherever the root might be, please also report (& link) the issue in mp11 in Boost's |
@ax3l Will do so (mp11 trac)
Well, I just tried with different browsers and slightly different details, but it failed again. I will maybe try at home, maybe our network is blacklisted? But a TU Dresden VPN connection does not work, too... 😕 |
Let's see how you meta-issue on the tracker works out for this one ;-) Just wanted to warn you that this is the most reliable channel to get things changed :) |
If I don't get a respone until next week, I will ask you or @psychocoderHPC to submit the bug for me if it is working for you. 🙄 |
There's also a |
The problem is, as mentioned in my bug report, that the nvidia preprocessor generates invalid code, so it's not the tokenizer of the compiler itself. I guess it's some hacky half perl script half lex and yacc failing here. 😆 However I will try to add spaces, would be great, if this would solve the problem... |
We tested if offline: if you refactor the Unfortunately, that's just yet another issue ;) |
|
Nope, I tested replacing |
Clang issue reported upstream and unrelated to what we see in |
Okay, I guess I found a work around for boost::mp11. The problem occurs on code like this:
Everytime I figured out I can prevent
This occurs on 5 places in the boost mp11 code. I added an intermediate struct for every one and now my code compiles with But tbh, I still need to check whether the code is also correct. 🤣 But it looks promising! 👍 |
for the |
I created an issue in the boost |
Cool, just open a PR on github as well, link the trac in it and link the PR in trac :) |
It's the plan. :) |
The |
I will close this ticket. |
The boost-1.66 library mp11 should be able to replace the alpaka metaprogramming utilities completely (because the alpaka ones have been implemented based on the same blog posts leading to mp11).
This would increase the required boost version to at least boost-1.66.
The text was updated successfully, but these errors were encountered: