Skip to content

FLAME GPU 2.0.0-alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 10 Aug 14:59
· 366 commits to master since this release

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 not pyflamegpu-console, breaking the wheel filename convention. We intend to address this in a future release.

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.

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.