fallintoplace opened a new pull request, #1266:
URL: https://github.com/apache/arrow-go/pull/1266

   ## Summary
   
   - **Added** ARM64 NEON kernels for primitive comparisons.
   - **Covered** `int32`, `uint32`, `int64`, `uint64`, `float32`, and `float64`.
   - **Kept** narrow integer types and unsupported builds on the generic path.
   - **Handled** array/array, array/scalar, scalar/array, bitmap offsets, 
tails, NaNs, and unsigned boundary values.
   
   ## Benchmark
   
   Apple M1 Pro, 65,536 `int64` values, `nullprob=0.000000`, 3 runs with 
`-benchtime=1s`. The generic baseline uses `-tags noasm`.
   
   | Case | NEON | Generic | Speedup |
   | --- | ---: | ---: | ---: |
   | Array/scalar | 28.9-29.5 us/op | 78.5-79.2 us/op | ~2.7x |
   | Array/array | 30.3-30.9 us/op | 316.8-318.5 us/op | ~10.3x |
   
   Native uses 29 allocs/op versus 30 for the generic baseline in both cases.
   
   ## Tests
   
   - `go test ./arrow/compute/internal/kernels ./arrow/compute -count=1`
   - `go test -tags noasm ./arrow/compute/internal/kernels ./arrow/compute 
-count=1`
   - `go test -race ./arrow/compute/internal/kernels ./arrow/compute -count=1`
   - `go vet ./arrow/compute/internal/kernels`
   - Linux ARM64 and AMD64 cross-builds for the touched packages


-- 
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]

Reply via email to