| ▲ | pillmillipedes 3 hours ago | |
[1] seems to have the actual details on compressed vectors. looks like for each page you're storing min&max, and the values come as offsets from the min (smaller->less bits per value), did I get that right?
how does this even happen though? | ||
| ▲ | jloveless 3 hours ago | parent | next [-] | |
simple example at https://lv1.sh/blog/compute-on-compressed/ But in general compression is reducing the bit width of the input through an encoder (FOR or Frame of Reference is an old and good example). So we store the base in an offset location then the large payload is a much smaller size. E.g. i64 can goto i16. Then simd gets more #'s per cycle on the smaller, and the base is added to the scratch in stack (for sum). avg is similar (since it is just sum / count) | ||
| ▲ | jloveless 3 hours ago | parent | prev [-] | |
there's even a secret -17!`name that will show the details. e.g. | ||