Skip to content

Commit 5587496

Browse files
tweaks
1 parent c5e0ad3 commit 5587496

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

content/learning-paths/servers-and-cloud-computing/bitmap_scan_sve2/05-benchmarking-and-results.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -168,17 +168,17 @@ The benchmarking results reveal how different bitmap scanning implementations pe
168168

169169
The optimized scalar implementation shows significant improvements over the generic scalar implementation due to:
170170

171-
* **Byte-level Skipping**: Avoiding processing empty bytes
172-
* **Reduced Function Calls**: Accessing bits directly rather than through function calls
173-
* **Better Cache Utilization**: More sequential memory access patterns
171+
* **Byte-level Skipping**: avoiding processing empty bytes
172+
* **Reduced Function Calls**: accessing bits directly rather than through function calls
173+
* **Better Cache Utilization**: more sequential memory access patterns
174174

175175
### Optimized scalar vs NEON
176176

177177
The NEON implementation shows further improvements over the optimized scalar implementation for sparse bit vectors due to:
178178

179-
* **Chunk-level Skipping**: Quickly skipping 16 empty bytes at once
180-
* **Vectorized Comparison**: Checking multiple bytes in parallel
181-
* **Early Termination**: Quickly determining if a chunk contains any set bits
179+
* **Chunk-level Skipping**: quickly skipping 16 empty bytes at once
180+
* **Vectorized Comparison**: checking multiple bytes in parallel
181+
* **Early Termination**: quickly determining if a chunk contains any set bits
182182

183183
### NEON vs SVE
184184

@@ -198,13 +198,13 @@ The performance comparison between NEON and SVE depends on the bit density:
198198

199199
The SVE implementation includes several key optimizations:
200200

201-
* **Efficient Non-Zero Byte Detection**: Using `svcmpne_u8` to quickly identify non-zero bytes in the bitvector.
201+
* **Efficient Non-Zero Byte Detection**: using `svcmpne_u8` to quickly identify non-zero bytes in the bitvector.
202202

203-
* **Byte-Level Processing**: Using `svpnext_b8` to efficiently find the next non-zero byte without processing zero bytes.
203+
* **Byte-Level Processing**: using `svpnext_b8` to efficiently find the next non-zero byte without processing zero bytes.
204204

205-
* **Value Extraction**: Using `svlastb_u8` to extract both the index and value of non-zero bytes.
205+
* **Value Extraction**: using `svlastb_u8` to extract both the index and value of non-zero bytes.
206206

207-
* **Hybrid Vector-Scalar Approach**: Combining vector operations for finding non-zero bytes with scalar operations for processing individual bits.
207+
* **Hybrid Vector-Scalar Approach**: combining vector operations for finding non-zero bytes with scalar operations for processing individual bits.
208208

209209
* **Prefetching**: Using `__builtin_prefetch` to reduce memory latency by prefetching the next chunk of data.
210210

0 commit comments

Comments
 (0)