fallintoplace opened a new pull request, #1268: URL: https://github.com/apache/arrow-go/pull/1268
This adds an ARM64 NEON fast path for constant multiplication in the compute kernels. **What changed** - adds NEON kernels for int32/int64 input and output combinations - keeps the existing generic implementation when NEON is unavailable - adds boundary and overflow correctness coverage for short and non-multiple-of-four inputs - adds benchmarks for all four conversion combinations **Benchmark** Apple M1 Pro, darwin/arm64, 1 MiB input: | operation | generic | NEON dispatch | speedup | | --- | ---: | ---: | ---: | | int32 -> int32 | 421,874 ns/op | 87,556 ns/op | 4.82x | | int32 -> int64 | 423,170 ns/op | 296,760 ns/op | 1.43x | | int64 -> int32 | 422,409 ns/op | 135,615 ns/op | 3.11x | | int64 -> int64 | 438,196 ns/op | 302,779 ns/op | 1.45x | **Tests** - go test -count=1 ./arrow/compute/internal/kernels - go test -run ^$ -bench ^BenchmarkMultiplyConstant$ -benchmem -count=1 ./arrow/compute/internal/kernels -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
