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

   ## Summary
   
   - Add private AVX2 and ARM64 NEON kernels for packing `[]bool` into Arrow 
bitmap bytes.
   - Keep the existing scalar handling for unaligned prefixes and tails.
   - Reuse the SIMD path for BooleanBuilder values and validity bitmap packing.
   - Keep noasm and unsupported architectures on the scalar implementation.
   - Expand bitmap coverage across multiple SIMD blocks and offsets.
   
   ## Benchmark
   
   Apple M1 Pro. 65,536 pre-reserved values. Representative runs:
   
   | Benchmark | noasm | SIMD |
   | --- | ---: | ---: |
   | BooleanBuilder / all false | 23.4 us | 3.9 us |
   | BooleanBuilder / all true | 22.6 us | 3.9 us |
   | BooleanBuilder / alternating | 21.9 us | 4.6 us |
   | BooleanBuilder / one in three | 22.6 us | 4.0 us |
   
   The SIMD path is about 4 to 5x faster for this workload, with zero 
allocations in both cases.
   
   ## Tests
   
   - `go test ./arrow/array -count=1`
   - `go test -race ./arrow/array -count=1`
   - `go test ./arrow/bitutil ./arrow/compute/... -count=1`
   - `go test -tags noasm ./arrow/array -count=1`
   - `go vet ./arrow/array ./arrow/bitutil`
   - `GOARCH=amd64 go test -c -o /dev/null ./arrow/array`


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