]> Cypherpunks repositories - gostls13.git/commit
internal/runtime/gc/scan: add AVX512 impl of filterNil.
authorJunyang Shao <shaojunyang@google.com>
Wed, 19 Nov 2025 20:13:31 +0000 (20:13 +0000)
committerJunyang Shao <shaojunyang@google.com>
Fri, 21 Nov 2025 19:45:42 +0000 (11:45 -0800)
commita9704f89ea6bc02815557db8d89c1fa22a779b7e
treef4043e10ec209ac624604ea75b5ce884cb0a7876
parentccd389036a7ba67f456d4185f4103fe233f6e551
internal/runtime/gc/scan: add AVX512 impl of filterNil.

Benchmark results:
ScanSpanPacked/cache=ram/pages=10368/sizeclass=25/pct=60-48          6.356Gi ± ∞ ¹    7.332Gi ± ∞ ¹        ~ (p=1.000 n=1) ²
ScanSpanPacked/cache=ram/pages=10368/sizeclass=25/pct=70-48          6.756Gi ± ∞ ¹    8.302Gi ± ∞ ¹        ~ (p=1.000 n=1) ²
ScanSpanPacked/cache=ram/pages=10368/sizeclass=25/pct=80-48          7.018Gi ± ∞ ¹    8.658Gi ± ∞ ¹        ~ (p=1.000 n=1) ²
ScanSpanPacked/cache=ram/pages=10368/sizeclass=25/pct=90-48          7.313Gi ± ∞ ¹    9.055Gi ± ∞ ¹        ~ (p=1.000 n=1) ²
ScanSpanPacked/cache=ram/pages=10368/sizeclass=25/pct=100-48         7.583Gi ± ∞ ¹    9.557Gi ± ∞ ¹        ~ (p=1.000 n=1) ²
geomean                                                              10.61Gi          14.83Gi        +39.81%

Almost a +40% on throughput.

Change-Id: I6f31a0f0202ec7f3c9d2bbffca5d6e377306fc25
Reviewed-on: https://go-review.googlesource.com/c/go/+/722040
Reviewed-by: Michael Knyszek <mknyszek@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
src/internal/runtime/gc/scan/filter.go
src/internal/runtime/gc/scan/filter_amd64.go [new file with mode: 0644]
src/internal/runtime/gc/scan/filter_amd64.s [new file with mode: 0644]
src/internal/runtime/gc/scan/filter_amd64_test.go [new file with mode: 0644]
src/internal/runtime/gc/scan/filter_test.go
src/internal/runtime/gc/scan/scan_amd64.go