mirror of
https://github.com/facebookresearch/faiss.git
synced 2026-10-12 02:13:36 +00:00
Parallelize compute_residuals in IndexIVFPQ (#4654)
Summary: Add OpenMP parallelization to compute_residuals function. This addresses the TODO comment about parallelization. Changes: - Add #pragma omp parallel for to residual computation loop - Use if(n > 1000) to avoid overhead for small batches - Each iteration is independent and thread-safe Pull Request resolved: https://github.com/facebookresearch/faiss/pull/4654 Reviewed By: mnorris11 Differential Revision: D86234690 Pulled By: limqiying fbshipit-source-id: 49c5ede2890d52a1d69705a72ada190df299e5d5
This commit is contained in:
committed by
meta-codesync[bot]
parent
eddea2a607
commit
79e8acb072
@@ -149,7 +149,8 @@ static std::unique_ptr<float[]> compute_residuals(
|
||||
const idx_t* list_nos) {
|
||||
size_t d = quantizer->d;
|
||||
std::unique_ptr<float[]> residuals(new float[n * d]);
|
||||
// TODO: parallelize?
|
||||
// Parallelize with OpenMP (each iteration is independent)
|
||||
#pragma omp parallel for if (n > 1000)
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
if (list_nos[i] < 0)
|
||||
memset(residuals.get() + i * d, 0, sizeof(float) * d);
|
||||
|
||||
Reference in New Issue
Block a user