Releases: FLAMEGPU/FLAMEGPU2
FLAME GPU 2.0.0-rc.1
FLAME GPU 2.0.0-rc.1 is the second release-candidate for FLAME GPU 2.0.0
As a release-candidate the API should be stable, unless any issues are found during the release-candidate phase which require a breaking change to resolve.
There are several important additions and a breaking change since FLAME GPU 2.0.0-rc, which may require changes to your models.
See the changelog for more detail.
This release-candidate release requires:
- CMake
>= 3.18
- CUDA
>= 11.0
and a Compute Capability>= 3.5
NVIDIA GPU. - C++17 capable C++ compiler (host), compatible with the installed CUDA version (i.e VS2019+, or GCC >= 8.1)
- git
- Python >= 3.8 (optional)
- MPI >= 3 (optional) with CMake >=
3.20
For full version requirements, please see the Requirements section of the README.
Documentation and Support
- Quickstart Guide
- Documentation and User Guide
- GitHub Discussions
- GitHub Issues
- Website
- Pyflamegpu Wheelhouse
Installing Pre-compiled Python Binary Wheels
Python binary wheels for pyflamegpu
are not currently distributed via pip, however, they can now be installed from the pyflamegpu wheelhouse - whl.flamegpu.com.
They can also be installed manually by downloading assets from this wheel. the previous be installed manually from assets attached to this release.
To install pyflamegpu 2.0.0rc1
from whl.flamegpu.com
, install via pip with --extra-index-url
or --find-links
and the appropriate URI from whl.flamegpu.com.
E.g. to install the latest pyflamegpu build for CUDA 11.2-11.8 without visualiastion:
python3 -m pip install --extra-index-url https://whl.flamegpu.com/whl/cuda112/ pyflamegpu
To install pyflamegpu 2.0.0rc1
manually, download the appropriate .whl
file for your platform, and install it into your python environment using pip. I.e.
python3 -m pip install pyflamegpu-2.0.0rc0+cuda112-cp39-cp39-linux_x86_64.whl
CUDA 11.2-11.8
or CUDA 12.x
including nvrtc
must be installed on your system containing a Compute Capability 3.5
or newer NVIDIA GPU.
Python binary wheels are available for x86_64 systems with:
- Linux with
glibc >= 2.17
(I.e. Ubuntu >= 13.04, CentOS/RHEL >= 7+, etc.) - Windows 10+
- Python
3.8
-3.12
- CUDA
12.x
- Built with support for Compute Capability
50 60 70 80 90
GPUs
- Built with support for Compute Capability
- CUDA
11.2
-11.8
- Built with support for Compute Capability
35 50 60 70 80
GPUs
- Built with support for Compute Capability
- Wheels with visualisation enabled or disabled.
- Note that Linux wheels do not package shared object dependencies at this time.
Wheel filenames are of the format pyflamegpu-2.0.0rc1+cuda<CUDA>[.vis]-cp<PYTHON>-cp<PYTHON>-<platform>.whl
, where:
cuda<CUDA>
encodes the CUDA version used.vis
indicates visualisation support is includedcp<PYTHON>
identifies the python version<platform>
identifies the OS/CPU Architecture
For Example:
pyflamegpu-2.0.0rc1+cuda120-cp38-cp38-linux_x86_64.whl
is a CUDA 12.0-12.x compatible wheel, without visualisation support, for python 3.8 on Linux x86_64.pyflamegpu-2.0.0rc1+cuda112.vis-cp39-cp39-win_amd64.whl
is a CUDA 11.2 - 11.8 compatible wheel, with visualisation support, for python 3.9 on Windows 64-bit.
Building FLAME GPU from Source
For instructions on building FLAME GPU from source, please see the Building FLAME GPU section of the README.
Known Issues
- Warnings and a loss of performance due to hash collisions in device code (#356)
- Multiple known areas where performance can be improved (e.g. #449, #402)
- Windows/MSVC builds using CUDA 11.0 may encounter errors when performing incremental builds if the static library has been recompiled. If this presents itself, re-save any
.cu
file in your executable producing project and re-trigger the build. - Debug builds under linux with CUDA 11.0 may encounter cuda errors during
validateIDCollisions
. Consider using an alternate CUDA version if this is required (#569). - CUDA 11.0 with GCC 9 may encounter a segmentation fault during compilation of the test suite. Consider using GCC 8 with CUDA 11.0.
- CUDA 12.2+ suffers from poor RTC compilation times, to be fixed in a future release. (#1118).
Breaking changes compared to 2.0.0-rc
CUDAEnsemble::getLogs
returnsstd::map<unsigned int, RunLog>
rather thanstd::vector<RunLog>
, required for distributed ensemble support. (#1090)
FLAME GPU 2.0.0-rc
FLAME GPU 2.0.0-rc is the first release-candidate for FLAME GPU 2.0.0
As a release-candidate the API should be stable, unless any issues are found during the release-candidate phase which require a breaking change to resolve.
There are many significant changes since FLAME GPU 2.0.0-alpha.2, which will require changes to CMakeLists.txt and to models. See the changelog for more detail.
This release-candidate release requires:
- CMake
>= 3.18
- CUDA
>= 11.0
and a Compute Capability>= 3.5
NVIDIA GPU. - C++17 capable C++ compiler (host), compatible with the installed CUDA version (i.e VS2019+, or GCC >= 8.1)
- git
- Python >= 3.7 (optional)
For full version requirements, please see the Requirements section of the README.
Documentation and Support
Installing Pre-compiled Python Binary Wheels
To simplify use of the python binaries, Python wheels are offered with this release.
These are not yet available through a distribution channel.
To install pyflamegpu
2.0.0rc
, download the appropriate .whl
file for your platform, and install it into your python environment using pip. I.e.
python3 -m pip install pyflamegpu-2.0.0rc0+cuda112-cp39-cp39-linux_x86_64.whl
CUDA 11.0
or CUDA 11.2
(or newer) including nvrtc
must be installed on your system containing a Compute Capability 3.5
or newer NVIDIA GPU.
Python binary wheels are available for x86_64 systems with:
- Linux with
glibc >= 2.17
(I.e. Ubuntu >= 13.04, CentOS/RHEL >= 7+, etc.) - Windows 10+
- Python
3.7
-3.11
- CUDA
11.0
or11.2
(for11.2
-11.8
)- Built with support for Compute Capabilities
35 50 60 70 80
- CUDA
12.x
compatible wheels will be provided by a future release
- Built with support for Compute Capabilities
- Wheels with visualisation enabled or disabled.
- Note that Linux wheels do not package shared object dependencies at this time.
Wheel filenames are of the format pyflamegpu-2.0.0rc0+cuda<CUDA>[.vis]-cp<PYTHON>-cp<PYTHON>-<platform>.whl
, where:
cuda<CUDA>
encodes the CUDA version used.vis
indicates visualisation support is includedcp<PYTHON>
identifies the python version<platform>
identifies the OS/CPU Architecture
For Example:
pyflamegpu-2.0.0rc0+cuda110-cp38-cp38-linux_x86_64.whl
is a CUDA 11.0 compatible wheel, without visualisation support, for python 3.8 on Linux x86_64.pyflamegpu-2.0.0rc0+cuda112.vis-cp39-cp39-win_amd64.whl
is a CUDA 11.2+ compatible wheel, with visualisation support, for python 3.9 on Windows 64-bit.
Building FLAME GPU from Source
For instructions on building FLAME GPU from source, please see the Building FLAME GPU section of the README.
Known Issues
- Warnings and a loss of performance due to hash collisions in device code (#356)
- Multiple known areas where performance can be improved (e.g. #449, #402)
- Windows/MSVC builds using CUDA 11.0 may encounter errors when performing incremental builds if the static library has been recompiled. If this presents itself, re-save any
.cu
file in your executable producing project and re-trigger the build. - Debug builds under linux with CUDA 11.0 may encounter cuda errors during
validateIDCollisions
. Consider using an alternate CUDA version if this is required (#569). - CUDA 11.0 with GCC 9 may encounter a segmentation fault during compilation of the test suite. Consider using GCC 8 with CUDA 11.0.
FLAME GPU 2.0.0-alpha.2
FLAME GPU 2.0.0-alpha.2 is the second alpha pre-release of FLAME GPU 2.0.0.
As an alpha release, the API cannot be considered stable, as there will likely be breaking changes compared to the first stable 2.0.0 release, however, we aim to minimise the number of such changes.
FLAME GPU 2 is a complete rewrite of FLAME GPU 1, using modern templated CUDA C++ with CUDA C++ and Python interfaces available (requires NVRTC).
This alpha release requires:
- CUDA
>= 10.0
includingnvrtc
and a CUDA-capable NVIDIA GPU (Compute Capability >= 35) - A c++14 host compiler compatible with your CUDA installation, I.e. GCC or MSVC depending on platform
- CMake
>= 3.18
- git
For full version requirements, please see the Requirements section of the README.
Documentation and Support
Installing Pre-compiled Python Binary Wheels
To simplify use of the python binaries, Python wheels are offered with this release.
These are not yet available through a distribution channel.
To install pyflamegpu
2.0.0a2
, download the appropriate .whl
file for your platform, and install it into your python environment using pip. I.e.
python3 -m pip install --user pyflamegpu-2.0.0a2+cuda112-cp39-cp39-linux_x86_64.whl
CUDA 11.0
or CUDA 11.2
(or newer) including nvrtc
must be installed on your system containing a Compute Capability 3.5
or newer NVIDIA GPU.
Python binary wheels are available for x86_64 systems with:
- Linux with
glibc >= 2.17
(I.e. Ubuntu >= 13.04, CentOS/RHEL >= 7+, etc.) - Windows 10
- Python
3.6
,3.7
,3.8
and3.9
- CUDA
11.0
or11.2+
- Built with support for Compute Capabilities
35 52 60 70 80
- Built with support for Compute Capabilities
- Wheels with visualisation enabled or disabled.
- Note that Linux wheels do not package shared object dependencies at this time.
Wheel filenames are of the format pyflamegpu[_vis]-2.0.0a2+cuda<CUDA>-cp<PYTHON>-cp<PYTHON>-<platform>.whl
, where:
_vis
indicates visualisation support is included+cuda<CUDA>
encodes the CUDA version usedcp<PYTHON>
identifies the python version<platform>
identifies the OS/CPU Architecture
For Example
pyflamegpu-2.0.0a2+cuda110-cp38-cp38-linux_x86_64.whl
is a non-visualisation build, built with CUDA 11.0, for python 3.8 on Linux x86_64.pyflamegpu_vis-2.0.0a2+cuda112-cp39-cp39-win_amd64.whl
is a visualisation-enabled build, built with CUDA 11.2, for python 3.9 on Windows 64-bit.
Building FLAME GPU from Source
For instructions on building FLAME GPU from source, please see the Building FLAME GPU section of the README.
Deprecated Requirement Versions
Several CUDA and C++ compilers versions currently work but are marked as deprecated, with support to be removed in a future pre-release version of FLAME GPU.
This is due to planned adoption of C++17 features.
C++14 support is deprecated and will be removed in a future release.
This means that the following compiler/software versions are deprecated:
- CUDA
>= 10.0 && < 11.0
- C++14 host compilers:
- GCC
>=6 && < 7
- Visual Studio 2017 may or may not work.
- GCC
Known Issues
There are known issues with this release of FLAME GPU 2, which will be fixed where possible in future releases.
For a full list of issues please see the Issue Tracker.
- Performance regressions in CUDA 11.3+, due to changes in compiler register usage (#560).
- Segfault when using
flamegpu::DependencyGraph
via the default constructor (#555). This will require an API break to resolve. - Warnings and a loss of performance due to hash collisions in device code (#356)
- Multiple known areas where performance can be improved (e.g. #449, #402)
- Windows/MSVC builds using CUDA < 11.0 may encounter intermittent compiler failures. Please use CUDA 11.0+.
- This will be resolved by dropping CUDA 10 support in a future release.
- Windows/MSVC builds using CUDA 11.0 may encounter errors when performing incremental builds if the static library has been recompiled. If this presents itself, re-save any
.cu
file in your executable producing project and re-trigger the build. - Debug builds under linux with CUDA 11.0 may encounter cuda errors during
validateIDCollisions
. Consider using an alternate CUDA version if this is required (#569). - CUDA 11.0 with GCC 9 may encounter a segmentation fault during compilation of the test suite. Consider using GCC 8 with CUDA 11.0.
- Original releases of GCC 10.3.0 and 11.1.0 were incompatible with CUDA when using
<chrono>
, with a fix backported into these versions in some cases (575)- CMake will attempt to detect
<chrono>
support, and prevent compilation if an incompatible version is detected.
- CMake will attempt to detect
CUDAEnsemble::EnsembleConfig::devices
is not programtically acessible from python (#682)RunPlan
andRunPlanVector
operator+
/operator+=
overloads are not available in python (#679)- It is likely that a breaking change will be requied to resolve this.
FLAME GPU 2.0.0-alpha.1
FLAME GPU 2.0.0-alpha.1 is the second alpha pre-release of FLAME GPU 2.0.0.
As an alpha release, the API cannot be considered stable, as there will likely be breaking changes compared to the first stable 2.0.0 release, however, we aim to minimise the number of such changes.
FLAME GPU 2 is a complete rewrite of FLAME GPU 1, using modern templated CUDA C++ with CUDA C++ and Python interfaces available (requires NVRTC).
This alpha release requires:
- CUDA
>= 10.0
includingnvrtc
and a CUDA-capable NVIDIA GPU (Compute Capability >= 35) - A c++14 host compiler compatible with your CUDA installation, I.e. GCC or MSVC depending on platform
- CMake
>= 3.18
- git
For full version requirements, please see the Requirements section of the README.
Documentation and Support
Installing Pre-compiled Python Binary Wheels
To simplify use of the python binaries, Python wheels are offered with this release.
These are not yet available through a distribution channel.
To install pyflamegpu
2.0.0a0
, download the appropriate .whl
file for your platform, and install it into your python environment using pip. I.e.
python3 -m pip install --user pyflamegpu-2.0.0a1+cuda112-cp39-cp39-linux_x86_64.whl
CUDA 11.0
or CUDA 11.2
(or newer) including nvrtc
must be installed on your system containing a Compute Capability 3.5
or newer NVIDIA GPU.
Python binary wheels are available for x86_64 systems with:
- Linux with
glibc >= 2.17
(I.e. Ubuntu >= 13.04, CentOS/RHEL >= 7+, etc.) - Windows 10
- Python
3.6
,3.7
,3.8
and3.9
- CUDA
11.0
or11.2+
- Built with support for Compute Capabilities
35 52 60 70 80
- Built with support for Compute Capabilities
- Wheels with visualisation enabled or disabled.
- Note that Linux wheels do not package shared object dependencies at this time.
Wheel filenames are of the format pyflamegpu[_vis]-2.0.0a1+cuda<CUDA>-cp<PYTHON>-cp<PYTHON>-<platform>.whl
, where:
_vis
indicates visualisation support is included+cuda<CUDA>
encodes the CUDA version usedcp<PYTHON>
identifies the python version<platform>
identifies the OS/CPU Architecture
For Example
pyflamegpu-2.0.0a1+cuda110-cp38-cp38-linux_x86_64.whl
is a non-visualisation build, built with CUDA 11.0, for python 3.8 on Linux x86_64.pyflamegpu_vis-2.0.0a1+cuda112-cp39-cp39-win_amd64.whl
is a visualisation-enabled build, built with CUDA 11.2, for python 3.9 on Windows 64-bit.
Building FLAME GPU from Source
For instructions on building FLAME GPU from source, please see the Building FLAME GPU section of the README.
Deprecated Requirement Versions
Several CUDA and C++ compilers versions currently work but are marked as deprecated, with support to be removed in a future pre-release version of FLAME GPU.
This is due to planned adoption of C++17 features.
C++14 support is deprecated and will be removed in a future release.
This means that the following compiler/software versions are deprecated:
- CUDA
>= 10.0 && < 11.0
- C++14 host compilers:
- GCC
>=6 && < 7
- Visual Studio 2017 may or may not work.
- GCC
Known Issues
There are known issues with this release of FLAME GPU 2, which will be fixed where possible in future releases.
For a full list of issues please see the Issue Tracker.
- Performance regressions in CUDA 11.3+, due to changes in compiler register usage (#560).
- Segfault when using
flamegpu::DependencyGraph
via the default constructor (#555). This will require an API break to resolve. - Warnings and a loss of performance due to hash collisions in device code (#356)
- Multiple known areas where performance can be improved (e.g. #449, #402)
- Windows/MSVC builds using CUDA < 11.0 may encounter intermittent compiler failures. Please use CUDA 11.0+.
- This will be resolved by dropping CUDA 10 support in a future release.
- Windows/MSVC builds using CUDA 11.0 may encounter errors when performing incremental builds if the static library has been recompiled. If this presents itself, re-save any
.cu
file in your executable producing project and re-trigger the build. - Debug builds under linux with CUDA 11.0 may encounter cuda errors during
validateIDCollisions
. Consider using an alternate CUDA version if this is required (#569). - CUDA 11.0 with GCC 9 may encounter a segmentation fault during compilation of the test suite. Consider using GCC 8 with CUDA 11.0.
- Original releases of GCC 10.3.0 and 11.1.0 were incompatible with CUDA when using
<chrono>
, with a fix backported into these versions in some cases (575)- CMake will attempt to detect
<chrono>
support, and prevent compilation if an incompatible version is detected.
- CMake will attempt to detect
CUDAEnsemble::EnsembleConfig::devices
is not programtically acessible from python (#682)RunPlan
andRunPlanVector
operator+
/operator+=
overloads are not available in python (#679)- It is likely that a breaking change will be requied to resolve this.
FLAME GPU 2.0.0-alpha
FLAME GPU 2.0.0-alpha is the first alpha pre-release of FLAME GPU 2.0.0.
As an alpha release, the API cannot be considered stable, as there will likely be breaking changes compared to the first stable 2.0.0 release, however, we aim to minimise the number of such changes.
FLAME GPU 2 is a complete rewrite of FLAME GPU 1, using modern templated CUDA C++ with CUDA C++ and Python interfaces available (requires NVRTC).
This alpha release requires:
- CUDA 10 or greater and a CUDA GPU
- A c++14 host compiler compatible with your CUDA installation, I.e. GCC or MSVC depending on platform
- git
For full version requirements, please see the Requirements section of the README.
Documentation and Support
Installing Pre-compiled Python Binary Wheels
Note: These wheels require
glibc >= 2.29
. as they were build using Ubuntu 20.04's glibc. This prevents use on older Ubuntu's, Debian 9 such as google collab, or CentOS/RHEL 7 or 8. A future release will include wheels with greater compatibility.
To simplify use of the python binaries, Python wheels are offered with this release.
These are not yet available through a distribution channel.
To install pyflamegpu
2.0.0a0
, download the appropriate .whl
file for your platform, and install it into your python environment using pip.
CUDA 11.0
or newer (including nvrtc
) must be installed on your system containing a Compute Capability 3.5
or newer NVIDIA GPU. I.e.
python3 -m pip install --user <filename>.whl
Python binaries are available for python 3.6
to 3.9
for:
- Windows x64, with visualisation enabled:
pyflamegpu-2.0.0a0-cpXX-cpXX-win_amd64.whl
- Linux x86_64 with visualisation enabled:
pyflamegpu-2.0.0a0-cpXX-cpXX-linux_x86_64.whl
- Linux x86_64 with visualisation disabled:
pyflamegpu-console-2.0.0a0-cpXX-cpXX-linux_x86_64.whl
- Note this installs the python module
pyflamegpu
notpyflamegpu-console
, breaking the wheel filename convention. We intend to address this in a future release.
- Note this installs the python module
They were built using CUDA 11.0
for Compute Capabilities 35 52 60 70 80
, supporting second generation Kepler GPUs and newer.
Building FLAME GPU from Source
For instructions on building FLAME GPU 2.0.0-alpha from source, please see the Building FLAME GPU section of the README.
Deprecated Requirement Versions
Although this is the first alpha release, several versions of CUDA, CMake and C++ compilers which are currently supported will be unsupported in a future release of FLAME GPU 2.
Currently, FLAME GPU is built as a c++14 or c++17 project depending upon compiler support.
C++14 support is deprecated and will be removed in a future release.
This means that the following compiler/software versions are deprecated:
- CUDA
>= 10.0 && < 11.0
- CMake
>= 3.15 && < 3.18
- C++14 host compilers:
- GCC
>=6 && < 7
- Visual Studio 2017 may or may not work.
- GCC
Known Issues
There are known issues with the 2.0.0-alpha release of FLAME GPU 2, which will be fixed where possible in future releases. For a full list of issues please see the Issue Tracker.
- Performance regressions in CUDA 11.3+, due to changes in compiler register usage (#560).
- Segfault when using
flamegpu::DependencyGraph
via the default constructor (#555). This will require an API break to resolve. - Warnings and a loss of performance due to hash collisions in device code (#356)
- Multiple known areas where performance can be improved (e.g. #449, #402)
- Windows/MSVC builds using CUDA < 11.0 may encounter intermittent compiler failures. Please use CUDA 11.0+.
- This will be resolved by dropping CUDA 10 support in a future release.
- Windows/MSVC builds using CUDA 11.0 may encounter errors when performing incremental builds if the static library has been recompiled. If this presents itself, re-save any
.cu
file in your executable producing project and re-trigger the build. - Debug builds under linux with CUDA 11.0 may encounter cuda errors during
validateIDCollisions
. Consider using an alternate CUDA version if this is required (#569). - CUDA 11.0 with GCC 9 may encounter a segmentation fault during compilation of the test suite. Consider using GCC 8 with CUDA 11.0.
- CMake 3.16 has known issues on some platforms. CMake versions less than 3.18 are deprecated and support will be removed in a future release.