forked from jpountz/decode-128-ints-benchmark
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.txt
267 lines (262 loc) · 29.5 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
What is the fastest way to read 128 packed integers from a ByteBuffer?
* `readLongs` just reads 2*bitsPerValue longs from the ByteBuffer, it serves as
a baseline.
* `decodeNaiveFromBytes` reads a byte[] and decodes from it. This is what the
current Lucene codec does.
* `decodeNaiveFromLongs` decodes from longs on the fly.
* `decodeSimpleSIMD` is a simple implementation that relies on how Java's C2
compiler recognizes some patterns and uses SIMD instructions.
* `decodeSIMD` is a more complex implementation that both relies on the C2
compiler and encodes 8 bytes, 4 shorts or 2 ints in a long in order to
decompress multiple values at once.
Benchmark (bitsPerValue) (byteOrder) Mode Cnt Score Error Units
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 1 LE thrpt 5 12.912 ± 0.393 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 1 BE thrpt 5 12.862 ± 0.395 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 2 LE thrpt 5 13.040 ± 1.162 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 2 BE thrpt 5 13.027 ± 0.270 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 3 LE thrpt 5 12.409 ± 0.637 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 3 BE thrpt 5 12.268 ± 0.947 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 4 LE thrpt 5 14.177 ± 2.263 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 4 BE thrpt 5 11.457 ± 0.150 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 5 LE thrpt 5 10.988 ± 1.179 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 5 BE thrpt 5 11.226 ± 0.088 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 6 LE thrpt 5 9.791 ± 0.305 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 6 BE thrpt 5 9.403 ± 3.598 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 7 LE thrpt 5 10.256 ± 0.211 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 7 BE thrpt 5 10.314 ± 0.382 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 8 LE thrpt 5 16.516 ± 0.380 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 8 BE thrpt 5 16.375 ± 0.427 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 9 LE thrpt 5 9.067 ± 0.066 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 9 BE thrpt 5 9.078 ± 0.178 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 10 LE thrpt 5 8.913 ± 0.074 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 10 BE thrpt 5 8.893 ± 0.101 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 11 LE thrpt 5 7.908 ± 0.118 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 11 BE thrpt 5 7.864 ± 0.097 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 12 LE thrpt 5 9.220 ± 0.103 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 12 BE thrpt 5 9.186 ± 0.241 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 13 LE thrpt 5 7.119 ± 0.071 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 13 BE thrpt 5 7.066 ± 0.059 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 14 LE thrpt 5 12.483 ± 0.171 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 14 BE thrpt 5 12.473 ± 0.117 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 15 LE thrpt 5 6.202 ± 0.192 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 15 BE thrpt 5 6.187 ± 0.399 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 16 LE thrpt 5 12.798 ± 0.249 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromBytes 16 BE thrpt 5 12.987 ± 0.208 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 1 LE thrpt 5 7.248 ± 0.096 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 1 BE thrpt 5 7.292 ± 0.114 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 2 LE thrpt 5 8.923 ± 0.099 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 2 BE thrpt 5 8.899 ± 0.028 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 3 LE thrpt 5 9.192 ± 0.082 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 3 BE thrpt 5 9.090 ± 0.066 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 4 LE thrpt 5 7.947 ± 0.039 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 4 BE thrpt 5 7.809 ± 0.298 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 5 LE thrpt 5 8.342 ± 0.568 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 5 BE thrpt 5 8.259 ± 0.572 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 6 LE thrpt 5 15.594 ± 0.149 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 6 BE thrpt 5 14.012 ± 0.160 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 7 LE thrpt 5 12.686 ± 0.271 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 7 BE thrpt 5 12.806 ± 0.160 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 8 LE thrpt 5 13.571 ± 0.135 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 8 BE thrpt 5 13.312 ± 0.110 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 9 LE thrpt 5 11.812 ± 0.108 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 9 BE thrpt 5 12.874 ± 0.168 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 10 LE thrpt 5 12.882 ± 0.114 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 10 BE thrpt 5 12.142 ± 0.091 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 11 LE thrpt 5 12.302 ± 0.111 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 11 BE thrpt 5 10.762 ± 0.250 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 12 LE thrpt 5 12.505 ± 0.070 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 12 BE thrpt 5 12.149 ± 0.083 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 13 LE thrpt 5 11.159 ± 0.341 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 13 BE thrpt 5 10.395 ± 0.222 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 14 LE thrpt 5 11.004 ± 0.058 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 14 BE thrpt 5 10.312 ± 0.369 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 15 LE thrpt 5 11.236 ± 0.117 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 15 BE thrpt 5 9.792 ± 0.202 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 16 LE thrpt 5 10.607 ± 0.105 ops/us
PackedIntsDecodeBenchmark.decodeNaiveFromLongs 16 BE thrpt 5 10.340 ± 0.070 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 1 LE thrpt 5 20.925 ± 0.368 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 1 BE thrpt 5 13.396 ± 0.485 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 2 LE thrpt 5 20.628 ± 0.494 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 2 BE thrpt 5 13.584 ± 0.194 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 3 LE thrpt 5 19.932 ± 1.609 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 3 BE thrpt 5 13.296 ± 0.095 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 4 LE thrpt 5 21.065 ± 0.767 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 4 BE thrpt 5 13.557 ± 0.051 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 5 LE thrpt 5 19.630 ± 0.067 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 5 BE thrpt 5 12.916 ± 0.186 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 6 LE thrpt 5 20.253 ± 0.701 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 6 BE thrpt 5 12.820 ± 0.048 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 7 LE thrpt 5 18.944 ± 0.160 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 7 BE thrpt 5 12.562 ± 0.128 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 8 LE thrpt 5 22.778 ± 2.023 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 8 BE thrpt 5 13.658 ± 0.158 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 9 LE thrpt 5 18.527 ± 0.169 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 9 BE thrpt 5 12.045 ± 0.111 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 10 LE thrpt 5 16.610 ± 0.997 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 10 BE thrpt 5 11.208 ± 0.087 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 11 LE thrpt 5 17.961 ± 0.080 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 11 BE thrpt 5 11.594 ± 0.084 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 12 LE thrpt 5 16.980 ± 2.372 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 12 BE thrpt 5 11.135 ± 0.050 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 13 LE thrpt 5 17.592 ± 0.269 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 13 BE thrpt 5 11.132 ± 0.227 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 14 LE thrpt 5 16.964 ± 0.423 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 14 BE thrpt 5 10.953 ± 0.326 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 15 LE thrpt 5 17.972 ± 0.572 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 15 BE thrpt 5 10.872 ± 0.150 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 16 LE thrpt 5 24.152 ± 0.213 ops/us
PackedIntsDecodeBenchmark.decodeSIMD 16 BE thrpt 5 12.984 ± 0.348 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 1 LE thrpt 5 14.567 ± 0.714 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 1 BE thrpt 5 10.541 ± 0.079 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 2 LE thrpt 5 15.395 ± 0.687 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 2 BE thrpt 5 11.142 ± 0.052 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 3 LE thrpt 5 15.802 ± 0.623 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 3 BE thrpt 5 10.656 ± 0.278 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 4 LE thrpt 5 17.732 ± 0.276 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 4 BE thrpt 5 11.289 ± 0.209 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 5 LE thrpt 5 16.230 ± 0.389 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 5 BE thrpt 5 10.216 ± 0.184 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 6 LE thrpt 5 16.478 ± 0.682 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 6 BE thrpt 5 10.379 ± 0.157 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 8 LE thrpt 5 18.222 ± 0.388 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 8 BE thrpt 5 11.153 ± 0.619 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 10 LE thrpt 5 15.138 ± 0.321 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 10 BE thrpt 5 9.384 ± 0.671 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 16 LE thrpt 5 20.776 ± 0.397 ops/us
PackedIntsDecodeBenchmark.decodeSimpleSIMD 16 BE thrpt 5 10.199 ± 0.146 ops/us
PackedIntsDecodeBenchmark.readLongs 1 LE thrpt 5 30.220 ± 0.652 ops/us
PackedIntsDecodeBenchmark.readLongs 1 BE thrpt 5 16.324 ± 0.226 ops/us
PackedIntsDecodeBenchmark.readLongs 2 LE thrpt 5 30.952 ± 0.329 ops/us
PackedIntsDecodeBenchmark.readLongs 2 BE thrpt 5 16.492 ± 0.397 ops/us
PackedIntsDecodeBenchmark.readLongs 3 LE thrpt 5 30.156 ± 0.979 ops/us
PackedIntsDecodeBenchmark.readLongs 3 BE thrpt 5 16.273 ± 0.441 ops/us
PackedIntsDecodeBenchmark.readLongs 4 LE thrpt 5 29.925 ± 0.718 ops/us
PackedIntsDecodeBenchmark.readLongs 4 BE thrpt 5 15.930 ± 0.350 ops/us
PackedIntsDecodeBenchmark.readLongs 5 LE thrpt 5 29.773 ± 0.979 ops/us
PackedIntsDecodeBenchmark.readLongs 5 BE thrpt 5 15.775 ± 0.257 ops/us
PackedIntsDecodeBenchmark.readLongs 6 LE thrpt 5 29.591 ± 1.285 ops/us
PackedIntsDecodeBenchmark.readLongs 6 BE thrpt 5 15.732 ± 0.226 ops/us
PackedIntsDecodeBenchmark.readLongs 7 LE thrpt 5 29.708 ± 0.909 ops/us
PackedIntsDecodeBenchmark.readLongs 7 BE thrpt 5 15.433 ± 0.562 ops/us
PackedIntsDecodeBenchmark.readLongs 8 LE thrpt 5 29.828 ± 0.689 ops/us
PackedIntsDecodeBenchmark.readLongs 8 BE thrpt 5 15.390 ± 0.188 ops/us
PackedIntsDecodeBenchmark.readLongs 9 LE thrpt 5 29.127 ± 0.309 ops/us
PackedIntsDecodeBenchmark.readLongs 9 BE thrpt 5 15.180 ± 0.199 ops/us
PackedIntsDecodeBenchmark.readLongs 10 LE thrpt 5 29.085 ± 0.538 ops/us
PackedIntsDecodeBenchmark.readLongs 10 BE thrpt 5 14.887 ± 1.687 ops/us
PackedIntsDecodeBenchmark.readLongs 11 LE thrpt 5 28.904 ± 0.329 ops/us
PackedIntsDecodeBenchmark.readLongs 11 BE thrpt 5 14.936 ± 0.119 ops/us
PackedIntsDecodeBenchmark.readLongs 12 LE thrpt 5 29.025 ± 0.299 ops/us
PackedIntsDecodeBenchmark.readLongs 12 BE thrpt 5 14.685 ± 0.154 ops/us
PackedIntsDecodeBenchmark.readLongs 13 LE thrpt 5 28.963 ± 0.244 ops/us
PackedIntsDecodeBenchmark.readLongs 13 BE thrpt 5 14.569 ± 0.100 ops/us
PackedIntsDecodeBenchmark.readLongs 14 LE thrpt 5 28.584 ± 1.409 ops/us
PackedIntsDecodeBenchmark.readLongs 14 BE thrpt 5 14.340 ± 0.594 ops/us
PackedIntsDecodeBenchmark.readLongs 15 LE thrpt 5 28.744 ± 0.314 ops/us
PackedIntsDecodeBenchmark.readLongs 15 BE thrpt 5 14.222 ± 0.105 ops/us
PackedIntsDecodeBenchmark.readLongs 16 LE thrpt 5 26.638 ± 0.452 ops/us
PackedIntsDecodeBenchmark.readLongs 16 BE thrpt 5 13.906 ± 0.604 ops/us
Now what about decoding and computing a prefix sum of the decoded values?
* `naiveDecodeAndPrefixSum` uses the fastest SIMD decoding from above and then
runs a prefix sum with a for loop
* `naiveDecodeAndUnrolledPrefixSum` uses the fastest SIMD decoding from above
and then runs an unrolled prefix sum
* `mergeDecodeAndPrefixSum` runs the prefix sum within the decoding logic, when
longs are still storing 2 packed integers
Benchmark (bitsPerValue) (byteOrder) Mode Cnt Score Error Units
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 1 LE thrpt 5 13.666 ± 0.169 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 1 BE thrpt 5 10.393 ± 0.092 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 2 LE thrpt 5 13.725 ± 0.347 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 2 BE thrpt 5 10.348 ± 0.706 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 3 LE thrpt 5 13.526 ± 0.068 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 3 BE thrpt 5 10.132 ± 0.576 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 4 LE thrpt 5 13.916 ± 0.167 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 4 BE thrpt 5 10.294 ± 0.101 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 5 LE thrpt 5 13.467 ± 0.219 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 5 BE thrpt 5 10.009 ± 0.106 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 6 LE thrpt 5 13.171 ± 0.142 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 6 BE thrpt 5 9.686 ± 1.134 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 7 LE thrpt 5 13.147 ± 0.101 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 7 BE thrpt 5 9.730 ± 0.090 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 8 LE thrpt 5 13.941 ± 0.179 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 8 BE thrpt 5 10.497 ± 0.027 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 9 LE thrpt 5 12.419 ± 0.225 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 9 BE thrpt 5 9.032 ± 0.113 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 10 LE thrpt 5 11.492 ± 0.850 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 10 BE thrpt 5 8.643 ± 0.139 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 11 LE thrpt 5 11.742 ± 0.524 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 11 BE thrpt 5 9.043 ± 0.160 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 12 LE thrpt 5 12.243 ± 0.181 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 12 BE thrpt 5 8.888 ± 0.217 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 13 LE thrpt 5 11.515 ± 0.481 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 13 BE thrpt 5 8.822 ± 0.230 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 14 LE thrpt 5 11.547 ± 1.114 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 14 BE thrpt 5 8.611 ± 0.147 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 15 LE thrpt 5 12.200 ± 0.131 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 15 BE thrpt 5 8.627 ± 0.118 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 16 LE thrpt 5 15.135 ± 0.271 ops/us
PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 16 BE thrpt 5 10.038 ± 0.063 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 1 LE thrpt 5 10.027 ± 0.047 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 1 BE thrpt 5 8.210 ± 0.125 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 2 LE thrpt 5 10.168 ± 0.128 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 2 BE thrpt 5 8.362 ± 0.131 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 3 LE thrpt 5 9.969 ± 0.347 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 3 BE thrpt 5 8.156 ± 0.288 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 4 LE thrpt 5 10.172 ± 0.324 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 4 BE thrpt 5 8.343 ± 0.057 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 5 LE thrpt 5 9.850 ± 0.200 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 5 BE thrpt 5 8.009 ± 0.087 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 6 LE thrpt 5 10.014 ± 0.182 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 6 BE thrpt 5 7.978 ± 0.075 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 7 LE thrpt 5 9.834 ± 0.076 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 7 BE thrpt 5 7.828 ± 0.056 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 8 LE thrpt 5 10.504 ± 0.224 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 8 BE thrpt 5 8.380 ± 0.408 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 9 LE thrpt 5 9.477 ± 0.131 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 9 BE thrpt 5 7.509 ± 0.071 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 10 LE thrpt 5 9.026 ± 1.915 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 10 BE thrpt 5 7.212 ± 0.034 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 11 LE thrpt 5 9.402 ± 0.051 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 11 BE thrpt 5 7.449 ± 0.148 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 12 LE thrpt 5 9.417 ± 0.055 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 12 BE thrpt 5 7.228 ± 0.035 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 13 LE thrpt 5 9.328 ± 0.102 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 13 BE thrpt 5 7.289 ± 0.043 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 14 LE thrpt 5 9.394 ± 0.127 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 14 BE thrpt 5 7.216 ± 0.106 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 15 LE thrpt 5 9.299 ± 0.127 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 15 BE thrpt 5 7.141 ± 0.042 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 16 LE thrpt 5 10.701 ± 0.123 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 16 BE thrpt 5 8.282 ± 0.092 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 1 LE thrpt 5 12.181 ± 0.124 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 1 BE thrpt 5 9.752 ± 0.280 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 2 LE thrpt 5 12.341 ± 0.141 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 2 BE thrpt 5 9.806 ± 0.203 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 3 LE thrpt 5 12.221 ± 0.110 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 3 BE thrpt 5 9.593 ± 0.054 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 4 LE thrpt 5 12.557 ± 0.165 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 4 BE thrpt 5 9.808 ± 0.077 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 5 LE thrpt 5 12.112 ± 0.162 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 5 BE thrpt 5 9.402 ± 0.117 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 6 LE thrpt 5 12.095 ± 0.228 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 6 BE thrpt 5 9.291 ± 0.203 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 7 LE thrpt 5 11.803 ± 0.080 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 7 BE thrpt 5 9.419 ± 0.072 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 8 LE thrpt 5 12.861 ± 0.135 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 8 BE thrpt 5 9.786 ± 0.234 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 9 LE thrpt 5 11.573 ± 0.136 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 9 BE thrpt 5 8.700 ± 0.094 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 10 LE thrpt 5 11.113 ± 0.205 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 10 BE thrpt 5 8.315 ± 0.025 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 11 LE thrpt 5 11.300 ± 0.125 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 11 BE thrpt 5 8.424 ± 0.182 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 12 LE thrpt 5 11.385 ± 0.081 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 12 BE thrpt 5 8.370 ± 0.029 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 13 LE thrpt 5 10.926 ± 0.114 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 13 BE thrpt 5 8.444 ± 0.083 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 14 LE thrpt 5 11.164 ± 0.078 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 14 BE thrpt 5 8.106 ± 0.020 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 15 LE thrpt 5 11.026 ± 0.045 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 15 BE thrpt 5 8.233 ± 0.099 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 16 LE thrpt 5 13.869 ± 0.079 ops/us
PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 16 BE thrpt 5 9.722 ± 0.045 ops/us