)]}'
{
  "commit": "c82958326a663f083cc122cfd8aaa5116e1cd798",
  "tree": "ac1590985a550e8d4380738bd7b957e473a23db2",
  "parents": [
    "c910146a9840f9b82235d60c60f5f74327e4c2ea"
  ],
  "author": {
    "name": "David Chase",
    "email": "drchase@google.com",
    "time": "Fri Jun 05 16:16:28 2026 -0400"
  },
  "committer": {
    "name": "David Chase",
    "email": "drchase@google.com",
    "time": "Thu Jun 11 15:41:48 2026 -0700"
  },
  "message": "simd: add some inner-product benchmarks\n\nSome hand-unrolling of important methods\nwas tried, and shown to improve results.\n\nResults from\n\n```\n\nexport GOEXPERIMENT\u003dsimd\n\nfor R in {1..25} ; do\ngo test -bench\u003dB -run\u003dnone -count\u003d1 -ldflags\u003d-randlayout\u003d$R . | tee -a arm64-128.log\nGODEBUG\u003dsimd\u003d0  go test -bench\u003dB -run\u003dnone -count\u003d1 -ldflags\u003d-randlayout\u003d$R . | tee -a arm64-0.log\nGOARCH\u003damd64 go test -bench\u003dB -run\u003dnone -count\u003d1 -ldflags\u003d-randlayout\u003d$R . | tee -a amd64-128.log\nGOARCH\u003damd64 GODEBUG\u003dsimd\u003d+256  go test -bench\u003dB -run\u003dnone -count\u003d1 -ldflags\u003d-randlayout\u003d$R . | tee -a amd64-256.log\nGOARCH\u003damd64 GODEBUG\u003dsimd\u003d0  go test -bench\u003dB -run\u003dnone -count\u003d1 -ldflags\u003d-randlayout\u003d$R . | tee -a amd64-0.log\nGOARCH\u003dwasm GOOS\u003dwasip1 go test -bench\u003dB -run\u003dnone -count\u003d1 -ldflags\u003d-randlayout\u003d$R . | tee -a wasm-128.log\nGOARCH\u003dwasm GOOS\u003dwasip1 GODEBUG\u003dsimd\u003d0 go test -bench\u003dB -run\u003dnone -count\u003d1 -ldflags\u003d-randlayout\u003d$R . | tee -a wasm-0.log\necho done with $R\ndone\n```\n\nrun on a quiet-ish Apple laptop\n\nthen cleaned with\n```\nfor i in *.log ; do sed -e \u00271,$s/-10//\u0027 -i \"\" $i; done\n```\n\n```\nbenchstat -ignore goarch,cpu,goos arm64*log amd64*log wasm*log\npkg: simd\n                  │ arm64-0.log  │            arm64-128.log            │              amd64-0.log              │             amd64-128.log             │             amd64-256.log             │               wasm-0.log               │             wasm-128.log             │\n                  │    sec/op    │   sec/op     vs base                │    sec/op     vs base                 │    sec/op     vs base                 │    sec/op     vs base                 │    sec/op      vs base                 │    sec/op     vs base                │\nIPFMA               465.99µ ± 1%   68.17µ ± 0%  -85.37% (p\u003d0.000 n\u003d25)   567.46µ ± 3%   +21.78% (p\u003d0.000 n\u003d25)   126.51µ ± 0%   -72.85% (p\u003d0.000 n\u003d25)   166.29µ ± 0%   -64.31% (p\u003d0.000 n\u003d25)   2839.92µ ± 1%  +509.44% (p\u003d0.000 n\u003d25)   156.27µ ± 0%  -66.47% (p\u003d0.000 n\u003d25)\nIP                  533.06µ ± 2%   47.64µ ± 0%  -91.06% (p\u003d0.000 n\u003d25)   645.00µ ± 0%   +21.00% (p\u003d0.000 n\u003d25)    50.16µ ± 0%   -90.59% (p\u003d0.000 n\u003d25)    49.39µ ± 0%   -90.73% (p\u003d0.000 n\u003d25)   3702.28µ ± 1%  +594.53% (p\u003d0.000 n\u003d25)   156.15µ ± 0%  -70.71% (p\u003d0.000 n\u003d25)\nIPUnroll            521.14µ ± 1%   27.92µ ± 0%  -94.64% (p\u003d0.000 n\u003d25)   634.97µ ± 3%   +21.84% (p\u003d0.000 n\u003d25)    37.38µ ± 1%   -92.83% (p\u003d0.000 n\u003d25)    38.85µ ± 0%   -92.54% (p\u003d0.000 n\u003d25)   4543.60µ ± 1%  +771.86% (p\u003d0.000 n\u003d25)    97.75µ ± 0%  -81.24% (p\u003d0.000 n\u003d25)\nIPUnrollMore        531.67µ ± 2%   27.92µ ± 0%  -94.75% (p\u003d0.000 n\u003d25)   634.78µ ± 2%   +19.40% (p\u003d0.000 n\u003d25)    37.29µ ± 0%   -92.99% (p\u003d0.000 n\u003d25)    42.76µ ± 0%   -91.96% (p\u003d0.000 n\u003d25)   4679.65µ ± 1%  +780.19% (p\u003d0.000 n\u003d25)    96.80µ ± 0%  -81.79% (p\u003d0.000 n\u003d25)\nIPnosimd0            722.6µ ± 1%   738.3µ ± 1%   +2.18% (p\u003d0.000 n\u003d25)    930.1µ ± 1%   +28.73% (p\u003d0.000 n\u003d25)    938.6µ ± 1%   +29.89% (p\u003d0.000 n\u003d25)    931.8µ ± 1%   +28.95% (p\u003d0.000 n\u003d25)     525.2µ ± 0%   -27.32% (p\u003d0.000 n\u003d25)    525.2µ ± 0%  -27.32% (p\u003d0.000 n\u003d25)\nIPnosimd1            522.1µ ± 1%   526.0µ ± 1%   +0.76% (p\u003d0.011 n\u003d25)   1049.7µ ± 1%  +101.05% (p\u003d0.000 n\u003d25)   1049.5µ ± 1%  +101.02% (p\u003d0.000 n\u003d25)   1049.8µ ± 1%  +101.07% (p\u003d0.000 n\u003d25)     744.4µ ± 0%   +42.58% (p\u003d0.000 n\u003d25)    744.7µ ± 0%  +42.64% (p\u003d0.000 n\u003d25)\nIPnosimdA            640.2µ ± 0%   643.0µ ± 1%        ~ (p\u003d0.088 n\u003d25)    968.7µ ± 1%   +51.31% (p\u003d0.000 n\u003d25)    964.3µ ± 1%   +50.63% (p\u003d0.000 n\u003d25)    966.5µ ± 1%   +50.97% (p\u003d0.000 n\u003d25)     541.7µ ± 0%   -15.38% (p\u003d0.000 n\u003d25)    542.0µ ± 0%  -15.34% (p\u003d0.000 n\u003d25)\nIPnosimdAnotBloop    278.6µ ± 0%   280.1µ ± 0%   +0.57% (p\u003d0.022 n\u003d25)    241.4µ ± 0%   -13.34% (p\u003d0.000 n\u003d25)    241.4µ ± 0%   -13.33% (p\u003d0.000 n\u003d25)    241.4µ ± 0%   -13.35% (p\u003d0.000 n\u003d25)     392.2µ ± 0%   +40.78% (p\u003d0.000 n\u003d25)    392.1µ ± 0%  +40.78% (p\u003d0.000 n\u003d25)\ngeomean              510.7µ        143.2µ       -71.96%                   654.5µ        +28.15%                   194.3µ        -61.96%                   205.0µ        -59.87%                    1.441m       +182.09%                   257.3µ       -49.63%\n```\n\nChange-Id: I09b912a3b68431972eeb91200f77a3dd95327d91\nReviewed-on: https://go-review.googlesource.com/c/go/+/787561\nReviewed-by: Junyang Shao \u003cshaojunyang@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "41b6417d16716d7879c7538b2e72192fc9ca2983",
      "old_mode": 33188,
      "old_path": "src/simd/internal/bridge/simd_emulated.go",
      "new_id": "4a82d166c9956a4af2bc4ea3c0189e2b5969bf7c",
      "new_mode": 33188,
      "new_path": "src/simd/internal/bridge/simd_emulated.go"
    },
    {
      "type": "modify",
      "old_id": "90aea587dabd81c378165bf2d8322da0fb5ca644",
      "old_mode": 33188,
      "old_path": "src/simd/ip_test.go",
      "new_id": "b88c499cadcbb1be4ca539a37eed7b067650f125",
      "new_mode": 33188,
      "new_path": "src/simd/ip_test.go"
    },
    {
      "type": "modify",
      "old_id": "1ad562ee7c0b66e0c8c2e028fcf08278b265be7e",
      "old_mode": 33188,
      "old_path": "src/simd/simd_emulated.go",
      "new_id": "48f09d5cc164575179cd172b6d0ca513fc576392",
      "new_mode": 33188,
      "new_path": "src/simd/simd_emulated.go"
    }
  ]
}
