FLAMEGPU / FLAMEGPU2

FLAME GPU 2 is a GPU accelerated agent based modelling framework for CUDA C++ and Python
https://flamegpu.com
MIT License
107 stars 22 forks source link

Drop CUDA 10.x & c++14 & CMake < 3.18 support #611

Closed ptheywood closed 2 years ago

ptheywood commented 3 years ago

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.

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:

For now, we can add deprecation warnings at cmake configure time, stating C++17/CUDA 11/CMake 3.18 will be required.

Robadob commented 3 years ago

Prometheus (plgrid)

11.0 appears available, when i do module avail

image image

ptheywood commented 3 years ago

We will drop CUDA 10.x support when possible, but initial pre-releases will stil support it (but deprecated). CMake warning?

ptheywood commented 3 years ago

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.