Docs: avx512 support

This commit is contained in:
Matthew Barr 2017-06-07 14:10:19 +10:00
parent dba2470ec9
commit 9ce0abe0ff

View File

@ -254,18 +254,32 @@ the current platform is supported by Hyperscan.
At of this release, the variants of the runtime that are built, and the CPU At of this release, the variants of the runtime that are built, and the CPU
capability that is required, are the following: capability that is required, are the following:
+----------+-------------------------------+---------------------+ +----------+-------------------------------+---------------------------+
| Variant | CPU Feature Flag(s) Required | gcc arch flag | | Variant | CPU Feature Flag(s) Required | gcc arch flag |
+==========+===============================+=====================+ +==========+===============================+===========================+
| Core 2 | ``SSSE3`` | ``-march=core2`` | | Core 2 | ``SSSE3`` | ``-march=core2`` |
+----------+-------------------------------+---------------------+ +----------+-------------------------------+---------------------------+
| Core i7 | ``SSE4_2`` and ``POPCNT`` | ``-march=corei7`` | | Core i7 | ``SSE4_2`` and ``POPCNT`` | ``-march=corei7`` |
+----------+-------------------------------+---------------------+ +----------+-------------------------------+---------------------------+
| AVX 2 | ``AVX2`` | ``-march=avx2`` | | AVX 2 | ``AVX2`` | ``-march=core-avx2`` |
+----------+-------------------------------+---------------------+ +----------+-------------------------------+---------------------------+
| AVX 512 | ``AVX512BW`` (see note below) | ``-march=skylake-avx512`` |
+----------+-------------------------------+---------------------------+
As this requires compiler, libc, and binutils support, at this time the fat .. note::
runtime will only be enabled for Linux builds where the compiler supports the
Hyperscan v4.5 adds support for AVX-512 instructions - in particular the
``AVX-512BW`` instruction set that was introduced on Intel "Skylake" Xeon
processors - however the AVX-512 runtime variant is **not** enabled by
default in fat runtime builds as not all toolchains support AVX-512
instruction sets. To build an AVX-512 runtime, the CMake variable
``BUILD_AVX512`` must be enabled manually during configuration. For
example: ::
cmake -DBUILD_AVX512=on <...>
As the fat runtime requires compiler, libc, and binutils support, at this time
it will only be enabled for Linux builds where the compiler supports the
`indirect function "ifunc" function attribute `indirect function "ifunc" function attribute
<https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-indirect-functions-3321>`_. <https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-indirect-functions-3321>`_.