5769677
doi
10.5281/zenodo.5769677
oai:zenodo.org:5769677
Chisholm, Robert
The University of Sheffield
Heywood, Peter
The University of Sheffield
Leach, Matthew
The University of Sheffield
Kabiri Chimeh, Mozhgan
FLAME GPU
Richmond, Paul
The University of Sheffield
url:https://github.com/FLAMEGPU/FLAMEGPU2/tree/v2.0.0-alpha.2
info:eu-repo/semantics/openAccess
MIT License
https://opensource.org/licenses/MIT
<p>FLAME GPU 2.0.0-alpha.2 is the second <strong>alpha pre-release</strong> of FLAME GPU 2.0.0.</p>
<p>As an alpha release, <strong>the API cannot be considered stable</strong>, as there will <strong>likely be breaking changes compared to the first stable 2.0.0 release</strong>, however, we aim to minimise the number of such changes.</p>
<p>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).</p>
<p>This alpha release requires:</p>
<ul>
<li>CUDA <code>>= 10.0</code> including <code>nvrtc</code> and a CUDA-capable NVIDIA GPU (<a href="https://developer.nvidia.com/cuda-gpus">Compute Capability</a> >= 35)</li>
<li>A c++14 host compiler compatible with your CUDA installation, I.e. GCC or MSVC depending on platform</li>
<li>CMake <code>>= 3.18</code></li>
<li>git</li>
</ul>
<p>For full version requirements, please see the <a href="https://github.com/FLAMEGPU/FLAMEGPU2#requirements">Requirements section of the README</a>.</p>
Documentation and Support
<ul>
<li><a href="https://docs.flamegpu.com/quickstart">Quickstart Guide</a></li>
<li><a href="https://docs.flamegpu.com">Documentation and User Guide</a></li>
<li><a href="https://github.com/FLAMEGPU/FLAMEGPU2/discussions">GitHub Discussions</a></li>
<li><a href="https://github.com/FLAMEGPU/FLAMEGPU2/issues">GitHub Issues</a></li>
<li><a href="https://flamegpu.com/">Website</a></li>
</ul>
Installing Pre-compiled Python Binary Wheels
<p>To simplify use of the python binaries, Python wheels are offered with this release.
These are not yet available through a distribution channel.</p>
<p>To install <code>pyflamegpu</code> <code>2.0.0a2</code>, download the appropriate <code>.whl</code> file for your platform, and install it into your python environment using pip. I.e.</p>
<pre><code class="lang-bash">python3 -m pip install --user pyflamegpu-2.0.0a2+cuda112-cp39-cp39-linux_x86_64.whl
</code></pre>
<p><code>CUDA 11.0</code> or <code>CUDA 11.2</code> (or newer) including <code>nvrtc</code> must be installed on your system containing a <a href="https://developer.nvidia.com/cuda-gpus">Compute Capability</a> <code>3.5</code> or newer NVIDIA GPU.</p>
<p>Python binary wheels are available for x86_64 systems with:</p>
<ul>
<li>Linux with <code>glibc >= 2.17</code> (I.e. Ubuntu >= 13.04, CentOS/RHEL >= 7+, etc.)</li>
<li>Windows 10</li>
<li>Python <code>3.6</code>, <code>3.7</code>, <code>3.8</code> and <code>3.9</code></li>
<li>CUDA <code>11.0</code> or <code>11.2+</code><ul>
<li>Built with support for Compute Capabilities <code>35 52 60 70 80</code></li>
</ul>
</li>
<li>Wheels with visualisation enabled or disabled.<ul>
<li>Note that Linux wheels do not package shared object dependencies at this time.</li>
</ul>
</li>
</ul>
<p>Wheel filenames are of the format <code>pyflamegpu[_vis]-2.0.0a2+cuda<CUDA>-cp<PYTHON>-cp<PYTHON>-<platform>.whl</code>, where:</p>
<ul>
<li><code>_vis</code> indicates visualisation support is included</li>
<li><code>+cuda<CUDA></code> encodes the CUDA version used</li>
<li><code>cp<PYTHON></code> identifies the python version</li>
<li><code><platform></code> identifies the OS/CPU Architecture</li>
</ul>
<p>For Example</p>
<ul>
<li><code>pyflamegpu-2.0.0a2+cuda110-cp38-cp38-linux_x86_64.whl</code> is a non-visualisation build, built with CUDA 11.0, for python 3.8 on Linux x86_64.</li>
<li><code>pyflamegpu_vis-2.0.0a2+cuda112-cp39-cp39-win_amd64.whl</code> is a visualisation-enabled build, built with CUDA 11.2, for python 3.9 on Windows 64-bit.</li>
</ul>
Building FLAME GPU from Source
<p>For instructions on building FLAME GPU from source, please see the <a href="https://github.com/FLAMEGPU/FLAMEGPU2#building-flame-gpu">Building FLAME GPU section of the README</a>.</p>
Deprecated Requirement Versions
<p>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.</p>
<p>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:</p>
<ul>
<li>CUDA <code>>= 10.0 && < 11.0</code></li>
<li>C++14 host compilers:<ul>
<li>GCC <code>>=6 && < 7</code></li>
<li>Visual Studio 2017 may or may not work.</li>
</ul>
</li>
</ul>
Known Issues
<p>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 <a href="https://github.com/FLAMEGPU/FLAMEGPU2/issues">Issue Tracker</a>.</p>
<ul>
<li>Performance regressions in CUDA 11.3+, due to changes in compiler register usage (<a href="https://github.com/FLAMEGPU/FLAMEGPU2/issues/560">#560</a>).</li>
<li>Segfault when using <code>flamegpu::DependencyGraph</code> via the default constructor (<a href="https://github.com/FLAMEGPU/FLAMEGPU2/issues/555">#555</a>). This will require an API break to resolve.</li>
<li>Warnings and a loss of performance due to hash collisions in device code (<a href="https://github.com/FLAMEGPU/FLAMEGPU2/issues/356">#356</a>)</li>
<li>Multiple known areas where performance can be improved (e.g. <a href="https://github.com/FLAMEGPU/FLAMEGPU2/issues/449">#449</a>, <a href="https://github.com/FLAMEGPU/FLAMEGPU2/issues/402">#402</a>)</li>
<li>Windows/MSVC builds using CUDA < 11.0 may encounter intermittent compiler failures. Please use CUDA 11.0+.<ul>
<li>This will be resolved by dropping CUDA 10 support in a future release.</li>
</ul>
</li>
<li>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 <code>.cu</code> file in your executable producing project and re-trigger the build.</li>
<li>Debug builds under linux with CUDA 11.0 may encounter cuda errors during <code>validateIDCollisions</code>. Consider using an alternate CUDA version if this is required (<a href="https://github.com/FLAMEGPU/FLAMEGPU2/issues/569">#569</a>).</li>
<li>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.</li>
<li>Original releases of GCC 10.3.0 and 11.1.0 were incompatible with CUDA when using <code><chrono></code>, with a fix backported into these versions in some cases (<a href="https://github.com/FLAMEGPU/FLAMEGPU2/issues/575">575</a>)<ul>
<li>CMake will attempt to detect <code><chrono></code> support, and prevent compilation if an incompatible version is detected.</li>
</ul>
</li>
<li><code>CUDAEnsemble::EnsembleConfig::devices</code> is not programtically acessible from python (<a href="https://github.com/FLAMEGPU/FLAMEGPU2/issues/682">#682</a>)</li>
<li><code>RunPlan</code> and <code>RunPlanVector</code> <code>operator+</code>/<code>operator+=</code> overloads are not available in python (<a href="https://github.com/FLAMEGPU/FLAMEGPU2/issues/679">#679</a>)<ul>
<li>It is likely that a breaking change will be requied to resolve this. </li>
</ul>
</li>
</ul>
If you use this software, please cite it using these metadata.
Zenodo
2021-12-09
info:eu-repo/semantics/other
5428984
2.0.0-alpha.2
1670952355.871095
1139558
md5:78cc01ad53eb5fb36a7b044abee9f6ed
https://zenodo.org/records/5769677/files/FLAMEGPU/FLAMEGPU2-v2.0.0-alpha.2.zip
public
https://github.com/FLAMEGPU/FLAMEGPU2/tree/v2.0.0-alpha.2
Is supplement to
url
10.5281/zenodo.5428984
isVersionOf
doi