internal/

directory
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 1, 2026 License: MIT

README

internal — implementation

Nothing in here is importable from outside the module, and nothing in here is covered by the compatibility promise in CHANGELOG.md. The public API is the simd package at the repository root.

Generated assembly

directory tiers generated from
amd64/ sse2, avx2, avx512 csrc/
arm64/ neon, sve2 csrc/
riscv64/ rvv csrc/
ppc64le/ vsx csrc/
s390x/ vx csrc/
loong64/ lasx csrc/

Each holds .s files — Plan 9 assembly, committed so that consumers need no C toolchain — and the .go files declaring them. Every one opens with the generator, the C source it came from, and the target it was built for. Do not edit them by hand; run make codegen.

Everything else

package what it is
ref/ the portable Go implementation. Every kernel is differential-tested against it, and it runs wherever a kernel could not be generated.
kernel/ the dispatch table, and the numerical contract — the fixed sixteen-accumulator reduction tree lives here.
cpu/ feature detection and tier selection, including the GOSIMD override.
backend/ wiring that picks the accelerated or portable path at startup.
conformance/ the differential suite: every tier against ref, and tier against tier.
asmcheck/ static assertions on the committed assembly. Parses text, needs no toolchain, catches mis-gated instructions.
perf/ llvm-mca throughput modelling for architectures this machine cannot time.
benchmarks/ every benchmark. See its own README.

Directories

Path Synopsis
Package backend is the registry that connects generated assembly to the dispatcher.
Package backend is the registry that connects generated assembly to the dispatcher.
Package benchmarks holds every benchmark in this repository.
Package benchmarks holds every benchmark in this repository.
Package cpu detects which SIMD instruction-set tier the running CPU supports.
Package cpu detects which SIMD instruction-set tier the running CPU supports.
Package kernel defines the contract every backend implements.
Package kernel defines the contract every backend implements.
Package perf is a repetition tester in the style Casey Muratori uses in Performance-Aware Programming.
Package perf is a repetition tester in the style Casey Muratori uses in Performance-Aware Programming.
Package ref is the portable Go reference implementation of every kernel.
Package ref is the portable Go reference implementation of every kernel.
tests
arrays
Package arrays holds the arrays tests for github.com/sebishogun/simd.
Package arrays holds the arrays tests for github.com/sebishogun/simd.
docs
Package docs checks the repository's own documentation against the tree: the counts in the README, the identifiers it names, the tiers CONTRIBUTING asks for runs on, and that every operation in the README's index has a runnable example.
Package docs checks the repository's own documentation against the tree: the counts in the README, the identifiers it names, the tiers CONTRIBUTING asks for runs on, and that every operation in the README's index has a runnable example.
dsp
Package dsp holds the dsp tests for github.com/sebishogun/simd.
Package dsp holds the dsp tests for github.com/sebishogun/simd.
encode
Package encode holds the encode tests for github.com/sebishogun/simd.
Package encode holds the encode tests for github.com/sebishogun/simd.
matrix
Package matrix holds the matrix tests for github.com/sebishogun/simd.
Package matrix holds the matrix tests for github.com/sebishogun/simd.
reduce
Package reduce holds the reduce tests for github.com/sebishogun/simd.
Package reduce holds the reduce tests for github.com/sebishogun/simd.
search
Package search holds the search tests for github.com/sebishogun/simd.
Package search holds the search tests for github.com/sebishogun/simd.
text
Package text holds the text tests for github.com/sebishogun/simd.
Package text holds the text tests for github.com/sebishogun/simd.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL