]> git.sesse.net Git - plocate/blobdiff - bench.cpp
Support decoding the SIMD interleaved TurboPFor formats.
[plocate] / bench.cpp
index d9704ef53a71ca203578047ec372605837e81feb..03b3967ac4ab4eddb8752e5028795ebc4f93191b 100644 (file)
--- a/bench.cpp
+++ b/bench.cpp
@@ -52,8 +52,8 @@ int main(void)
                out1.resize(num_docids + 128);
                out2.resize(num_docids + 128);
                unsigned char *pldata = reinterpret_cast<unsigned char *>(&pl[0]);
-               p4nd1dec32(pldata, num_docids, &out1[0]);
-               decode_pfor_delta1<128>(pldata, num_docids, &out2[0]);
+               p4nd1dec128v32(pldata, num_docids, &out1[0]);
+               decode_pfor_delta1<128>(pldata, num_docids, /*interleaved=*/true, &out2[0]);
                for (unsigned i = 0; i < num_docids; ++i) {
                        if (out1[i] != out2[i]) {
                                if (++num_errors < 10) {
@@ -72,7 +72,7 @@ int main(void)
        steady_clock::time_point start = steady_clock::now();
        for (auto &[pl, num_docids] : posting_lists) {
                unsigned char *pldata = reinterpret_cast<unsigned char *>(&pl[0]);
-               p4nd1dec32(pldata, num_docids, &dummy[0]);
+               p4nd1dec128v32(pldata, num_docids, &dummy[0]);
        }
        steady_clock::time_point end = steady_clock::now();
        double reference_sec = duration<double>(end - start).count();
@@ -81,9 +81,9 @@ int main(void)
        start = steady_clock::now();
        for (auto &[pl, num_docids] : posting_lists) {
                unsigned char *pldata = reinterpret_cast<unsigned char *>(&pl[0]);
-               decode_pfor_delta1<128>(pldata, num_docids, &dummy[0]);
+               decode_pfor_delta1<128>(pldata, num_docids, /*interleaved=*/true, &dummy[0]);
        }
        end = steady_clock::now();
        double own_sec = duration<double>(end - start).count();
-       fprintf(stderr, "Decoding with own implementation: %.1f ms (%.2f%% speed)\n", 1e3 * own_sec, 100.0 * reference_sec / own_sec);
+       fprintf(stderr, "Decoding with own implementation: %.3f ms (%.2f%% speed)\n", 1e3 * own_sec, 100.0 * reference_sec / own_sec);
 }