GridTools / gridtools

Libraries and utilities to develop performance portable applications for weather and climate.
https://gridtools.github.io/gridtools
Other
60 stars 21 forks source link

Workarounds for CUDA 12.1 and 12.2 #1764

Closed havogt closed 1 year ago

havogt commented 1 year ago

CUDA 12.1 and 12.2 have a problem with constexpr, e.g. in the context of CTAD, see #1766. The workaround is to do pre-C++17 make_tuple-construction or construct from a (possibly moved-from) lvalue.

CI: add GCC + CUDA 12.1/12.2 and NVHPC 23.7

havogt commented 1 year ago

launch jenkins

havogt commented 1 year ago

launch jenkins

havogt commented 1 year ago

launch perftests

havogt commented 1 year ago

Some minor cleanups, otherwise not much to do in my opinion.

One question though, why not just use gridtools::make_tuple everywhere, why a make_1_tuple?

I wanted to emphasize that this is a workaround that might be needed for users. If you see weird behavior in your code, you might compare against the example and find the problem.

havogt commented 1 year ago

launch jenkins

petiaccja commented 1 year ago

Some minor cleanups, otherwise not much to do in my opinion. One question though, why not just use gridtools::make_tuple everywhere, why a make_1_tuple?

I wanted to emphasize that this is a workaround that might be needed for users. If you see weird behavior in your code, you might compare against the example and find the problem.

I understand, however, is this workaround ever gonna go away? (Ever = within 1-2 years.) The problem is, unless they fix their older compiler releases or we simply stop supporting those specific releases, we have to keep this workaround in the code, and then I'd rather use a proper interface that works consistently even if it's not obvious why that's used.

havogt commented 1 year ago

launch jenkins