Closed ptheywood closed 2 years ago
Prometheus (plgrid)
11.0 appears available, when i do module avail
We will drop CUDA 10.x support when possible, but initial pre-releases will stil support it (but deprecated). CMake warning?
One downside to this change will be that there is no supported CUDA version for FLAME GPU 1.x and FLAME GPU 2.x.
It's possible to install multiple version side by side, but it might annoy some users / hinder people trying to port between them, especially on windows.
If we want to address this at all, a final FLAME GPU 1.5.x/1.6 release which adds CUDA 11.x support and directs users to FLAME GPU 2.x for future versions might not be a terrible idea? Fixing FLAME GPU 1 for CUDA 11.x on linux is easy. Windows probably just needs a different set of vcxproj files depending on which CUDA version you wish to use (for separate include directories). I.e don't provide our own version of cub/thrust with CUDA 11 as a new enough version ships with CUDA 11.
As CUDA 11.x has been available for for 15 months now, it is avialable in most places we need it to be (although there are still a few HPC systems which we use where it is not quite available).
Although I have generally wanted to keep CUDA 10.x support in the past for compatability, I'm becoming more and more keen on dropping 10.x support for several reasons.
<filesystem>
constexpr
enhancements, includingif constexpr
namespace flamegpu::util {
doesn't require two expressions.<any>
, removing the need forflamegpu::util::Any
static_assert
changes that might remove the need forflamegpu::util::detail::StaticAssert
If we can, the time to do this is before we have a full non-prerelease release.
Outstanding HPC sites i'm aware of that we have access to and FLAME GPU 2.x is already / expected to be used on:
Once these systems no longer prevent us from dropping support entirely, we can:
FindCUDAToolkit
to replace custom NVTX and NVRTC find modules (+ probably some other things).set(CMAKE_CUDA_RUNTIME_LIBRARY shared)
for CUDA language, elseCUDA::cudart[_static]
link target withfindCUDAToolkit
)findNVTX
module, it is no longer required, and with CUDA >= 10.0 already we expect NVTX3 to be available if any NVTX is.~CUDA::nvToolsExt
, which finds NVTX1 not 3: https://gitlab.kitware.com/cmake/cmake/-/issues/21377<filesystem>
rather than experimental.std::Any
(is this going to techincally be an api break?)~<charconv>
andstd::from_chars
which is potentially more performant thanatoi
etc.~std::from_chars
doesn't have floating point support in all host compiler versions we would have to support at this time (GCC >= 11 required, clang doesn't support it, MSVC was the earliest).string_view
can be used in constexpr, probably preferable to string literals in some cases (version info?)~const auto &[key, val]
map iteration~For now, we can add deprecation warnings at cmake configure time, stating C++17/CUDA 11/CMake 3.18 will be required.