|
NumericAL
A header-only C++20 lexer built on REAL
|
The x86-64 tiles of the double matrix product: AVX-512 and AVX2 with FMA, chosen at run time.
More...
#include <algorithm>#include <array>#include <cmath>#include <complex>#include <cstddef>#include <cstdint>#include "simd.hpp"Go to the source code of this file.
Namespaces | |
| namespace | numerical |
| The NumericAL public API. | |
| namespace | numerical::detail |
The x86-64 tiles of the double matrix product: AVX-512 and AVX2 with FMA, chosen at run time.
A wheel is built for the baseline x86-64 (SSE2), so the wider units are reached function by function: each tile is compiled for its instruction set (GCC's and Clang's target attribute; MSVC emits the intrinsics as written) and used only once cpuid reports the instructions and xgetbv reports the system saving their registers. Each element of C is then a chain of fused multiply-adds in ascending order of the depth, the same on any number of threads.
Definition in file x86.hpp.