|
Orrery
A GPU-accelerated N-body gravitational simulator
|
The instruction set extensions this project can make use of. More...
#include <orrery/backend/cpu_features.hpp>
Public Attributes | |
| bool | avx {} |
| 256-bit floating-point vectors, with the operating system's consent. | |
| bool | avx2 {} |
| 256-bit integer vectors and the wider shuffles, on the same terms. | |
| bool | fma {} |
| Fused multiply-add. | |
The instruction set extensions this project can make use of.
Deliberately short. This is not a general CPU identification library, and a field is added when a kernel is written that needs it, so that every entry here has something in the project that reads it. AVX-512 is absent because the target part does not implement it, which section 2 of the implementation plan records; Phase 7's kernel is 256-bit for that reason rather than by preference.
| bool orrery::backend::CpuFeatures::avx {} |
256-bit floating-point vectors, with the operating system's consent.
True only when the processor reports AVX and the operating system has enabled the upper vector state, so a caller can act on this alone.
| bool orrery::backend::CpuFeatures::fma {} |
Fused multiply-add.
Separate from AVX2 because the two are separate feature bits, and because what the kernel gains from each is different: AVX2 supplies the width and FMA halves the number of rounding steps in the accumulation.