Following Flags have been added. 1. D_FORTIFY_SOURCE=2 What it does • At compile time the header files replace certain libc calls (strcpy, sprintf, …) with inline wrappers that perform a compile-time length check whenever the size of the destination buffer is known. • At run time an extra check is executed only if the compiler could not prove the copy is safe. Cost • Only functions that call those specific libc routines pay anything. 2. fstack-protector-strong What it does • Functions that contain local arrays, address‐taken locals, or alloca get a canary word inserted into the stack frame. • The function prologue writes the canary; the epilogue verifies it before the ret. Cost • 8 bytes of additional stack per protected function frame. • Two or three extra instructions per entry/exit. 4. Wl,-z,relro What it does • Marks the relocation tables read-only after relocation is finished. • No effect once the library is fully loaded. Cost • None at run time. 5. Wl,-z,now What it does • Forces the dynamic loader to resolve all external symbols in the library up-front instead of lazily on first call. Cost • Startup: one extra relocation pass. • Steady-state execution: zero or slightly faster, because PLT stubs are bypassed. Usage: cmake -DENABLE_SECURITY_FLAGS=off cmake -DENABLE_SECURITY_FLAGS=on configure --enable-security-flags configure --disable-security-flags AMD-Internal: [CPUPL-6886]
AOCL-BLAS library
AOCL-BLAS is AMD's optimized version of BLAS targeted for AMD EPYC and Ryzen CPUs. It is developed as a forked version of BLIS (https://github.com/flame/blis), which is developed by members of the Science of High-Performance Computing (SHPC) group in the Institute for Computational Engineering and Sciences at The University of Texas at Austin and other collaborators (including AMD). All known features and functionalities of BLIS are retained and supported in AOCL-BLAS library. AOCL-BLAS is regularly updated with the improvements from the upstream repository.
AOCL BLAS is optimized with SSE2, AVX2, AVX512 instruction sets which would be enabled based on the target Zen architecture using the dynamic dispatch feature. All prominent Level 3, Level 2 and Level 1 APIs are designed and optimized for specific paths targeting different size spectrums e.g., Small, Medium and Large sizes. These algorithms are designed and customized to exploit the architectural improvements of the target platform.
For detailed instructions on how to configure, build, install, and link against AOCL-BLAS on AMD CPUs, please refer to the AOCL User Guide located on AMD developer portal.
The upstream repository (https://github.com/flame/blis) contains further information on BLIS, including background information on BLIS design, usage examples, and a complete BLIS API reference.
AOCL-BLAS is developed and maintained by AMD. You can contact us on the email-id toolchainsupport@amd.com. You can also raise any issue/suggestion on the git-hub repository at https://github.com/amd/blis/issues.