git: c21ae96625 - main - Status/2023Q3/simd.adoc: Add report

From: Lorenzo Salvadore <salvadore_at_FreeBSD.org>
Date: Thu, 28 Sep 2023 13:45:03 UTC
The branch main has been updated by salvadore:

URL: https://cgit.FreeBSD.org/doc/commit/?id=c21ae96625899976eb80ab84bf0931ecd0ca269d

commit c21ae96625899976eb80ab84bf0931ecd0ca269d
Author:     Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2023-09-28 13:44:26 +0000
Commit:     Lorenzo Salvadore <salvadore@FreeBSD.org>
CommitDate: 2023-09-28 13:44:26 +0000

    Status/2023Q3/simd.adoc: Add report
---
 .../en/status/report-2023-07-2023-09/simd.adoc     | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/website/content/en/status/report-2023-07-2023-09/simd.adoc b/website/content/en/status/report-2023-07-2023-09/simd.adoc
new file mode 100644
index 0000000000..33f4848790
--- /dev/null
+++ b/website/content/en/status/report-2023-07-2023-09/simd.adoc
@@ -0,0 +1,28 @@
+=== SIMD enhancements for amd64
+
+Links: +
+link:http://fuz.su/~fuz/freebsd/2023-04-05_libc-proposal.txt[Project proposal] URL: link:http://fuz.su/~fuz/freebsd/2023-04-05_libc-proposal.txt[]
+link:https://man.freebsd.org/cgi/man.cgi?query=simd&manpath=FreeBSD+15.0-CURRENT[simd(7)] URL: link:https://man.freebsd.org/cgi/man.cgi?query=simd&manpath=FreeBSD+15.0-CURRENT[]
+
+Contact: Robert Clausecker <fuz@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 man: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 `ARCHLEVEL` environment variable.
+
+While the current project only concerns amd64, the work may be expanded to other architectures like arm64 in the future.
+
+During the last few months, significant progress has been made on this project.
+SIMD-enhanced versions of man:bcmp[3], man:index[3], man:memchr[3], man:memcmp[3], man:stpcpy[3], man:strchr[3], man:strchrnul[3], man:strcpy[3], man:strcspn[3], man:strlen[3], man:strnlen[3], and man:strspn[3] have landed.
+Functions man:memcpy[3], man:memmove[3], man:strcmp[3], man:timingsafe_bcmp[3] (see link:https://reviews.freebsd.org/D41673[D41673]), and man:timingsafe_memcmp[3] (see link:https://reviews.freebsd.org/D41696[D41696]) are work in progress.
+Unfortunately, the work has not made the cut for FreeBSD 14.0, but it is slated to be part of FreeBSD 14.1.
+
+Sponsor: The FreeBSD Foundation