From df83aae44a83c693a2e20d52e22a711bcf9f6b67 Mon Sep 17 00:00:00 2001 From: ericz Date: Sat, 9 Nov 2024 13:05:30 -0500 Subject: [PATCH 01/18] update README with note on dihedral pdq hashes --- pdq/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pdq/README.md b/pdq/README.md index 6ef929413..60efc92c9 100644 --- a/pdq/README.md +++ b/pdq/README.md @@ -36,6 +36,12 @@ Before evaluating the results on your own to choose the thresholds that work for * **Distance Threshold to consider two hashes to be similar/matching**: <=31 * **Quality Threshold where we recommend discarding hashes**: <=49 +## Note on Dihedral PDQ Hashes + +The PDQ hashing algorithm is easily capable of producing eight "dihedral" hashes (one for each 90 degree rotation and one for each flip across a horizontal, vertical or diagonal axis). However, PDQ does not guarantee exact rotational invariance. Small variations can occur in the hash values for each rotation due to how PDQ processes the image’s grid alignment in its DCT (Discrete Cosine Transform) phase. + +For example, two rotated versions of an image can have a slightly different set of eight dihedral hashes. Selecting a "minimal" hash from these transformations (e.g., lexicographically) may yield inconsistent results because of these minor bit differences. For each image, if we select the minimal hash, there’s no guarantee that the same hash will be selected across different rotations. These inconsistencies arise when small bit variations lead to a different hash being identified as "minimal" for each rotation. For a clearer example, check this issue: ([https://github.com/facebook/ThreatExchange/issues/1676#issuecomment-2466331532](https://github.com/facebook/ThreatExchange/issues/1676#issuecomment-2466331532)). + ## Contact threatexchange@meta.com From 40795aa77aa55e31e9264cda4c94068604fdc8d6 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 20 Nov 2024 19:45:30 +0000 Subject: [PATCH 02/18] copy benchmark over from test-mih.cpp --- pdq/cpp/Makefile | 3 + pdq/cpp/bin/benchmark-mih.cpp | 267 ++++++++++++++++++++++++++++++++++ 2 files changed, 270 insertions(+) create mode 100644 pdq/cpp/bin/benchmark-mih.cpp diff --git a/pdq/cpp/Makefile b/pdq/cpp/Makefile index 62fa59e9e..a2633359d 100644 --- a/pdq/cpp/Makefile +++ b/pdq/cpp/Makefile @@ -46,6 +46,7 @@ LIBSRCS=\ MAINS=\ pdq-photo-hasher \ test-mih \ + benchmark-mih \ clusterize256 \ snowball-clusterize256 \ clusterize256x \ @@ -111,6 +112,8 @@ pdq-downsample-demo: bin/pdq-downsample-demo.cpp $(LIBSRCS) $(LIBHDRS) test-mih: bin/test-mih.cpp $(LIBSRCS) $(LIBHDRS) $(CCOPT) bin/test-mih.cpp $(LIBSRCS) -o test-mih $(LFLAGS) +benchmark-mih: bin/benchmark-mih.cpp $(LIBSRCS) $(LIBHDRS) + $(CCOPT) bin/benchmark-mih.cpp $(LIBSRCS) -o benchmark-mih $(LFLAGS) test-mihg: bin/test-mih.cpp $(LIBSRCS) $(LIBHDRS) $(CCDBG) bin/test-mih.cpp $(LIBSRCS) -o test-mihg $(LFLAGS) clusterize256: bin/clusterize256.cpp $(LIBSRCS) $(LIBHDRS) diff --git a/pdq/cpp/bin/benchmark-mih.cpp b/pdq/cpp/bin/benchmark-mih.cpp new file mode 100644 index 000000000..8d636f152 --- /dev/null +++ b/pdq/cpp/bin/benchmark-mih.cpp @@ -0,0 +1,267 @@ +// ================================================================ +// Copyright (c) Meta Platforms, Inc. and affiliates. +// ================================================================ + +#ifndef _GNU_SOURCE +#define _GNU_SOURCE +#endif + +#include +#include +#include +#include +#include + +#include +#include + +// ================================================================ +// For regression-test usage. See also mih-query.cpp. +// ================================================================ + +static void usage(char* argv0, int rc); +static void do_test_1(char* argv0, int argc, char** argv); +static void do_test_2(char* argv0, int argc, char** argv); + +// ---------------------------------------------------------------- +int main(int argc, char** argv) { + // Parse command-line flags. I'm explicitly not using gflags or other such + // libraries, to minimize the number of external dependencies for this + // project. + if (argc < 2) + usage(argv[0], 1); + if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")) { + usage(argv[0], 0); + } else if (!strcmp(argv[1], "test1")) { + do_test_1(argv[0], argc - 2, argv + 2); + } else if (!strcmp(argv[1], "test2")) { + do_test_2(argv[0], argc - 2, argv + 2); + + } else { + usage(argv[0], 1); + } + return 0; +} + +// ---------------------------------------------------------------- +static void usage(char* argv0, int rc) { + FILE* fp = (rc == 0) ? stdout : stderr; + fprintf(fp, "Usage: %s {test1} [zero or more hashes]\n", argv0); + fprintf(fp, "Hashes should be in hexadecimal format without leading 0x.\n"); + fprintf( + fp, + "If zero hashes are given on the command line, they are " + "read from stdin.\n"); + exit(rc); +} + +// ---------------------------------------------------------------- +// This is for regression-test use, to test the lazily-filled +// nearest-neighbors cache on 16-bit words within MIH256. + +static void do_test_1(char* argv0, int argc, char** argv) { + int d = 32; + int idx = 0; + facebook::pdq::hashing::Hash256 h, n; + facebook::pdq::index::MIH256 mih; + std::vector> matches; + + h.clear(); + h.setBit(0); + h.setBit(2); + h.setBit(7); + h.setBit(9); + mih.insert(h, idx++); + + h.clear(); + h.setBit(1); + h.setBit(2); + h.setBit(7); + h.setBit(9); + mih.insert(h, idx++); + + h.clear(); + h.setBit(0); + h.setBit(3); + h.setBit(6); + h.setBit(7); + h.setBit(9); + mih.insert(h, idx++); + + mih.dump(); + + n.clear(); + n.setBit(0); + n.setBit(3); + n.setBit(6); + n.setBit(8); + n.setBit(9); + + mih.queryAll(n, d, matches); +} + +// ---------------------------------------------------------------- +static void test_2_usage(char* argv0) { + fprintf( + stderr, + "Usage: %s test2 [-v] [--no-timings] {d} {needles} {haystack}\n", + argv0); + exit(1); +} + +static void do_test_2(char* argv0, int argc, char** argv) { + int maxDistance = 32; + facebook::pdq::hashing::Hash256 needle; + std::vector> needles; + std::vector> haystack; + bool verbose = false; + bool do_timings = true; // Omit for regtest so we can use exact diff + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // Parse the command line + while (argc > 0 && argv[0][0] == '-') { + if (!strcmp(argv[0], "-v")) { + verbose = true; + } else if (!strcmp(argv[0], "--no-timings")) { + do_timings = false; + } else { + test_2_usage(argv0); + } + argc--; + argv++; + } + + if (argc != 3) { + test_2_usage(argv0); + } + (void)sscanf(argv[0], "%d", &maxDistance); + char* needles_filename = argv[1]; + char* haystack_filename = argv[2]; + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // Load input data + if (!facebook::pdq::io::loadHashesAndMetadataFromFile( + needles_filename, needles)) { + exit(1); // error message already printed out + } + if (!facebook::pdq::io::loadHashesAndMetadataFromFile( + haystack_filename, haystack)) { + exit(1); // error message already printed out + } + + if (verbose) { + printf("NEEDLES:\n"); + for (auto it : needles) { + facebook::pdq::hashing::Hash256 hash = it.first; + std::string metadata = it.second; + printf("%s,%s\n", hash.format().c_str(), metadata.c_str()); + } + printf("\n"); + + printf("ORIGINAL HAYSTACK:\n"); + for (auto it : haystack) { + facebook::pdq::hashing::Hash256 hash = it.first; + std::string metadata = it.second; + printf("%s,%s\n", hash.format().c_str(), metadata.c_str()); + } + printf("\n"); + } + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // Build the MIH + std::vector> matches; + int num_matches = 0; + + std::chrono::time_point t1, t2; + std::chrono::duration elapsed_seconds_outer; + double seconds; + + facebook::pdq::index::MIH256 mih; + + t1 = std::chrono::system_clock::now(); + for (auto it : haystack) { + facebook::pdq::hashing::Hash256 hash = it.first; + std::string metadata = it.second; + mih.insert(hash, metadata); + } + t2 = std::chrono::system_clock::now(); + elapsed_seconds_outer = t2 - t1; + seconds = elapsed_seconds_outer.count(); + if (do_timings) { + printf("MIH BUILD SECONDS: %.6lf\n", seconds); + } + printf("\n"); + if (verbose) { + printf("\n"); + mih.dump(); + printf("\n"); + } + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // Do linear searches + matches.clear(); + num_matches = 0; + + t1 = std::chrono::system_clock::now(); + for (auto it : needles) { + facebook::pdq::hashing::Hash256 needle = it.first; + mih.bruteForceQueryAll(needle, maxDistance, matches); + num_matches += matches.size(); + if (verbose) { + printf("BRUTE-FORCE MATCHES:\n"); + for (auto it : matches) { + facebook::pdq::hashing::Hash256 hash = it.first; + std::string metadata = it.second; + printf("%s,%s\n", hash.format().c_str(), metadata.c_str()); + } + } + } + t2 = std::chrono::system_clock::now(); + elapsed_seconds_outer = t2 - t1; + seconds = elapsed_seconds_outer.count(); + + printf("BRUTE-FORCE QUERY:\n"); + printf("NEEDLE COUNT: %d\n", (int)needles.size()); + printf("HAYSTACK COUNT: %d\n", (int)mih.size()); + printf("TOTAL MATCH COUNT: %d\n", (int)num_matches); + if (do_timings) { + printf("SECONDS: %.6lf\n", seconds); + printf("SECONDS PER NEEDLE: %.6lf\n", seconds / needles.size()); + printf("SECONDS PER MATCH: %.6lf\n", seconds / num_matches); + } + printf("\n"); + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // Do indexed searches + matches.clear(); + num_matches = 0; + + t1 = std::chrono::system_clock::now(); + for (auto it : needles) { + facebook::pdq::hashing::Hash256 needle = it.first; + mih.queryAll(needle, maxDistance, matches); + num_matches += matches.size(); + if (verbose) { + printf("PRUNED MATCHES:\n"); + for (auto it : matches) { + facebook::pdq::hashing::Hash256 hash = it.first; + std::string metadata = it.second; + printf("%s,%s\n", hash.format().c_str(), metadata.c_str()); + } + } + } + t2 = std::chrono::system_clock::now(); + elapsed_seconds_outer = t2 - t1; + seconds = elapsed_seconds_outer.count(); + + printf("MIH QUERY:\n"); + printf("NEEDLE COUNT: %d\n", (int)needles.size()); + printf("HAYSTACK COUNT: %d\n", (int)mih.size()); + printf("TOTAL MATCH COUNT: %d\n", (int)num_matches); + if (do_timings) { + printf("SECONDS: %.6lf\n", seconds); + printf("SECONDS PER NEEDLE: %.6lf\n", seconds / needles.size()); + printf("SECONDS PER MATCH: %.6lf\n", seconds / num_matches); + } + printf("\n"); +} From fef09708ea20c2bcd0b2f708746bc70152ec1fb9 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 25 Nov 2024 21:18:33 +0000 Subject: [PATCH 03/18] needles based on noise --- pdq/cpp/bin/benchmark-mih.cpp | 278 +++++++++++++--------------------- 1 file changed, 108 insertions(+), 170 deletions(-) diff --git a/pdq/cpp/bin/benchmark-mih.cpp b/pdq/cpp/bin/benchmark-mih.cpp index 8d636f152..76adb833c 100644 --- a/pdq/cpp/bin/benchmark-mih.cpp +++ b/pdq/cpp/bin/benchmark-mih.cpp @@ -1,7 +1,3 @@ -// ================================================================ -// Copyright (c) Meta Platforms, Inc. and affiliates. -// ================================================================ - #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif @@ -14,31 +10,49 @@ #include #include +#include +#include // ================================================================ -// For regression-test usage. See also mih-query.cpp. -// ================================================================ - +// Static function declarations static void usage(char* argv0, int rc); -static void do_test_1(char* argv0, int argc, char** argv); -static void do_test_2(char* argv0, int argc, char** argv); +static void do_test(char* argv0, int argc, char** argv); + +// Helper function to generate random hashes +static facebook::pdq::hashing::Hash256 generateRandomHash(std::mt19937& gen) { + facebook::pdq::hashing::Hash256 hash; + std::uniform_int_distribution dist(0, UINT16_MAX); + + for (int i = 0; i < facebook::pdq::hashing::HASH256_NUM_WORDS; i++) { + hash.w[i] = dist(gen); + } + return hash; +} + +// Add noise to hash by flipping random bits +static facebook::pdq::hashing::Hash256 addNoise( + const facebook::pdq::hashing::Hash256& original, + int numBitsToFlip, + std::mt19937& gen) { + + facebook::pdq::hashing::Hash256 noisy = original; + std::uniform_int_distribution wordDist(0, facebook::pdq::hashing::HASH256_NUM_WORDS - 1); + std::uniform_int_distribution bitDist(0, 15); // Each word is 16 bits + for (int i = 0; i < numBitsToFlip; i++) { + int wordIndex = wordDist(gen); + int bitIndex = bitDist(gen); + // Flip bit with xor + noisy.w[wordIndex] ^= (1 << bitIndex); + } + return noisy; +} // ---------------------------------------------------------------- int main(int argc, char** argv) { - // Parse command-line flags. I'm explicitly not using gflags or other such - // libraries, to minimize the number of external dependencies for this - // project. - if (argc < 2) - usage(argv[0], 1); - if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")) { + if (argc>1 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))) { usage(argv[0], 0); - } else if (!strcmp(argv[1], "test1")) { - do_test_1(argv[0], argc - 2, argv + 2); - } else if (!strcmp(argv[1], "test2")) { - do_test_2(argv[0], argc - 2, argv + 2); - } else { - usage(argv[0], 1); + do_test(argv[0], argc - 1, argv + 1); } return 0; } @@ -46,128 +60,69 @@ int main(int argc, char** argv) { // ---------------------------------------------------------------- static void usage(char* argv0, int rc) { FILE* fp = (rc == 0) ? stdout : stderr; - fprintf(fp, "Usage: %s {test1} [zero or more hashes]\n", argv0); - fprintf(fp, "Hashes should be in hexadecimal format without leading 0x.\n"); - fprintf( - fp, - "If zero hashes are given on the command line, they are " - "read from stdin.\n"); + fprintf(fp, "Usage: %s [options]\n", argv0); + fprintf(fp, "Options:\n"); + fprintf(fp, " -v Verbose output\n"); + fprintf(fp, " --no-timings Disable timing output\n"); + fprintf(fp, " --seed N Random seed (default: 41)\n"); + fprintf(fp, " --haystack-size N Number of hashes in haystack (default: 10000)\n"); + fprintf(fp, " --needles-size N Number of needle hashes (default: 1000)\n"); + fprintf(fp, " --distance N Maximum Hamming distance (default: 32)\n"); exit(rc); } -// ---------------------------------------------------------------- -// This is for regression-test use, to test the lazily-filled -// nearest-neighbors cache on 16-bit words within MIH256. - -static void do_test_1(char* argv0, int argc, char** argv) { - int d = 32; - int idx = 0; - facebook::pdq::hashing::Hash256 h, n; - facebook::pdq::index::MIH256 mih; - std::vector> matches; - - h.clear(); - h.setBit(0); - h.setBit(2); - h.setBit(7); - h.setBit(9); - mih.insert(h, idx++); - - h.clear(); - h.setBit(1); - h.setBit(2); - h.setBit(7); - h.setBit(9); - mih.insert(h, idx++); - - h.clear(); - h.setBit(0); - h.setBit(3); - h.setBit(6); - h.setBit(7); - h.setBit(9); - mih.insert(h, idx++); - - mih.dump(); - - n.clear(); - n.setBit(0); - n.setBit(3); - n.setBit(6); - n.setBit(8); - n.setBit(9); - - mih.queryAll(n, d, matches); -} - -// ---------------------------------------------------------------- -static void test_2_usage(char* argv0) { - fprintf( - stderr, - "Usage: %s test2 [-v] [--no-timings] {d} {needles} {haystack}\n", - argv0); - exit(1); -} - -static void do_test_2(char* argv0, int argc, char** argv) { +static void do_test(char* argv0, int argc, char** argv) { int maxDistance = 32; - facebook::pdq::hashing::Hash256 needle; - std::vector> needles; - std::vector> haystack; bool verbose = false; - bool do_timings = true; // Omit for regtest so we can use exact diff - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Parse the command line - while (argc > 0 && argv[0][0] == '-') { - if (!strcmp(argv[0], "-v")) { + unsigned int seed = 41; + size_t haystackSize = 10000; + size_t needlesSize = 1000; + int maxBitsToFlip = maxDistance - 1; + + // Parse command line arguments + for (int i = 0; i < argc; i++) { + std::string arg = argv[i]; + if (arg == "-v") { verbose = true; - } else if (!strcmp(argv[0], "--no-timings")) { - do_timings = false; + } else if (arg == "--seed") { + if (i + 1 < argc) seed = std::stoi(argv[++i]); + } else if (arg == "--haystack-size") { + if (i + 1 < argc) haystackSize = std::stoi(argv[++i]); + } else if (arg == "--needles-size") { + if (i + 1 < argc) needlesSize = std::stoi(argv[++i]); + } else if (arg == "--distance") { + maxDistance = std::stoi(argv[++i]); } else { - test_2_usage(argv0); + usage(argv0, 1); + return; } - argc--; - argv++; } - if (argc != 3) { - test_2_usage(argv0); + // Initialize random number generator + std::mt19937 gen(seed); + + // Generate random hashes for needles + std::vector> needles; + for (size_t i = 0; i < needlesSize; i++) { + auto hash = generateRandomHash(gen); + needles.push_back({hash, "needle_" + std::to_string(i)}); } - (void)sscanf(argv[0], "%d", &maxDistance); - char* needles_filename = argv[1]; - char* haystack_filename = argv[2]; - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Load input data - if (!facebook::pdq::io::loadHashesAndMetadataFromFile( - needles_filename, needles)) { - exit(1); // error message already printed out - } - if (!facebook::pdq::io::loadHashesAndMetadataFromFile( - haystack_filename, haystack)) { - exit(1); // error message already printed out + // Generate random hashes for haystack + std::vector> haystack; + for (size_t i = 0; i < haystackSize; i++) { + auto hash = generateRandomHash(gen); + haystack.push_back({hash, "haystack_" + std::to_string(i)}); } - if (verbose) { - printf("NEEDLES:\n"); - for (auto it : needles) { - facebook::pdq::hashing::Hash256 hash = it.first; - std::string metadata = it.second; - printf("%s,%s\n", hash.format().c_str(), metadata.c_str()); - } - printf("\n"); - - printf("ORIGINAL HAYSTACK:\n"); - for (auto it : haystack) { - facebook::pdq::hashing::Hash256 hash = it.first; - std::string metadata = it.second; - printf("%s,%s\n", hash.format().c_str(), metadata.c_str()); - } - printf("\n"); + std::uniform_int_distribution noiseDist(1, maxBitsToFlip); + for (const auto& needle : needles) { + int bitsToFlip = noiseDist(gen); + auto noisyHash = addNoise(needle.first, bitsToFlip, gen); + haystack.push_back({noisyHash, needle.second + "_noisy"}); } + std::shuffle(haystack.begin(), haystack.end(), gen); - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Build the MIH std::vector> matches; int num_matches = 0; @@ -179,17 +134,12 @@ static void do_test_2(char* argv0, int argc, char** argv) { facebook::pdq::index::MIH256 mih; t1 = std::chrono::system_clock::now(); - for (auto it : haystack) { - facebook::pdq::hashing::Hash256 hash = it.first; - std::string metadata = it.second; - mih.insert(hash, metadata); + for (const auto& it : haystack) { + mih.insert(it.first, it.second); } t2 = std::chrono::system_clock::now(); elapsed_seconds_outer = t2 - t1; seconds = elapsed_seconds_outer.count(); - if (do_timings) { - printf("MIH BUILD SECONDS: %.6lf\n", seconds); - } printf("\n"); if (verbose) { printf("\n"); @@ -197,25 +147,29 @@ static void do_test_2(char* argv0, int argc, char** argv) { printf("\n"); } - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + if (verbose) { + printf("NEEDLES:\n"); + for (const auto& it : needles) { + printf("%s,%s\n", it.first.format().c_str(), it.second.c_str()); + } + printf("\n"); + + printf("ORIGINAL HAYSTACK:\n"); + for (const auto& it : haystack) { + printf("%s,%s\n", it.first.format().c_str(), it.second.c_str()); + } + printf("\n"); + } + // Do linear searches matches.clear(); num_matches = 0; t1 = std::chrono::system_clock::now(); - for (auto it : needles) { - facebook::pdq::hashing::Hash256 needle = it.first; - mih.bruteForceQueryAll(needle, maxDistance, matches); - num_matches += matches.size(); - if (verbose) { - printf("BRUTE-FORCE MATCHES:\n"); - for (auto it : matches) { - facebook::pdq::hashing::Hash256 hash = it.first; - std::string metadata = it.second; - printf("%s,%s\n", hash.format().c_str(), metadata.c_str()); - } - } + for (const auto& it : needles) { + mih.bruteForceQueryAll(it.first, maxDistance, matches); } + num_matches = matches.size(); t2 = std::chrono::system_clock::now(); elapsed_seconds_outer = t2 - t1; seconds = elapsed_seconds_outer.count(); @@ -224,32 +178,19 @@ static void do_test_2(char* argv0, int argc, char** argv) { printf("NEEDLE COUNT: %d\n", (int)needles.size()); printf("HAYSTACK COUNT: %d\n", (int)mih.size()); printf("TOTAL MATCH COUNT: %d\n", (int)num_matches); - if (do_timings) { - printf("SECONDS: %.6lf\n", seconds); - printf("SECONDS PER NEEDLE: %.6lf\n", seconds / needles.size()); - printf("SECONDS PER MATCH: %.6lf\n", seconds / num_matches); - } + printf("SECONDS: %.6lf\n", seconds); + printf("SECONDS PER MATCH: %.6lf\n", num_matches > 0 ? seconds / num_matches : 0); printf("\n"); - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Do indexed searches matches.clear(); num_matches = 0; t1 = std::chrono::system_clock::now(); - for (auto it : needles) { - facebook::pdq::hashing::Hash256 needle = it.first; - mih.queryAll(needle, maxDistance, matches); - num_matches += matches.size(); - if (verbose) { - printf("PRUNED MATCHES:\n"); - for (auto it : matches) { - facebook::pdq::hashing::Hash256 hash = it.first; - std::string metadata = it.second; - printf("%s,%s\n", hash.format().c_str(), metadata.c_str()); - } - } + for (const auto& it : needles) { + mih.queryAll(it.first, maxDistance, matches); } + num_matches = matches.size(); t2 = std::chrono::system_clock::now(); elapsed_seconds_outer = t2 - t1; seconds = elapsed_seconds_outer.count(); @@ -258,10 +199,7 @@ static void do_test_2(char* argv0, int argc, char** argv) { printf("NEEDLE COUNT: %d\n", (int)needles.size()); printf("HAYSTACK COUNT: %d\n", (int)mih.size()); printf("TOTAL MATCH COUNT: %d\n", (int)num_matches); - if (do_timings) { - printf("SECONDS: %.6lf\n", seconds); - printf("SECONDS PER NEEDLE: %.6lf\n", seconds / needles.size()); - printf("SECONDS PER MATCH: %.6lf\n", seconds / num_matches); - } + printf("SECONDS: %.6lf\n", seconds); + printf("SECONDS PER MATCH: %.6lf\n", num_matches > 0 ? seconds / num_matches : 0); printf("\n"); } From 33683c45e2597f91595c039f5d103786d42bdb60 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 27 Nov 2024 22:58:37 +0000 Subject: [PATCH 04/18] benchmark results --- pdq/cpp/index/README.md | 77 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 pdq/cpp/index/README.md diff --git a/pdq/cpp/index/README.md b/pdq/cpp/index/README.md new file mode 100644 index 000000000..7269c5cf7 --- /dev/null +++ b/pdq/cpp/index/README.md @@ -0,0 +1,77 @@ +# Benchmark for index +Benchmark PDQ CPP brute force queries and mutually-indexed hashing queries + +Needles are target hashes +Haystack count is all hashes stored in the index + +## Instructions +``` +cd pdq/cpp +make bin/benchmark-mih.cpp +./benchmark-mih +``` + +Help command: +``` +$ ./benchmark-mih -h +Usage: ./benchmark-mih [options] +Options: + -v Verbose output + --no-timings Disable timing output + --seed N Random seed (default: 41) + --haystack-size N Number of hashes in haystack (default: 10000) + --needles-size N Number of needle hashes (default: 1000) + --distance N Maximum Hamming distance (default: 32) +``` + +## Results +Ran on Ubuntu 24.04.1 LTS, Intel Core i7-14700KF with 20 cores, 28 threads, 64GB RAM + +``` +$ ./benchmark-mih +BRUTE-FORCE QUERY: +NEEDLE COUNT: 1000 +HAYSTACK COUNT: 11000 +TOTAL MATCH COUNT: 1000 +SECONDS: 0.311571 +SECONDS PER MATCH: 0.000312 + +MIH QUERY: +NEEDLE COUNT: 1000 +HAYSTACK COUNT: 11000 +TOTAL MATCH COUNT: 1000 +SECONDS: 0.237358 +SECONDS PER MATCH: 0.000237 + + +$ ./benchmark-mih --distance 48 +BRUTE-FORCE QUERY: +NEEDLE COUNT: 1000 +HAYSTACK COUNT: 11000 +TOTAL MATCH COUNT: 1000 +SECONDS: 0.310662 +SECONDS PER MATCH: 0.000311 + +MIH QUERY: +NEEDLE COUNT: 1000 +HAYSTACK COUNT: 11000 +TOTAL MATCH COUNT: 1000 +SECONDS: 1.196939 +SECONDS PER MATCH: 0.001197 + + +$ ./benchmark-mih --haystack-size 100000 --needles-size 5000 +BRUTE-FORCE QUERY: +NEEDLE COUNT: 5000 +HAYSTACK COUNT: 105000 +TOTAL MATCH COUNT: 5000 +SECONDS: 14.809405 +SECONDS PER MATCH: 0.002962 + +MIH QUERY: +NEEDLE COUNT: 5000 +HAYSTACK COUNT: 105000 +TOTAL MATCH COUNT: 5000 +SECONDS: 5.878446 +SECONDS PER MATCH: 0.001176 +``` \ No newline at end of file From 37996832b111aa7cf02de4c864ca096f767f6492 Mon Sep 17 00:00:00 2001 From: Eric Zhang <31218485+16BitNarwhal@users.noreply.github.com> Date: Fri, 29 Nov 2024 15:57:03 -0500 Subject: [PATCH 05/18] Update pdq/cpp/bin/benchmark-mih.cpp Co-authored-by: ianwal <52143079+ianwal@users.noreply.github.com> --- pdq/cpp/bin/benchmark-mih.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pdq/cpp/bin/benchmark-mih.cpp b/pdq/cpp/bin/benchmark-mih.cpp index 76adb833c..e88cee569 100644 --- a/pdq/cpp/bin/benchmark-mih.cpp +++ b/pdq/cpp/bin/benchmark-mih.cpp @@ -127,7 +127,7 @@ static void do_test(char* argv0, int argc, char** argv) { std::vector> matches; int num_matches = 0; - std::chrono::time_point t1, t2; + std::chrono::time_point t1, t2; std::chrono::duration elapsed_seconds_outer; double seconds; From 495cc8d21c00d2cf2da130bd9856b45be8affaba Mon Sep 17 00:00:00 2001 From: root Date: Fri, 29 Nov 2024 20:57:22 +0000 Subject: [PATCH 06/18] clang format --- pdq/cpp/bin/benchmark-mih.cpp | 47 +++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/pdq/cpp/bin/benchmark-mih.cpp b/pdq/cpp/bin/benchmark-mih.cpp index e88cee569..3c9ed2fcc 100644 --- a/pdq/cpp/bin/benchmark-mih.cpp +++ b/pdq/cpp/bin/benchmark-mih.cpp @@ -8,10 +8,10 @@ #include #include +#include #include -#include #include -#include +#include // ================================================================ // Static function declarations @@ -22,7 +22,7 @@ static void do_test(char* argv0, int argc, char** argv); static facebook::pdq::hashing::Hash256 generateRandomHash(std::mt19937& gen) { facebook::pdq::hashing::Hash256 hash; std::uniform_int_distribution dist(0, UINT16_MAX); - + for (int i = 0; i < facebook::pdq::hashing::HASH256_NUM_WORDS; i++) { hash.w[i] = dist(gen); } @@ -31,12 +31,12 @@ static facebook::pdq::hashing::Hash256 generateRandomHash(std::mt19937& gen) { // Add noise to hash by flipping random bits static facebook::pdq::hashing::Hash256 addNoise( - const facebook::pdq::hashing::Hash256& original, - int numBitsToFlip, - std::mt19937& gen) { - + const facebook::pdq::hashing::Hash256& original, + int numBitsToFlip, + std::mt19937& gen) { facebook::pdq::hashing::Hash256 noisy = original; - std::uniform_int_distribution wordDist(0, facebook::pdq::hashing::HASH256_NUM_WORDS - 1); + std::uniform_int_distribution wordDist( + 0, facebook::pdq::hashing::HASH256_NUM_WORDS - 1); std::uniform_int_distribution bitDist(0, 15); // Each word is 16 bits for (int i = 0; i < numBitsToFlip; i++) { int wordIndex = wordDist(gen); @@ -49,7 +49,7 @@ static facebook::pdq::hashing::Hash256 addNoise( // ---------------------------------------------------------------- int main(int argc, char** argv) { - if (argc>1 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))) { + if (argc > 1 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))) { usage(argv[0], 0); } else { do_test(argv[0], argc - 1, argv + 1); @@ -65,9 +65,13 @@ static void usage(char* argv0, int rc) { fprintf(fp, " -v Verbose output\n"); fprintf(fp, " --no-timings Disable timing output\n"); fprintf(fp, " --seed N Random seed (default: 41)\n"); - fprintf(fp, " --haystack-size N Number of hashes in haystack (default: 10000)\n"); - fprintf(fp, " --needles-size N Number of needle hashes (default: 1000)\n"); - fprintf(fp, " --distance N Maximum Hamming distance (default: 32)\n"); + fprintf( + fp, + " --haystack-size N Number of hashes in haystack (default: 10000)\n"); + fprintf( + fp, " --needles-size N Number of needle hashes (default: 1000)\n"); + fprintf( + fp, " --distance N Maximum Hamming distance (default: 32)\n"); exit(rc); } @@ -85,11 +89,14 @@ static void do_test(char* argv0, int argc, char** argv) { if (arg == "-v") { verbose = true; } else if (arg == "--seed") { - if (i + 1 < argc) seed = std::stoi(argv[++i]); + if (i + 1 < argc) + seed = std::stoi(argv[++i]); } else if (arg == "--haystack-size") { - if (i + 1 < argc) haystackSize = std::stoi(argv[++i]); + if (i + 1 < argc) + haystackSize = std::stoi(argv[++i]); } else if (arg == "--needles-size") { - if (i + 1 < argc) needlesSize = std::stoi(argv[++i]); + if (i + 1 < argc) + needlesSize = std::stoi(argv[++i]); } else if (arg == "--distance") { maxDistance = std::stoi(argv[++i]); } else { @@ -100,7 +107,7 @@ static void do_test(char* argv0, int argc, char** argv) { // Initialize random number generator std::mt19937 gen(seed); - + // Generate random hashes for needles std::vector> needles; for (size_t i = 0; i < needlesSize; i++) { @@ -179,7 +186,9 @@ static void do_test(char* argv0, int argc, char** argv) { printf("HAYSTACK COUNT: %d\n", (int)mih.size()); printf("TOTAL MATCH COUNT: %d\n", (int)num_matches); printf("SECONDS: %.6lf\n", seconds); - printf("SECONDS PER MATCH: %.6lf\n", num_matches > 0 ? seconds / num_matches : 0); + printf( + "SECONDS PER MATCH: %.6lf\n", + num_matches > 0 ? seconds / num_matches : 0); printf("\n"); // Do indexed searches @@ -200,6 +209,8 @@ static void do_test(char* argv0, int argc, char** argv) { printf("HAYSTACK COUNT: %d\n", (int)mih.size()); printf("TOTAL MATCH COUNT: %d\n", (int)num_matches); printf("SECONDS: %.6lf\n", seconds); - printf("SECONDS PER MATCH: %.6lf\n", num_matches > 0 ? seconds / num_matches : 0); + printf( + "SECONDS PER MATCH: %.6lf\n", + num_matches > 0 ? seconds / num_matches : 0); printf("\n"); } From 7a8c9e135adabcf22d0128ab4672ba3ce39b6ac0 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 29 Nov 2024 21:00:21 +0000 Subject: [PATCH 07/18] use steady_clock and rerun benchmark --- pdq/cpp/bin/benchmark-mih.cpp | 12 ++++++------ pdq/cpp/index/README.md | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/pdq/cpp/bin/benchmark-mih.cpp b/pdq/cpp/bin/benchmark-mih.cpp index 3c9ed2fcc..9d580b5c7 100644 --- a/pdq/cpp/bin/benchmark-mih.cpp +++ b/pdq/cpp/bin/benchmark-mih.cpp @@ -140,11 +140,11 @@ static void do_test(char* argv0, int argc, char** argv) { facebook::pdq::index::MIH256 mih; - t1 = std::chrono::system_clock::now(); + t1 = std::chrono::steady_clock::now(); for (const auto& it : haystack) { mih.insert(it.first, it.second); } - t2 = std::chrono::system_clock::now(); + t2 = std::chrono::steady_clock::now(); elapsed_seconds_outer = t2 - t1; seconds = elapsed_seconds_outer.count(); printf("\n"); @@ -172,12 +172,12 @@ static void do_test(char* argv0, int argc, char** argv) { matches.clear(); num_matches = 0; - t1 = std::chrono::system_clock::now(); + t1 = std::chrono::steady_clock::now(); for (const auto& it : needles) { mih.bruteForceQueryAll(it.first, maxDistance, matches); } num_matches = matches.size(); - t2 = std::chrono::system_clock::now(); + t2 = std::chrono::steady_clock::now(); elapsed_seconds_outer = t2 - t1; seconds = elapsed_seconds_outer.count(); @@ -195,12 +195,12 @@ static void do_test(char* argv0, int argc, char** argv) { matches.clear(); num_matches = 0; - t1 = std::chrono::system_clock::now(); + t1 = std::chrono::steady_clock::now(); for (const auto& it : needles) { mih.queryAll(it.first, maxDistance, matches); } num_matches = matches.size(); - t2 = std::chrono::system_clock::now(); + t2 = std::chrono::steady_clock::now(); elapsed_seconds_outer = t2 - t1; seconds = elapsed_seconds_outer.count(); diff --git a/pdq/cpp/index/README.md b/pdq/cpp/index/README.md index 7269c5cf7..a8bad4038 100644 --- a/pdq/cpp/index/README.md +++ b/pdq/cpp/index/README.md @@ -33,15 +33,15 @@ BRUTE-FORCE QUERY: NEEDLE COUNT: 1000 HAYSTACK COUNT: 11000 TOTAL MATCH COUNT: 1000 -SECONDS: 0.311571 -SECONDS PER MATCH: 0.000312 +SECONDS: 0.308996 +SECONDS PER MATCH: 0.000309 MIH QUERY: NEEDLE COUNT: 1000 HAYSTACK COUNT: 11000 TOTAL MATCH COUNT: 1000 -SECONDS: 0.237358 -SECONDS PER MATCH: 0.000237 +SECONDS: 0.222451 +SECONDS PER MATCH: 0.000222 $ ./benchmark-mih --distance 48 @@ -49,15 +49,15 @@ BRUTE-FORCE QUERY: NEEDLE COUNT: 1000 HAYSTACK COUNT: 11000 TOTAL MATCH COUNT: 1000 -SECONDS: 0.310662 -SECONDS PER MATCH: 0.000311 +SECONDS: 0.309157 +SECONDS PER MATCH: 0.000309 MIH QUERY: NEEDLE COUNT: 1000 HAYSTACK COUNT: 11000 TOTAL MATCH COUNT: 1000 -SECONDS: 1.196939 -SECONDS PER MATCH: 0.001197 +SECONDS: 1.106560 +SECONDS PER MATCH: 0.001107 $ ./benchmark-mih --haystack-size 100000 --needles-size 5000 @@ -65,13 +65,13 @@ BRUTE-FORCE QUERY: NEEDLE COUNT: 5000 HAYSTACK COUNT: 105000 TOTAL MATCH COUNT: 5000 -SECONDS: 14.809405 -SECONDS PER MATCH: 0.002962 +SECONDS: 14.732608 +SECONDS PER MATCH: 0.002947 MIH QUERY: NEEDLE COUNT: 5000 HAYSTACK COUNT: 105000 TOTAL MATCH COUNT: 5000 -SECONDS: 5.878446 -SECONDS PER MATCH: 0.001176 +SECONDS: 5.529916 +SECONDS PER MATCH: 0.001106 ``` \ No newline at end of file From 9ee169332d848f48791ed9f91f6a338e992a9bdd Mon Sep 17 00:00:00 2001 From: root Date: Fri, 29 Nov 2024 21:57:08 +0000 Subject: [PATCH 08/18] big benchmark refactor --- pdq/cpp/Makefile | 6 +- pdq/cpp/bin/benchmark-mih.cpp | 216 ----------------------- pdq/cpp/bin/benchmark-query.cpp | 294 ++++++++++++++++++++++++++++++++ pdq/cpp/index/README.md | 20 +-- 4 files changed, 307 insertions(+), 229 deletions(-) delete mode 100644 pdq/cpp/bin/benchmark-mih.cpp create mode 100644 pdq/cpp/bin/benchmark-query.cpp diff --git a/pdq/cpp/Makefile b/pdq/cpp/Makefile index a2633359d..914bdcfd8 100644 --- a/pdq/cpp/Makefile +++ b/pdq/cpp/Makefile @@ -46,7 +46,7 @@ LIBSRCS=\ MAINS=\ pdq-photo-hasher \ test-mih \ - benchmark-mih \ + benchmark-query \ clusterize256 \ snowball-clusterize256 \ clusterize256x \ @@ -112,8 +112,8 @@ pdq-downsample-demo: bin/pdq-downsample-demo.cpp $(LIBSRCS) $(LIBHDRS) test-mih: bin/test-mih.cpp $(LIBSRCS) $(LIBHDRS) $(CCOPT) bin/test-mih.cpp $(LIBSRCS) -o test-mih $(LFLAGS) -benchmark-mih: bin/benchmark-mih.cpp $(LIBSRCS) $(LIBHDRS) - $(CCOPT) bin/benchmark-mih.cpp $(LIBSRCS) -o benchmark-mih $(LFLAGS) +benchmark-query: bin/benchmark-query.cpp $(LIBSRCS) $(LIBHDRS) + $(CCOPT) bin/benchmark-query.cpp $(LIBSRCS) -o benchmark-query $(LFLAGS) test-mihg: bin/test-mih.cpp $(LIBSRCS) $(LIBHDRS) $(CCDBG) bin/test-mih.cpp $(LIBSRCS) -o test-mihg $(LFLAGS) clusterize256: bin/clusterize256.cpp $(LIBSRCS) $(LIBHDRS) diff --git a/pdq/cpp/bin/benchmark-mih.cpp b/pdq/cpp/bin/benchmark-mih.cpp deleted file mode 100644 index 9d580b5c7..000000000 --- a/pdq/cpp/bin/benchmark-mih.cpp +++ /dev/null @@ -1,216 +0,0 @@ -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -// ================================================================ -// Static function declarations -static void usage(char* argv0, int rc); -static void do_test(char* argv0, int argc, char** argv); - -// Helper function to generate random hashes -static facebook::pdq::hashing::Hash256 generateRandomHash(std::mt19937& gen) { - facebook::pdq::hashing::Hash256 hash; - std::uniform_int_distribution dist(0, UINT16_MAX); - - for (int i = 0; i < facebook::pdq::hashing::HASH256_NUM_WORDS; i++) { - hash.w[i] = dist(gen); - } - return hash; -} - -// Add noise to hash by flipping random bits -static facebook::pdq::hashing::Hash256 addNoise( - const facebook::pdq::hashing::Hash256& original, - int numBitsToFlip, - std::mt19937& gen) { - facebook::pdq::hashing::Hash256 noisy = original; - std::uniform_int_distribution wordDist( - 0, facebook::pdq::hashing::HASH256_NUM_WORDS - 1); - std::uniform_int_distribution bitDist(0, 15); // Each word is 16 bits - for (int i = 0; i < numBitsToFlip; i++) { - int wordIndex = wordDist(gen); - int bitIndex = bitDist(gen); - // Flip bit with xor - noisy.w[wordIndex] ^= (1 << bitIndex); - } - return noisy; -} - -// ---------------------------------------------------------------- -int main(int argc, char** argv) { - if (argc > 1 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))) { - usage(argv[0], 0); - } else { - do_test(argv[0], argc - 1, argv + 1); - } - return 0; -} - -// ---------------------------------------------------------------- -static void usage(char* argv0, int rc) { - FILE* fp = (rc == 0) ? stdout : stderr; - fprintf(fp, "Usage: %s [options]\n", argv0); - fprintf(fp, "Options:\n"); - fprintf(fp, " -v Verbose output\n"); - fprintf(fp, " --no-timings Disable timing output\n"); - fprintf(fp, " --seed N Random seed (default: 41)\n"); - fprintf( - fp, - " --haystack-size N Number of hashes in haystack (default: 10000)\n"); - fprintf( - fp, " --needles-size N Number of needle hashes (default: 1000)\n"); - fprintf( - fp, " --distance N Maximum Hamming distance (default: 32)\n"); - exit(rc); -} - -static void do_test(char* argv0, int argc, char** argv) { - int maxDistance = 32; - bool verbose = false; - unsigned int seed = 41; - size_t haystackSize = 10000; - size_t needlesSize = 1000; - int maxBitsToFlip = maxDistance - 1; - - // Parse command line arguments - for (int i = 0; i < argc; i++) { - std::string arg = argv[i]; - if (arg == "-v") { - verbose = true; - } else if (arg == "--seed") { - if (i + 1 < argc) - seed = std::stoi(argv[++i]); - } else if (arg == "--haystack-size") { - if (i + 1 < argc) - haystackSize = std::stoi(argv[++i]); - } else if (arg == "--needles-size") { - if (i + 1 < argc) - needlesSize = std::stoi(argv[++i]); - } else if (arg == "--distance") { - maxDistance = std::stoi(argv[++i]); - } else { - usage(argv0, 1); - return; - } - } - - // Initialize random number generator - std::mt19937 gen(seed); - - // Generate random hashes for needles - std::vector> needles; - for (size_t i = 0; i < needlesSize; i++) { - auto hash = generateRandomHash(gen); - needles.push_back({hash, "needle_" + std::to_string(i)}); - } - - // Generate random hashes for haystack - std::vector> haystack; - for (size_t i = 0; i < haystackSize; i++) { - auto hash = generateRandomHash(gen); - haystack.push_back({hash, "haystack_" + std::to_string(i)}); - } - - std::uniform_int_distribution noiseDist(1, maxBitsToFlip); - for (const auto& needle : needles) { - int bitsToFlip = noiseDist(gen); - auto noisyHash = addNoise(needle.first, bitsToFlip, gen); - haystack.push_back({noisyHash, needle.second + "_noisy"}); - } - std::shuffle(haystack.begin(), haystack.end(), gen); - - // Build the MIH - std::vector> matches; - int num_matches = 0; - - std::chrono::time_point t1, t2; - std::chrono::duration elapsed_seconds_outer; - double seconds; - - facebook::pdq::index::MIH256 mih; - - t1 = std::chrono::steady_clock::now(); - for (const auto& it : haystack) { - mih.insert(it.first, it.second); - } - t2 = std::chrono::steady_clock::now(); - elapsed_seconds_outer = t2 - t1; - seconds = elapsed_seconds_outer.count(); - printf("\n"); - if (verbose) { - printf("\n"); - mih.dump(); - printf("\n"); - } - - if (verbose) { - printf("NEEDLES:\n"); - for (const auto& it : needles) { - printf("%s,%s\n", it.first.format().c_str(), it.second.c_str()); - } - printf("\n"); - - printf("ORIGINAL HAYSTACK:\n"); - for (const auto& it : haystack) { - printf("%s,%s\n", it.first.format().c_str(), it.second.c_str()); - } - printf("\n"); - } - - // Do linear searches - matches.clear(); - num_matches = 0; - - t1 = std::chrono::steady_clock::now(); - for (const auto& it : needles) { - mih.bruteForceQueryAll(it.first, maxDistance, matches); - } - num_matches = matches.size(); - t2 = std::chrono::steady_clock::now(); - elapsed_seconds_outer = t2 - t1; - seconds = elapsed_seconds_outer.count(); - - printf("BRUTE-FORCE QUERY:\n"); - printf("NEEDLE COUNT: %d\n", (int)needles.size()); - printf("HAYSTACK COUNT: %d\n", (int)mih.size()); - printf("TOTAL MATCH COUNT: %d\n", (int)num_matches); - printf("SECONDS: %.6lf\n", seconds); - printf( - "SECONDS PER MATCH: %.6lf\n", - num_matches > 0 ? seconds / num_matches : 0); - printf("\n"); - - // Do indexed searches - matches.clear(); - num_matches = 0; - - t1 = std::chrono::steady_clock::now(); - for (const auto& it : needles) { - mih.queryAll(it.first, maxDistance, matches); - } - num_matches = matches.size(); - t2 = std::chrono::steady_clock::now(); - elapsed_seconds_outer = t2 - t1; - seconds = elapsed_seconds_outer.count(); - - printf("MIH QUERY:\n"); - printf("NEEDLE COUNT: %d\n", (int)needles.size()); - printf("HAYSTACK COUNT: %d\n", (int)mih.size()); - printf("TOTAL MATCH COUNT: %d\n", (int)num_matches); - printf("SECONDS: %.6lf\n", seconds); - printf( - "SECONDS PER MATCH: %.6lf\n", - num_matches > 0 ? seconds / num_matches : 0); - printf("\n"); -} diff --git a/pdq/cpp/bin/benchmark-query.cpp b/pdq/cpp/bin/benchmark-query.cpp new file mode 100644 index 000000000..dffdf2fd3 --- /dev/null +++ b/pdq/cpp/bin/benchmark-query.cpp @@ -0,0 +1,294 @@ +#ifndef _GNU_SOURCE +#define _GNU_SOURCE +#endif + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +// ================================================================ +// Static function declarations +static void usage(char* argv0, int rc); +static void query(char* argv0, int argc, char** argv); + +// Function declarations for each query method +static void queryLinear(const int maxDistance, const bool verbose, + const unsigned int seed, const size_t indexSize, const size_t querySize, + const std::vector>& queries, + const std::vector>& index); +static void queryMIH(const int maxDistance, const bool verbose, + const unsigned int seed, const size_t indexSize, const size_t querySize, + const std::vector>& queries, + const std::vector>& index); + +// Helper declarations +static facebook::pdq::hashing::Hash256 generateRandomHash(std::mt19937& gen); +static facebook::pdq::hashing::Hash256 addNoise( + const facebook::pdq::hashing::Hash256& original, + int numBitsToFlip, + std::mt19937& gen); + +// ---------------------------------------------------------------- +int main(int argc, char** argv) { + if (argc > 1 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))) { + usage(argv[0], 0); + } else { + query(argv[0], argc - 1, argv + 1); + } + return 0; +} + +// ---------------------------------------------------------------- +static void usage(char* argv0, int rc) { + FILE* fp = (rc == 0) ? stdout : stderr; + fprintf(fp, "Usage: %s [options]\n", argv0); + fprintf(fp, "Options:\n"); + fprintf(fp, " -v Verbose output\n"); + fprintf(fp, " --seed N Random seed (default: 41)\n"); + fprintf(fp, " -q N Number of queries to run (default: 1000)\n"); + fprintf(fp, " -b N Number of PDQ hashes to query against (default: 10000)\n"); + fprintf(fp, " -d N Maximum Hamming distance for matches (default: 31)\n"); + fprintf(fp, " -m Method for querying (default: linear), Available: linear, mih\n"); + exit(rc); +} + +static void query(char* argv0, int argc, char** argv) { + int maxDistance = 31; + bool verbose = false; + unsigned int seed = 41; + size_t indexSize = 10000; + size_t querySize = 1000; + std::string method = "linear"; + + // Parse command line arguments + for (int i = 0; i < argc; i++) { + std::string arg = argv[i]; + if (arg == "-q") { + if (i + 1 < argc) { + querySize = std::stoi(argv[++i]); + } else { + fprintf(stderr, "Error: Missing argument for -q\n"); + usage(argv0, 1); + return; + } + } else if (arg == "-b") { + } else if (arg == "-b") { + if (i + 1 < argc) { + indexSize = std::stoi(argv[++i]); + } else { + fprintf(stderr, "Error: Missing argument for -b\n"); + usage(argv0, 1); + return; + } + } else if (arg == "-d") { + if (i + 1 < argc) { + maxDistance = std::stoi(argv[++i]); + } else { + fprintf(stderr, "Error: Missing argument for -d\n"); + usage(argv0, 1); + return; + } + } else if (arg == "--seed") { + if (i + 1 < argc) { + seed = std::stoi(argv[++i]); + } else { + fprintf(stderr, + "Error: Missing argument for --seed\n"); + usage(argv0, 1); + return; + } + } else if (arg == "-m") { + if (i + 1 < argc) { + std::string methodName = argv[++i]; + if (methodName == "linear" || methodName == "mih") { + method = methodName; + } else { + fprintf(stderr, "Invalid method: %s\n", methodName.c_str()); + usage(argv0, 1); + return; + } + } + } else if (arg == "-v") { + verbose = true; + } else if (arg == "-h" || arg == "--help") { + usage(argv0, 0); + return; + } else if (arg.length() > 0) { + fprintf(stderr, "Unknown argument: %s\n", arg.c_str()); + usage(argv0, 1); + return; + } + } + + // Initialize random number generator + std::mt19937 gen(seed); + + // Generate random hashes for queries + std::vector> queries; + for (size_t i = 0; i < querySize; i++) { + auto hash = generateRandomHash(gen); + queries.push_back({hash, "query_" + std::to_string(i)}); + } + + // Generate random hashes for index + std::vector> index; + for (size_t i = 0; i < indexSize - querySize; i++) { + auto hash = generateRandomHash(gen); + index.push_back({hash, "index_" + std::to_string(i)}); + } + + // Add noise to queries then insert into index + std::uniform_int_distribution noiseDist(1, maxDistance); + for (const auto& query : queries) { + int bitsToFlip = noiseDist(gen); + auto noisyHash = addNoise(query.first, bitsToFlip, gen); + index.push_back({noisyHash, "index_noisy_" + query.second}); + } + std::shuffle(index.begin(), index.end(), gen); + + if (verbose) { + printf("GENERATED QUERIES:\n"); + for (const auto& it : queries) { + printf("%s,%s\n", it.first.format().c_str(), it.second.c_str()); + } + printf("\n"); + + printf("GENERATED INDEX:\n"); + for (const auto& it : index) { + printf("%s,%s\n", it.first.format().c_str(), it.second.c_str()); + } + printf("\n"); + } + + if (method == "linear") { + queryLinear(maxDistance, verbose, seed, indexSize, querySize, queries, index); + } else if (method == "mih") { + queryMIH(maxDistance, verbose, seed, indexSize, querySize, queries, index); + } +} + +/////////////////////// +//// Query methods //// +/////////////////////// + +static void queryLinear(const int maxDistance, const bool verbose, + const unsigned int seed, const size_t indexSize, const size_t querySize, + const std::vector>& queries, + const std::vector>& index) { + + // Do linear searches + std::vector> matches; + + std::chrono::time_point t1, t2; + std::chrono::duration elapsedSeconds; + + t1 = std::chrono::steady_clock::now(); + for (const auto& it : queries) { + for (const auto& it2 : index) { + if (it.first.hammingDistance(it2.first) <= maxDistance) { + matches.push_back(it2); + } + } + } + t2 = std::chrono::steady_clock::now(); + elapsedSeconds = t2 - t1; + double seconds = elapsedSeconds.count(); + + printf("METHOD: Linear query\n"); + printf("QUERY COUNT: %d\n", (int)queries.size()); + printf("INDEX COUNT: %d\n", (int)index.size()); + printf("TOTAL MATCH COUNT: %d\n", (int)matches.size()); + printf("TOTAL QUERY SECONDS: %.6lf\n", seconds); + printf("SECONDS PER QUERY: %.6lf\n", + querySize > 0 ? seconds / querySize : 0); + printf("\n"); +} + +static void queryMIH(const int maxDistance, const bool verbose, + const unsigned int seed, const size_t indexSize, const size_t querySize, + const std::vector>& queries, + const std::vector>& index) { + + // Build the MIH + std::chrono::time_point t1, t2; + std::chrono::duration elapsedSeconds; + double indexTimeSeconds; + + facebook::pdq::index::MIH256 mih; + + t1 = std::chrono::steady_clock::now(); + for (const auto& it : index) { + mih.insert(it.first, it.second); + } + t2 = std::chrono::steady_clock::now(); + elapsedSeconds = t2 - t1; + indexTimeSeconds = elapsedSeconds.count(); + printf("\n"); + if (verbose) { + printf("\n"); + mih.dump(); + printf("\n"); + } + + // Do indexed searches + std::vector> matches; + matches.clear(); + + t1 = std::chrono::steady_clock::now(); + for (const auto& it : queries) { + mih.queryAll(it.first, maxDistance, matches); + } + t2 = std::chrono::steady_clock::now(); + elapsedSeconds = t2 - t1; + double seconds = elapsedSeconds.count(); + + printf("METHOD: Mutually-indexed hashing query\n"); + printf("INDEX BUILD SECONDS: %.6lf\n", indexTimeSeconds); + printf("QUERY COUNT: %d\n", (int)queries.size()); + printf("INDEX COUNT: %d\n", (int)mih.size()); + printf("TOTAL MATCH COUNT: %d\n", (int)matches.size()); + printf("TOTAL QUERY SECONDS: %.6lf\n", seconds); + printf("SECONDS PER QUERY: %.6lf\n", + querySize > 0 ? seconds / querySize : 0); + printf("\n"); +} + +////////////////////////// +//// Helper Functions //// +////////////////////////// + +// Generate random hash +static facebook::pdq::hashing::Hash256 generateRandomHash(std::mt19937& gen) { + facebook::pdq::hashing::Hash256 hash; + std::uniform_int_distribution dist(0, UINT16_MAX); + + for (int i = 0; i < facebook::pdq::hashing::HASH256_NUM_WORDS; i++) { + hash.w[i] = dist(gen); + } + return hash; +} + +// Add noise to hash by flipping random bits +static facebook::pdq::hashing::Hash256 addNoise( + const facebook::pdq::hashing::Hash256& original, + int numBitsToFlip, + std::mt19937& gen) { + facebook::pdq::hashing::Hash256 noisy = original; + std::uniform_int_distribution wordDist( + 0, facebook::pdq::hashing::HASH256_NUM_WORDS - 1); + std::uniform_int_distribution bitDist(0, 15); // Each word is 16 bits + for (int i = 0; i < numBitsToFlip; i++) { + int wordIndex = wordDist(gen); + int bitIndex = bitDist(gen); + // Flip bit with xor + noisy.w[wordIndex] ^= (1 << bitIndex); + } + return noisy; +} \ No newline at end of file diff --git a/pdq/cpp/index/README.md b/pdq/cpp/index/README.md index a8bad4038..68657aa3c 100644 --- a/pdq/cpp/index/README.md +++ b/pdq/cpp/index/README.md @@ -7,21 +7,21 @@ Haystack count is all hashes stored in the index ## Instructions ``` cd pdq/cpp -make bin/benchmark-mih.cpp -./benchmark-mih +make bin/benchmark-query +./benchmark-query ``` Help command: ``` -$ ./benchmark-mih -h -Usage: ./benchmark-mih [options] +$ ./benchmark-query -h +Usage: ./benchmark-query [options] Options: - -v Verbose output - --no-timings Disable timing output - --seed N Random seed (default: 41) - --haystack-size N Number of hashes in haystack (default: 10000) - --needles-size N Number of needle hashes (default: 1000) - --distance N Maximum Hamming distance (default: 32) + -v Verbose output + --seed N Random seed (default: 41) + -q N Number of queries to run (default: 1000) + -b N Number of PDQ hashes to query against (default: 10000) + -d N Maximum Hamming distance for matches (default: 31) + -m Method for querying (default: linear), Available: linear, mih ``` ## Results From 8684023e67d3e37e00678fc81da36d207941ad20 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 29 Nov 2024 22:08:02 +0000 Subject: [PATCH 09/18] rerun benchmark --- pdq/cpp/bin/benchmark-query.cpp | 1 - pdq/cpp/index/README.md | 85 +++++++++++++++++---------------- 2 files changed, 45 insertions(+), 41 deletions(-) diff --git a/pdq/cpp/bin/benchmark-query.cpp b/pdq/cpp/bin/benchmark-query.cpp index dffdf2fd3..71aa81158 100644 --- a/pdq/cpp/bin/benchmark-query.cpp +++ b/pdq/cpp/bin/benchmark-query.cpp @@ -78,7 +78,6 @@ static void query(char* argv0, int argc, char** argv) { usage(argv0, 1); return; } - } else if (arg == "-b") { } else if (arg == "-b") { if (i + 1 < argc) { indexSize = std::stoi(argv[++i]); diff --git a/pdq/cpp/index/README.md b/pdq/cpp/index/README.md index 68657aa3c..279bbeac7 100644 --- a/pdq/cpp/index/README.md +++ b/pdq/cpp/index/README.md @@ -28,50 +28,55 @@ Options: Ran on Ubuntu 24.04.1 LTS, Intel Core i7-14700KF with 20 cores, 28 threads, 64GB RAM ``` -$ ./benchmark-mih -BRUTE-FORCE QUERY: -NEEDLE COUNT: 1000 -HAYSTACK COUNT: 11000 -TOTAL MATCH COUNT: 1000 -SECONDS: 0.308996 -SECONDS PER MATCH: 0.000309 +$ ./benchmark-query -m linear +METHOD: Linear query +QUERY COUNT: 1000 +INDEX COUNT: 10000 +TOTAL MATCH COUNT: 1000 +TOTAL QUERY SECONDS: 0.258911 +SECONDS PER QUERY: 0.000259 -MIH QUERY: -NEEDLE COUNT: 1000 -HAYSTACK COUNT: 11000 -TOTAL MATCH COUNT: 1000 -SECONDS: 0.222451 -SECONDS PER MATCH: 0.000222 +$ ./benchmark-query -m mih +METHOD: Mutually-indexed hashing query +INDEX BUILD SECONDS: 0.053034 +QUERY COUNT: 1000 +INDEX COUNT: 10000 +TOTAL MATCH COUNT: 1000 +TOTAL QUERY SECONDS: 0.030150 +SECONDS PER QUERY: 0.000030 +/benchmark-query -m linear -d 63 +METHOD: Linear query +QUERY COUNT: 1000 +INDEX COUNT: 10000 +TOTAL MATCH COUNT: 1000 +TOTAL QUERY SECONDS: 0.262353 +SECONDS PER QUERY: 0.000262 -$ ./benchmark-mih --distance 48 -BRUTE-FORCE QUERY: -NEEDLE COUNT: 1000 -HAYSTACK COUNT: 11000 -TOTAL MATCH COUNT: 1000 -SECONDS: 0.309157 -SECONDS PER MATCH: 0.000309 +$ ./benchmark-query -m mih -d 63 +METHOD: Mutually-indexed hashing query +INDEX BUILD SECONDS: 0.039096 +QUERY COUNT: 1000 +INDEX COUNT: 10000 +TOTAL MATCH COUNT: 1000 +TOTAL QUERY SECONDS: 0.902643 +SECONDS PER QUERY: 0.000903 -MIH QUERY: -NEEDLE COUNT: 1000 -HAYSTACK COUNT: 11000 -TOTAL MATCH COUNT: 1000 -SECONDS: 1.106560 -SECONDS PER MATCH: 0.001107 +$ ./benchmark-query -m linear -b 50000 -q 5000 +METHOD: Linear query +QUERY COUNT: 5000 +INDEX COUNT: 50000 +TOTAL MATCH COUNT: 5000 +TOTAL QUERY SECONDS: 6.085275 +SECONDS PER QUERY: 0.001217 +$ ./benchmark-query -m mih -b 50000 -q 5000 +METHOD: Mutually-indexed hashing query +INDEX BUILD SECONDS: 0.244458 +QUERY COUNT: 5000 +INDEX COUNT: 50000 +TOTAL MATCH COUNT: 5000 +TOTAL QUERY SECONDS: 0.501590 +SECONDS PER QUERY: 0.000100 -$ ./benchmark-mih --haystack-size 100000 --needles-size 5000 -BRUTE-FORCE QUERY: -NEEDLE COUNT: 5000 -HAYSTACK COUNT: 105000 -TOTAL MATCH COUNT: 5000 -SECONDS: 14.732608 -SECONDS PER MATCH: 0.002947 - -MIH QUERY: -NEEDLE COUNT: 5000 -HAYSTACK COUNT: 105000 -TOTAL MATCH COUNT: 5000 -SECONDS: 5.529916 -SECONDS PER MATCH: 0.001106 ``` \ No newline at end of file From 48f6c66375df659b31326910e171967d867504d9 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 29 Nov 2024 22:09:54 +0000 Subject: [PATCH 10/18] clang format --- pdq/cpp/bin/benchmark-query.cpp | 82 ++++++++++++++++++++++----------- 1 file changed, 56 insertions(+), 26 deletions(-) diff --git a/pdq/cpp/bin/benchmark-query.cpp b/pdq/cpp/bin/benchmark-query.cpp index 71aa81158..a770c873f 100644 --- a/pdq/cpp/bin/benchmark-query.cpp +++ b/pdq/cpp/bin/benchmark-query.cpp @@ -19,14 +19,26 @@ static void usage(char* argv0, int rc); static void query(char* argv0, int argc, char** argv); // Function declarations for each query method -static void queryLinear(const int maxDistance, const bool verbose, - const unsigned int seed, const size_t indexSize, const size_t querySize, - const std::vector>& queries, - const std::vector>& index); -static void queryMIH(const int maxDistance, const bool verbose, - const unsigned int seed, const size_t indexSize, const size_t querySize, - const std::vector>& queries, - const std::vector>& index); +static void queryLinear( + const int maxDistance, + const bool verbose, + const unsigned int seed, + const size_t indexSize, + const size_t querySize, + const std::vector>& + queries, + const std::vector>& + index); +static void queryMIH( + const int maxDistance, + const bool verbose, + const unsigned int seed, + const size_t indexSize, + const size_t querySize, + const std::vector>& + queries, + const std::vector>& + index); // Helper declarations static facebook::pdq::hashing::Hash256 generateRandomHash(std::mt19937& gen); @@ -53,9 +65,15 @@ static void usage(char* argv0, int rc) { fprintf(fp, " -v Verbose output\n"); fprintf(fp, " --seed N Random seed (default: 41)\n"); fprintf(fp, " -q N Number of queries to run (default: 1000)\n"); - fprintf(fp, " -b N Number of PDQ hashes to query against (default: 10000)\n"); - fprintf(fp, " -d N Maximum Hamming distance for matches (default: 31)\n"); - fprintf(fp, " -m Method for querying (default: linear), Available: linear, mih\n"); + fprintf( + fp, + " -b N Number of PDQ hashes to query against (default: 10000)\n"); + fprintf( + fp, + " -d N Maximum Hamming distance for matches (default: 31)\n"); + fprintf( + fp, + " -m Method for querying (default: linear), Available: linear, mih\n"); exit(rc); } @@ -98,8 +116,7 @@ static void query(char* argv0, int argc, char** argv) { if (i + 1 < argc) { seed = std::stoi(argv[++i]); } else { - fprintf(stderr, - "Error: Missing argument for --seed\n"); + fprintf(stderr, "Error: Missing argument for --seed\n"); usage(argv0, 1); return; } @@ -167,7 +184,8 @@ static void query(char* argv0, int argc, char** argv) { } if (method == "linear") { - queryLinear(maxDistance, verbose, seed, indexSize, querySize, queries, index); + queryLinear( + maxDistance, verbose, seed, indexSize, querySize, queries, index); } else if (method == "mih") { queryMIH(maxDistance, verbose, seed, indexSize, querySize, queries, index); } @@ -177,11 +195,16 @@ static void query(char* argv0, int argc, char** argv) { //// Query methods //// /////////////////////// -static void queryLinear(const int maxDistance, const bool verbose, - const unsigned int seed, const size_t indexSize, const size_t querySize, - const std::vector>& queries, - const std::vector>& index) { - +static void queryLinear( + const int maxDistance, + const bool verbose, + const unsigned int seed, + const size_t indexSize, + const size_t querySize, + const std::vector>& + queries, + const std::vector>& + index) { // Do linear searches std::vector> matches; @@ -205,16 +228,22 @@ static void queryLinear(const int maxDistance, const bool verbose, printf("INDEX COUNT: %d\n", (int)index.size()); printf("TOTAL MATCH COUNT: %d\n", (int)matches.size()); printf("TOTAL QUERY SECONDS: %.6lf\n", seconds); - printf("SECONDS PER QUERY: %.6lf\n", + printf( + "SECONDS PER QUERY: %.6lf\n", querySize > 0 ? seconds / querySize : 0); printf("\n"); } -static void queryMIH(const int maxDistance, const bool verbose, - const unsigned int seed, const size_t indexSize, const size_t querySize, - const std::vector>& queries, - const std::vector>& index) { - +static void queryMIH( + const int maxDistance, + const bool verbose, + const unsigned int seed, + const size_t indexSize, + const size_t querySize, + const std::vector>& + queries, + const std::vector>& + index) { // Build the MIH std::chrono::time_point t1, t2; std::chrono::duration elapsedSeconds; @@ -254,7 +283,8 @@ static void queryMIH(const int maxDistance, const bool verbose, printf("INDEX COUNT: %d\n", (int)mih.size()); printf("TOTAL MATCH COUNT: %d\n", (int)matches.size()); printf("TOTAL QUERY SECONDS: %.6lf\n", seconds); - printf("SECONDS PER QUERY: %.6lf\n", + printf( + "SECONDS PER QUERY: %.6lf\n", querySize > 0 ? seconds / querySize : 0); printf("\n"); } From a63e592cc381ed7c92053ddef68e9b5ab7d0293a Mon Sep 17 00:00:00 2001 From: root Date: Tue, 3 Dec 2024 16:07:21 +0000 Subject: [PATCH 11/18] update addNoise to use exact distance --- pdq/cpp/bin/benchmark-query.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/pdq/cpp/bin/benchmark-query.cpp b/pdq/cpp/bin/benchmark-query.cpp index a770c873f..bbbfde187 100644 --- a/pdq/cpp/bin/benchmark-query.cpp +++ b/pdq/cpp/bin/benchmark-query.cpp @@ -1,7 +1,3 @@ -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif - #include #include #include @@ -310,14 +306,14 @@ static facebook::pdq::hashing::Hash256 addNoise( int numBitsToFlip, std::mt19937& gen) { facebook::pdq::hashing::Hash256 noisy = original; - std::uniform_int_distribution wordDist( - 0, facebook::pdq::hashing::HASH256_NUM_WORDS - 1); - std::uniform_int_distribution bitDist(0, 15); // Each word is 16 bits + std::vector bitIndices(256); + for (int i = 0; i < 256; i++) bitIndices[i] = i; + std::shuffle(bitIndices.begin(), bitIndices.end(), gen); for (int i = 0; i < numBitsToFlip; i++) { - int wordIndex = wordDist(gen); - int bitIndex = bitDist(gen); - // Flip bit with xor - noisy.w[wordIndex] ^= (1 << bitIndex); + int bitIndex = bitIndices[i]; + int wordIndex = bitIndex / 16; + int position = bitIndex % 16; + noisy.w[wordIndex] ^= (1 << position); } return noisy; } \ No newline at end of file From 96a608b2b12dcd4ee02965696e6d9640993548a6 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 3 Dec 2024 16:12:19 +0000 Subject: [PATCH 12/18] consider incorrect method provided --- pdq/cpp/bin/benchmark-query.cpp | 4 ++++ pdq/cpp/io/pdqio.cpp | 3 +++ pdq/data/misc-images/b.jpg | Bin 361182 -> 0 bytes 3 files changed, 7 insertions(+) delete mode 100644 pdq/data/misc-images/b.jpg diff --git a/pdq/cpp/bin/benchmark-query.cpp b/pdq/cpp/bin/benchmark-query.cpp index bbbfde187..d651b7ea4 100644 --- a/pdq/cpp/bin/benchmark-query.cpp +++ b/pdq/cpp/bin/benchmark-query.cpp @@ -184,6 +184,10 @@ static void query(char* argv0, int argc, char** argv) { maxDistance, verbose, seed, indexSize, querySize, queries, index); } else if (method == "mih") { queryMIH(maxDistance, verbose, seed, indexSize, querySize, queries, index); + } else { + fprintf(stderr, "Unknown method: %s\n", method.c_str()); + usage(argv0, 1); + return; } } diff --git a/pdq/cpp/io/pdqio.cpp b/pdq/cpp/io/pdqio.cpp index a04903fe3..edf13d9de 100644 --- a/pdq/cpp/io/pdqio.cpp +++ b/pdq/cpp/io/pdqio.cpp @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -89,7 +90,9 @@ bool pdqHash256FromFile( } CImg input; try { + std::cout << "loading " << filename << std::endl; input.load(filename); + std::cout << "finished loading " << filename << std::endl; } catch (const CImgIOException& ex) { return false; } diff --git a/pdq/data/misc-images/b.jpg b/pdq/data/misc-images/b.jpg deleted file mode 100644 index 66ad092df7cd508634dbea49cc5362df50c69da5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 361182 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�>3$tbsC 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

O>-&mlz4-e`_>uOR~n^;p*5ZK>AwNM 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�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

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

8u6HL3ghifXDB%4oxjH1sQsvQBn9uE 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 LiX&e#5kLRg Date: Fri, 13 Dec 2024 16:13:32 +0000 Subject: [PATCH 13/18] pdq utils --- pdq/cpp/Makefile | 6 ++-- pdq/cpp/bin/benchmark-query.cpp | 55 ++++----------------------------- pdq/cpp/common/pdqutils.cpp | 41 ++++++++++++++++++++++++ pdq/cpp/common/pdqutils.h | 25 +++++++++++++++ 4 files changed, 76 insertions(+), 51 deletions(-) create mode 100644 pdq/cpp/common/pdqutils.cpp create mode 100644 pdq/cpp/common/pdqutils.h diff --git a/pdq/cpp/Makefile b/pdq/cpp/Makefile index 914bdcfd8..e0918bcc7 100644 --- a/pdq/cpp/Makefile +++ b/pdq/cpp/Makefile @@ -32,7 +32,8 @@ LIBHDRS=\ io/pdqio.h \ index/mih.h \ hashing/torben.h \ - ./CImg.h + ./CImg.h \ + common/pdqutils.h LIBSRCS=\ common/pdqhashtypes.cpp \ @@ -41,7 +42,8 @@ LIBSRCS=\ hashing/pdqhashing.cpp \ downscaling/downscaling.cpp \ io/pdqio.cpp \ - hashing/torben.cpp + hashing/torben.cpp \ + common/pdqutils.cpp MAINS=\ pdq-photo-hasher \ diff --git a/pdq/cpp/bin/benchmark-query.cpp b/pdq/cpp/bin/benchmark-query.cpp index d651b7ea4..2aa96e5e1 100644 --- a/pdq/cpp/bin/benchmark-query.cpp +++ b/pdq/cpp/bin/benchmark-query.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -36,13 +37,6 @@ static void queryMIH( const std::vector>& index); -// Helper declarations -static facebook::pdq::hashing::Hash256 generateRandomHash(std::mt19937& gen); -static facebook::pdq::hashing::Hash256 addNoise( - const facebook::pdq::hashing::Hash256& original, - int numBitsToFlip, - std::mt19937& gen); - // ---------------------------------------------------------------- int main(int argc, char** argv) { if (argc > 1 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))) { @@ -145,14 +139,14 @@ static void query(char* argv0, int argc, char** argv) { // Generate random hashes for queries std::vector> queries; for (size_t i = 0; i < querySize; i++) { - auto hash = generateRandomHash(gen); + auto hash = facebook::pdq::hashing::generateRandomHash(gen); queries.push_back({hash, "query_" + std::to_string(i)}); } // Generate random hashes for index std::vector> index; for (size_t i = 0; i < indexSize - querySize; i++) { - auto hash = generateRandomHash(gen); + auto hash = facebook::pdq::hashing::generateRandomHash(gen); index.push_back({hash, "index_" + std::to_string(i)}); } @@ -160,7 +154,7 @@ static void query(char* argv0, int argc, char** argv) { std::uniform_int_distribution noiseDist(1, maxDistance); for (const auto& query : queries) { int bitsToFlip = noiseDist(gen); - auto noisyHash = addNoise(query.first, bitsToFlip, gen); + auto noisyHash = facebook::pdq::hashing::addNoise(query.first, bitsToFlip, gen); index.push_back({noisyHash, "index_noisy_" + query.second}); } std::shuffle(index.begin(), index.end(), gen); @@ -184,10 +178,6 @@ static void query(char* argv0, int argc, char** argv) { maxDistance, verbose, seed, indexSize, querySize, queries, index); } else if (method == "mih") { queryMIH(maxDistance, verbose, seed, indexSize, querySize, queries, index); - } else { - fprintf(stderr, "Unknown method: %s\n", method.c_str()); - usage(argv0, 1); - return; } } @@ -223,7 +213,7 @@ static void queryLinear( elapsedSeconds = t2 - t1; double seconds = elapsedSeconds.count(); - printf("METHOD: Linear query\n"); + printf("METHOD: Linear query\n"); // TODO: dont make people rewrite this a buncha times printf("QUERY COUNT: %d\n", (int)queries.size()); printf("INDEX COUNT: %d\n", (int)index.size()); printf("TOTAL MATCH COUNT: %d\n", (int)matches.size()); @@ -234,7 +224,7 @@ static void queryLinear( printf("\n"); } -static void queryMIH( +static void queryMIH( // TOOD: pull timing out of func / query? pull index out somehow? const int maxDistance, const bool verbose, const unsigned int seed, @@ -288,36 +278,3 @@ static void queryMIH( querySize > 0 ? seconds / querySize : 0); printf("\n"); } - -////////////////////////// -//// Helper Functions //// -////////////////////////// - -// Generate random hash -static facebook::pdq::hashing::Hash256 generateRandomHash(std::mt19937& gen) { - facebook::pdq::hashing::Hash256 hash; - std::uniform_int_distribution dist(0, UINT16_MAX); - - for (int i = 0; i < facebook::pdq::hashing::HASH256_NUM_WORDS; i++) { - hash.w[i] = dist(gen); - } - return hash; -} - -// Add noise to hash by flipping random bits -static facebook::pdq::hashing::Hash256 addNoise( - const facebook::pdq::hashing::Hash256& original, - int numBitsToFlip, - std::mt19937& gen) { - facebook::pdq::hashing::Hash256 noisy = original; - std::vector bitIndices(256); - for (int i = 0; i < 256; i++) bitIndices[i] = i; - std::shuffle(bitIndices.begin(), bitIndices.end(), gen); - for (int i = 0; i < numBitsToFlip; i++) { - int bitIndex = bitIndices[i]; - int wordIndex = bitIndex / 16; - int position = bitIndex % 16; - noisy.w[wordIndex] ^= (1 << position); - } - return noisy; -} \ No newline at end of file diff --git a/pdq/cpp/common/pdqutils.cpp b/pdq/cpp/common/pdqutils.cpp new file mode 100644 index 000000000..5ea22995d --- /dev/null +++ b/pdq/cpp/common/pdqutils.cpp @@ -0,0 +1,41 @@ +#include +#include +#include +#include + +namespace facebook { +namespace pdq { +namespace hashing { + +// Generate random hash +Hash256 generateRandomHash(std::mt19937& gen) { + Hash256 hash; + std::uniform_int_distribution dist(0, UINT16_MAX); + + for (int i = 0; i < HASH256_NUM_WORDS; i++) { + hash.w[i] = dist(gen); + } + return hash; +} + +// Add noise to hash by flipping random bits +Hash256 addNoise( + const Hash256& original, + int numBitsToFlip, + std::mt19937& gen) { + Hash256 noisy = original; + std::vector bitIndices(256); + for (int i = 0; i < 256; i++) bitIndices[i] = i; + std::shuffle(bitIndices.begin(), bitIndices.end(), gen); + for (int i = 0; i < numBitsToFlip; i++) { + int bitIndex = bitIndices[i]; + int wordIndex = bitIndex / 16; + int position = bitIndex % 16; + noisy.w[wordIndex] ^= (1 << position); + } + return noisy; +} + +} // namespace hashing +} // namespace pdq +} // namespace facebook \ No newline at end of file diff --git a/pdq/cpp/common/pdqutils.h b/pdq/cpp/common/pdqutils.h new file mode 100644 index 000000000..7e7807f7f --- /dev/null +++ b/pdq/cpp/common/pdqutils.h @@ -0,0 +1,25 @@ +#ifndef PDQ_UTILS_H +#define PDQ_UTILS_H + +#include +#include +#include + +namespace facebook { +namespace pdq { +namespace hashing { + + // Generate random hash + Hash256 generateRandomHash(std::mt19937& gen); + + // Add noise to hash by flipping random bits + Hash256 addNoise( + const Hash256& original, + int numBitsToFlip, + std::mt19937& gen); + +} // namespace hashing +} // namespace pdq +} // namespace facebook + +#endif \ No newline at end of file From 4e8a8ce4355e588e7cf6d467bedc889043fabc1f Mon Sep 17 00:00:00 2001 From: root Date: Fri, 13 Dec 2024 16:14:22 +0000 Subject: [PATCH 14/18] else fail --- pdq/cpp/bin/benchmark-query.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pdq/cpp/bin/benchmark-query.cpp b/pdq/cpp/bin/benchmark-query.cpp index 2aa96e5e1..a76430e48 100644 --- a/pdq/cpp/bin/benchmark-query.cpp +++ b/pdq/cpp/bin/benchmark-query.cpp @@ -178,6 +178,10 @@ static void query(char* argv0, int argc, char** argv) { maxDistance, verbose, seed, indexSize, querySize, queries, index); } else if (method == "mih") { queryMIH(maxDistance, verbose, seed, indexSize, querySize, queries, index); + } else { + fprintf(stderr, "Unknown method: %s\n", method.c_str()); + usage(argv0, 1); + return; } } From 0283f5fc7be3f8867b9a8d44841669dc3e3cb585 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 13 Dec 2024 16:31:03 +0000 Subject: [PATCH 15/18] timer --- pdq/cpp/bin/benchmark-query.cpp | 29 ++++++++--------------------- pdq/cpp/common/pdqutils.cpp | 18 +++++++++++++++++- pdq/cpp/common/pdqutils.h | 16 +++++++++++++--- 3 files changed, 38 insertions(+), 25 deletions(-) diff --git a/pdq/cpp/bin/benchmark-query.cpp b/pdq/cpp/bin/benchmark-query.cpp index a76430e48..d477b524e 100644 --- a/pdq/cpp/bin/benchmark-query.cpp +++ b/pdq/cpp/bin/benchmark-query.cpp @@ -6,7 +6,6 @@ #include #include -#include #include #include @@ -202,10 +201,7 @@ static void queryLinear( // Do linear searches std::vector> matches; - std::chrono::time_point t1, t2; - std::chrono::duration elapsedSeconds; - - t1 = std::chrono::steady_clock::now(); + Timer queryTimer("Linear query", verbose); for (const auto& it : queries) { for (const auto& it2 : index) { if (it.first.hammingDistance(it2.first) <= maxDistance) { @@ -213,9 +209,7 @@ static void queryLinear( } } } - t2 = std::chrono::steady_clock::now(); - elapsedSeconds = t2 - t1; - double seconds = elapsedSeconds.count(); + double seconds = queryTimer.elapsed(); printf("METHOD: Linear query\n"); // TODO: dont make people rewrite this a buncha times printf("QUERY COUNT: %d\n", (int)queries.size()); @@ -228,7 +222,7 @@ static void queryLinear( printf("\n"); } -static void queryMIH( // TOOD: pull timing out of func / query? pull index out somehow? +static void queryMIH( const int maxDistance, const bool verbose, const unsigned int seed, @@ -239,19 +233,14 @@ static void queryMIH( // TOOD: pull timing out of func / query? pull index out s const std::vector>& index) { // Build the MIH - std::chrono::time_point t1, t2; - std::chrono::duration elapsedSeconds; - double indexTimeSeconds; - facebook::pdq::index::MIH256 mih; - t1 = std::chrono::steady_clock::now(); + Timer indexTimer("Building MIH", verbose); for (const auto& it : index) { mih.insert(it.first, it.second); } - t2 = std::chrono::steady_clock::now(); - elapsedSeconds = t2 - t1; - indexTimeSeconds = elapsedSeconds.count(); + double indexTimeSeconds = indexTimer.elapsed(); + printf("\n"); if (verbose) { printf("\n"); @@ -263,13 +252,11 @@ static void queryMIH( // TOOD: pull timing out of func / query? pull index out s std::vector> matches; matches.clear(); - t1 = std::chrono::steady_clock::now(); + Timer queryTimer("MIH query", verbose); for (const auto& it : queries) { mih.queryAll(it.first, maxDistance, matches); } - t2 = std::chrono::steady_clock::now(); - elapsedSeconds = t2 - t1; - double seconds = elapsedSeconds.count(); + double seconds = queryTimer.elapsed(); printf("METHOD: Mutually-indexed hashing query\n"); printf("INDEX BUILD SECONDS: %.6lf\n", indexTimeSeconds); diff --git a/pdq/cpp/common/pdqutils.cpp b/pdq/cpp/common/pdqutils.cpp index 5ea22995d..e7a418498 100644 --- a/pdq/cpp/common/pdqutils.cpp +++ b/pdq/cpp/common/pdqutils.cpp @@ -2,6 +2,22 @@ #include #include #include +#include +#include +#include + +Timer::Timer(const std::string& context, bool printOnEnter) + : context_(context), printOnEnter_(printOnEnter), startTime_(std::chrono::steady_clock::now()) { + if (printOnEnter_) { + std::cout << context_ << "..." << std::endl; + } +} + +double Timer::elapsed() const { + auto now = std::chrono::steady_clock::now(); + std::chrono::duration elapsed = now - startTime_; + return elapsed.count(); +} namespace facebook { namespace pdq { @@ -38,4 +54,4 @@ Hash256 addNoise( } // namespace hashing } // namespace pdq -} // namespace facebook \ No newline at end of file +} // namespace facebook diff --git a/pdq/cpp/common/pdqutils.h b/pdq/cpp/common/pdqutils.h index 7e7807f7f..c5cbd9283 100644 --- a/pdq/cpp/common/pdqutils.h +++ b/pdq/cpp/common/pdqutils.h @@ -4,6 +4,18 @@ #include #include #include +#include + +class Timer { +public: + Timer(const std::string& context, bool printOnEnter = false); + double elapsed() const; + +private: + std::string context_; + bool printOnEnter_; + std::chrono::time_point startTime_; +}; namespace facebook { namespace pdq { @@ -17,9 +29,7 @@ namespace hashing { const Hash256& original, int numBitsToFlip, std::mt19937& gen); - } // namespace hashing } // namespace pdq } // namespace facebook - -#endif \ No newline at end of file +#endif From 3bf523d6d8956e7f2846d303b9790ed39b913ca3 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 13 Dec 2024 16:53:18 +0000 Subject: [PATCH 16/18] refactor benchmark output block --- pdq/cpp/bin/benchmark-query.cpp | 68 ++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 27 deletions(-) diff --git a/pdq/cpp/bin/benchmark-query.cpp b/pdq/cpp/bin/benchmark-query.cpp index d477b524e..c8a7009c9 100644 --- a/pdq/cpp/bin/benchmark-query.cpp +++ b/pdq/cpp/bin/benchmark-query.cpp @@ -10,12 +10,22 @@ #include // ================================================================ + +// Benchmark result structure +struct BenchmarkResult { + std::string method; + int queryCount; + int indexCount; + int totalMatchCount; + double totalQuerySeconds; +}; + // Static function declarations static void usage(char* argv0, int rc); static void query(char* argv0, int argc, char** argv); // Function declarations for each query method -static void queryLinear( +static BenchmarkResult queryLinear( const int maxDistance, const bool verbose, const unsigned int seed, @@ -25,7 +35,7 @@ static void queryLinear( queries, const std::vector>& index); -static void queryMIH( +static BenchmarkResult queryMIH( const int maxDistance, const bool verbose, const unsigned int seed, @@ -172,23 +182,34 @@ static void query(char* argv0, int argc, char** argv) { printf("\n"); } + BenchmarkResult result; if (method == "linear") { - queryLinear( + result = queryLinear( maxDistance, verbose, seed, indexSize, querySize, queries, index); } else if (method == "mih") { - queryMIH(maxDistance, verbose, seed, indexSize, querySize, queries, index); + result = queryMIH(maxDistance, verbose, seed, indexSize, querySize, queries, index); } else { fprintf(stderr, "Unknown method: %s\n", method.c_str()); usage(argv0, 1); return; } + + printf("METHOD: %s\n", result.method.c_str()); + printf("QUERY COUNT: %d\n", result.queryCount); + printf("INDEX COUNT: %d\n", result.indexCount); + printf("TOTAL MATCH COUNT: %d\n", result.totalMatchCount); + printf("TOTAL QUERY SECONDS: %.6lf\n", result.totalQuerySeconds); + double queriesPerSecond = + result.totalQuerySeconds > 0 ? result.queryCount / result.totalQuerySeconds : 0; + printf("QUERIES PER SECOND: %.2lf\n", queriesPerSecond); + printf("\n"); } /////////////////////// //// Query methods //// /////////////////////// -static void queryLinear( +static BenchmarkResult queryLinear( const int maxDistance, const bool verbose, const unsigned int seed, @@ -211,18 +232,16 @@ static void queryLinear( } double seconds = queryTimer.elapsed(); - printf("METHOD: Linear query\n"); // TODO: dont make people rewrite this a buncha times - printf("QUERY COUNT: %d\n", (int)queries.size()); - printf("INDEX COUNT: %d\n", (int)index.size()); - printf("TOTAL MATCH COUNT: %d\n", (int)matches.size()); - printf("TOTAL QUERY SECONDS: %.6lf\n", seconds); - printf( - "SECONDS PER QUERY: %.6lf\n", - querySize > 0 ? seconds / querySize : 0); - printf("\n"); + return { + "linear query", + static_cast(queries.size()), + static_cast(index.size()), + static_cast(matches.size()), + seconds, + }; } -static void queryMIH( +static BenchmarkResult queryMIH( const int maxDistance, const bool verbose, const unsigned int seed, @@ -235,11 +254,9 @@ static void queryMIH( // Build the MIH facebook::pdq::index::MIH256 mih; - Timer indexTimer("Building MIH", verbose); for (const auto& it : index) { mih.insert(it.first, it.second); } - double indexTimeSeconds = indexTimer.elapsed(); printf("\n"); if (verbose) { @@ -258,14 +275,11 @@ static void queryMIH( } double seconds = queryTimer.elapsed(); - printf("METHOD: Mutually-indexed hashing query\n"); - printf("INDEX BUILD SECONDS: %.6lf\n", indexTimeSeconds); - printf("QUERY COUNT: %d\n", (int)queries.size()); - printf("INDEX COUNT: %d\n", (int)mih.size()); - printf("TOTAL MATCH COUNT: %d\n", (int)matches.size()); - printf("TOTAL QUERY SECONDS: %.6lf\n", seconds); - printf( - "SECONDS PER QUERY: %.6lf\n", - querySize > 0 ? seconds / querySize : 0); - printf("\n"); + return { + "mutually-indexed hashing query", + static_cast(queries.size()), + static_cast(mih.size()), + static_cast(matches.size()), + seconds, + }; } From 04d488d70fc23ee8e4c7cc72f596a3365b2a375a Mon Sep 17 00:00:00 2001 From: root Date: Fri, 13 Dec 2024 16:55:15 +0000 Subject: [PATCH 17/18] clang format --- pdq/cpp/bin/benchmark-query.cpp | 33 ++++++++++++++++++--------------- pdq/cpp/common/pdqutils.cpp | 19 ++++++++++--------- pdq/cpp/common/pdqutils.h | 19 ++++++++----------- 3 files changed, 36 insertions(+), 35 deletions(-) diff --git a/pdq/cpp/bin/benchmark-query.cpp b/pdq/cpp/bin/benchmark-query.cpp index c8a7009c9..e460119fe 100644 --- a/pdq/cpp/bin/benchmark-query.cpp +++ b/pdq/cpp/bin/benchmark-query.cpp @@ -1,9 +1,9 @@ #include #include #include +#include #include #include -#include #include #include @@ -163,7 +163,8 @@ static void query(char* argv0, int argc, char** argv) { std::uniform_int_distribution noiseDist(1, maxDistance); for (const auto& query : queries) { int bitsToFlip = noiseDist(gen); - auto noisyHash = facebook::pdq::hashing::addNoise(query.first, bitsToFlip, gen); + auto noisyHash = + facebook::pdq::hashing::addNoise(query.first, bitsToFlip, gen); index.push_back({noisyHash, "index_noisy_" + query.second}); } std::shuffle(index.begin(), index.end(), gen); @@ -187,7 +188,8 @@ static void query(char* argv0, int argc, char** argv) { result = queryLinear( maxDistance, verbose, seed, indexSize, querySize, queries, index); } else if (method == "mih") { - result = queryMIH(maxDistance, verbose, seed, indexSize, querySize, queries, index); + result = queryMIH( + maxDistance, verbose, seed, indexSize, querySize, queries, index); } else { fprintf(stderr, "Unknown method: %s\n", method.c_str()); usage(argv0, 1); @@ -199,8 +201,9 @@ static void query(char* argv0, int argc, char** argv) { printf("INDEX COUNT: %d\n", result.indexCount); printf("TOTAL MATCH COUNT: %d\n", result.totalMatchCount); printf("TOTAL QUERY SECONDS: %.6lf\n", result.totalQuerySeconds); - double queriesPerSecond = - result.totalQuerySeconds > 0 ? result.queryCount / result.totalQuerySeconds : 0; + double queriesPerSecond = result.totalQuerySeconds > 0 + ? result.queryCount / result.totalQuerySeconds + : 0; printf("QUERIES PER SECOND: %.2lf\n", queriesPerSecond); printf("\n"); } @@ -233,11 +236,11 @@ static BenchmarkResult queryLinear( double seconds = queryTimer.elapsed(); return { - "linear query", - static_cast(queries.size()), - static_cast(index.size()), - static_cast(matches.size()), - seconds, + "linear query", + static_cast(queries.size()), + static_cast(index.size()), + static_cast(matches.size()), + seconds, }; } @@ -276,10 +279,10 @@ static BenchmarkResult queryMIH( double seconds = queryTimer.elapsed(); return { - "mutually-indexed hashing query", - static_cast(queries.size()), - static_cast(mih.size()), - static_cast(matches.size()), - seconds, + "mutually-indexed hashing query", + static_cast(queries.size()), + static_cast(mih.size()), + static_cast(matches.size()), + seconds, }; } diff --git a/pdq/cpp/common/pdqutils.cpp b/pdq/cpp/common/pdqutils.cpp index e7a418498..260b0e312 100644 --- a/pdq/cpp/common/pdqutils.cpp +++ b/pdq/cpp/common/pdqutils.cpp @@ -1,13 +1,15 @@ -#include -#include -#include #include -#include #include +#include +#include #include +#include +#include Timer::Timer(const std::string& context, bool printOnEnter) - : context_(context), printOnEnter_(printOnEnter), startTime_(std::chrono::steady_clock::now()) { + : context_(context), + printOnEnter_(printOnEnter), + startTime_(std::chrono::steady_clock::now()) { if (printOnEnter_) { std::cout << context_ << "..." << std::endl; } @@ -36,12 +38,11 @@ Hash256 generateRandomHash(std::mt19937& gen) { // Add noise to hash by flipping random bits Hash256 addNoise( - const Hash256& original, - int numBitsToFlip, - std::mt19937& gen) { + const Hash256& original, int numBitsToFlip, std::mt19937& gen) { Hash256 noisy = original; std::vector bitIndices(256); - for (int i = 0; i < 256; i++) bitIndices[i] = i; + for (int i = 0; i < 256; i++) + bitIndices[i] = i; std::shuffle(bitIndices.begin(), bitIndices.end(), gen); for (int i = 0; i < numBitsToFlip; i++) { int bitIndex = bitIndices[i]; diff --git a/pdq/cpp/common/pdqutils.h b/pdq/cpp/common/pdqutils.h index c5cbd9283..837eb2976 100644 --- a/pdq/cpp/common/pdqutils.h +++ b/pdq/cpp/common/pdqutils.h @@ -1,17 +1,17 @@ #ifndef PDQ_UTILS_H #define PDQ_UTILS_H -#include +#include #include #include -#include +#include class Timer { -public: + public: Timer(const std::string& context, bool printOnEnter = false); double elapsed() const; -private: + private: std::string context_; bool printOnEnter_; std::chrono::time_point startTime_; @@ -21,14 +21,11 @@ namespace facebook { namespace pdq { namespace hashing { - // Generate random hash - Hash256 generateRandomHash(std::mt19937& gen); +// Generate random hash +Hash256 generateRandomHash(std::mt19937& gen); - // Add noise to hash by flipping random bits - Hash256 addNoise( - const Hash256& original, - int numBitsToFlip, - std::mt19937& gen); +// Add noise to hash by flipping random bits +Hash256 addNoise(const Hash256& original, int numBitsToFlip, std::mt19937& gen); } // namespace hashing } // namespace pdq } // namespace facebook From 9dc2cd013799479aed59b2772d29962da58ceb83 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 13 Dec 2024 16:59:40 +0000 Subject: [PATCH 18/18] undo io changes --- pdq/cpp/io/pdqio.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/pdq/cpp/io/pdqio.cpp b/pdq/cpp/io/pdqio.cpp index edf13d9de..a04903fe3 100644 --- a/pdq/cpp/io/pdqio.cpp +++ b/pdq/cpp/io/pdqio.cpp @@ -6,7 +6,6 @@ #include #include -#include #include #include #include @@ -90,9 +89,7 @@ bool pdqHash256FromFile( } CImg input; try { - std::cout << "loading " << filename << std::endl; input.load(filename); - std::cout << "finished loading " << filename << std::endl; } catch (const CImgIOException& ex) { return false; }