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

Lorenzo Salvadore <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.doc
Message-ID <[email protected]>
The branch main has been updated by salvadore:

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

commit c21ae96625899976eb80ab84bf0931ecd0ca269d
Author:     Robert Clausecker <[email protected]>
AuthorDate: 2023-09-28 13:44:26 +0000
Commit:     Lorenzo Salvadore <[email protected]>
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 <[email protected]>
+
+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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.