SIMD enhancements for amd64
Links:
SIMD dispatch
framework draft URL: https://reviews.freebsd.org/D40693
Project
proposal URL: http://fuz.su/~fuz/freebsd/2023-04-05_libc-proposal.txt
Contact: Robert Clausecker <clausecker@FreeBSD.org>
SIMD instruction set extensions such as SSE, AVX, and NEON are ubiquitous on modern computers and offer performance advantages for many applications. The goal of this project is to provide SIMD-enhanced versions of common libc functions (mostly those described in string(3)), speeding up most C programs.
For each function optimised, up to four implementations will be provided:
-
a scalar implementation optimised for amd64, but without any SIMD usage,
-
a baseline implementation using SSE and SSE2 or alternatively an x86-64-v2 implementation using all SSE extensions up to SSE4.2,
-
an x86-64-v3 implementation using AVX and AVX2, and
-
an x86-64-v4 implementation using AVX-512F/BW/CD/DQ.
Users will be able to select which level of SIMD enhancements to
use by setting the AMD64_ARCHLEVEL
environment
variable.
While the current project only concerns amd64, the work may be expanded to other architectures like arm64 in the future.
Sponsor: The FreeBSD Foundation
Last modified on: July 28, 2023 by Graham Perrin