mirror of
https://github.com/facebookresearch/faiss.git
synced 2026-10-12 02:13:36 +00:00
Enable clang-format + autofix.
Summary: Format whole codebase with clang-format. Reviewed By: mdouze Differential Revision: D22891341 fbshipit-source-id: 673032b2444d61026d1e2c3fa2c5659f178cf58b
This commit is contained in:
committed by
Facebook GitHub Bot
parent
6d51766607
commit
e86bf8cae1
+31
-34
@@ -15,90 +15,87 @@
|
||||
using idx_t = faiss::Index::idx_t;
|
||||
|
||||
int main() {
|
||||
int d = 64; // dimension
|
||||
int nb = 100000; // database size
|
||||
int nq = 10000; // nb of queries
|
||||
int d = 64; // dimension
|
||||
int nb = 100000; // database size
|
||||
int nq = 10000; // nb of queries
|
||||
|
||||
std::mt19937 rng;
|
||||
std::uniform_real_distribution<> distrib;
|
||||
|
||||
float *xb = new float[d * nb];
|
||||
float *xq = new float[d * nq];
|
||||
float* xb = new float[d * nb];
|
||||
float* xq = new float[d * nq];
|
||||
|
||||
for(int i = 0; i < nb; i++) {
|
||||
for(int j = 0; j < d; j++)
|
||||
for (int i = 0; i < nb; i++) {
|
||||
for (int j = 0; j < d; j++)
|
||||
xb[d * i + j] = distrib(rng);
|
||||
xb[d * i] += i / 1000.;
|
||||
}
|
||||
|
||||
for(int i = 0; i < nq; i++) {
|
||||
for(int j = 0; j < d; j++)
|
||||
for (int i = 0; i < nq; i++) {
|
||||
for (int j = 0; j < d; j++)
|
||||
xq[d * i + j] = distrib(rng);
|
||||
xq[d * i] += i / 1000.;
|
||||
}
|
||||
|
||||
faiss::IndexFlatL2 index(d); // call constructor
|
||||
faiss::IndexFlatL2 index(d); // call constructor
|
||||
printf("is_trained = %s\n", index.is_trained ? "true" : "false");
|
||||
index.add(nb, xb); // add vectors to the index
|
||||
index.add(nb, xb); // add vectors to the index
|
||||
printf("ntotal = %zd\n", index.ntotal);
|
||||
|
||||
int k = 4;
|
||||
|
||||
{ // sanity check: search 5 first vectors of xb
|
||||
idx_t *I = new idx_t[k * 5];
|
||||
float *D = new float[k * 5];
|
||||
{ // sanity check: search 5 first vectors of xb
|
||||
idx_t* I = new idx_t[k * 5];
|
||||
float* D = new float[k * 5];
|
||||
|
||||
index.search(5, xb, k, D, I);
|
||||
|
||||
// print results
|
||||
printf("I=\n");
|
||||
for(int i = 0; i < 5; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5zd ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
printf("D=\n");
|
||||
for(int i = 0; i < 5; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%7g ", D[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
delete [] I;
|
||||
delete [] D;
|
||||
delete[] I;
|
||||
delete[] D;
|
||||
}
|
||||
|
||||
|
||||
{ // search xq
|
||||
idx_t *I = new idx_t[k * nq];
|
||||
float *D = new float[k * nq];
|
||||
{ // search xq
|
||||
idx_t* I = new idx_t[k * nq];
|
||||
float* D = new float[k * nq];
|
||||
|
||||
index.search(nq, xq, k, D, I);
|
||||
|
||||
// print results
|
||||
printf("I (5 first results)=\n");
|
||||
for(int i = 0; i < 5; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5zd ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
printf("I (5 last results)=\n");
|
||||
for(int i = nq - 5; i < nq; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = nq - 5; i < nq; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5zd ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
delete [] I;
|
||||
delete [] D;
|
||||
delete[] I;
|
||||
delete[] D;
|
||||
}
|
||||
|
||||
|
||||
|
||||
delete [] xb;
|
||||
delete [] xq;
|
||||
delete[] xb;
|
||||
delete[] xq;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
+22
-25
@@ -5,9 +5,9 @@
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#include <cassert>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
#include <random>
|
||||
|
||||
#include <faiss/IndexFlat.h>
|
||||
@@ -16,48 +16,47 @@
|
||||
using idx_t = faiss::Index::idx_t;
|
||||
|
||||
int main() {
|
||||
int d = 64; // dimension
|
||||
int nb = 100000; // database size
|
||||
int nq = 10000; // nb of queries
|
||||
int d = 64; // dimension
|
||||
int nb = 100000; // database size
|
||||
int nq = 10000; // nb of queries
|
||||
|
||||
std::mt19937 rng;
|
||||
std::uniform_real_distribution<> distrib;
|
||||
|
||||
float *xb = new float[d * nb];
|
||||
float *xq = new float[d * nq];
|
||||
float* xb = new float[d * nb];
|
||||
float* xq = new float[d * nq];
|
||||
|
||||
for(int i = 0; i < nb; i++) {
|
||||
for(int j = 0; j < d; j++)
|
||||
for (int i = 0; i < nb; i++) {
|
||||
for (int j = 0; j < d; j++)
|
||||
xb[d * i + j] = distrib(rng);
|
||||
xb[d * i] += i / 1000.;
|
||||
}
|
||||
|
||||
for(int i = 0; i < nq; i++) {
|
||||
for(int j = 0; j < d; j++)
|
||||
for (int i = 0; i < nq; i++) {
|
||||
for (int j = 0; j < d; j++)
|
||||
xq[d * i + j] = distrib(rng);
|
||||
xq[d * i] += i / 1000.;
|
||||
}
|
||||
|
||||
|
||||
int nlist = 100;
|
||||
int k = 4;
|
||||
|
||||
faiss::IndexFlatL2 quantizer(d); // the other index
|
||||
faiss::IndexFlatL2 quantizer(d); // the other index
|
||||
faiss::IndexIVFFlat index(&quantizer, d, nlist);
|
||||
assert(!index.is_trained);
|
||||
index.train(nb, xb);
|
||||
assert(index.is_trained);
|
||||
index.add(nb, xb);
|
||||
|
||||
{ // search xq
|
||||
idx_t *I = new idx_t[k * nq];
|
||||
float *D = new float[k * nq];
|
||||
{ // search xq
|
||||
idx_t* I = new idx_t[k * nq];
|
||||
float* D = new float[k * nq];
|
||||
|
||||
index.search(nq, xq, k, D, I);
|
||||
|
||||
printf("I=\n");
|
||||
for(int i = nq - 5; i < nq; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = nq - 5; i < nq; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5zd ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
@@ -66,20 +65,18 @@ int main() {
|
||||
index.search(nq, xq, k, D, I);
|
||||
|
||||
printf("I=\n");
|
||||
for(int i = nq - 5; i < nq; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = nq - 5; i < nq; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5zd ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
delete [] I;
|
||||
delete [] D;
|
||||
delete[] I;
|
||||
delete[] D;
|
||||
}
|
||||
|
||||
|
||||
|
||||
delete [] xb;
|
||||
delete [] xq;
|
||||
delete[] xb;
|
||||
delete[] xq;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
+29
-32
@@ -15,84 +15,81 @@
|
||||
using idx_t = faiss::Index::idx_t;
|
||||
|
||||
int main() {
|
||||
int d = 64; // dimension
|
||||
int nb = 100000; // database size
|
||||
int nq = 10000; // nb of queries
|
||||
int d = 64; // dimension
|
||||
int nb = 100000; // database size
|
||||
int nq = 10000; // nb of queries
|
||||
|
||||
std::mt19937 rng;
|
||||
std::uniform_real_distribution<> distrib;
|
||||
|
||||
float *xb = new float[d * nb];
|
||||
float *xq = new float[d * nq];
|
||||
float* xb = new float[d * nb];
|
||||
float* xq = new float[d * nq];
|
||||
|
||||
for(int i = 0; i < nb; i++) {
|
||||
for(int j = 0; j < d; j++)
|
||||
for (int i = 0; i < nb; i++) {
|
||||
for (int j = 0; j < d; j++)
|
||||
xb[d * i + j] = distrib(rng);
|
||||
xb[d * i] += i / 1000.;
|
||||
}
|
||||
|
||||
for(int i = 0; i < nq; i++) {
|
||||
for(int j = 0; j < d; j++)
|
||||
for (int i = 0; i < nq; i++) {
|
||||
for (int j = 0; j < d; j++)
|
||||
xq[d * i + j] = distrib(rng);
|
||||
xq[d * i] += i / 1000.;
|
||||
}
|
||||
|
||||
|
||||
int nlist = 100;
|
||||
int k = 4;
|
||||
int m = 8; // bytes per vector
|
||||
faiss::IndexFlatL2 quantizer(d); // the other index
|
||||
int m = 8; // bytes per vector
|
||||
faiss::IndexFlatL2 quantizer(d); // the other index
|
||||
faiss::IndexIVFPQ index(&quantizer, d, nlist, m, 8);
|
||||
|
||||
index.train(nb, xb);
|
||||
index.add(nb, xb);
|
||||
|
||||
{ // sanity check
|
||||
idx_t *I = new idx_t[k * 5];
|
||||
float *D = new float[k * 5];
|
||||
{ // sanity check
|
||||
idx_t* I = new idx_t[k * 5];
|
||||
float* D = new float[k * 5];
|
||||
|
||||
index.search(5, xb, k, D, I);
|
||||
|
||||
printf("I=\n");
|
||||
for(int i = 0; i < 5; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5zd ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
printf("D=\n");
|
||||
for(int i = 0; i < 5; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%7g ", D[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
delete [] I;
|
||||
delete [] D;
|
||||
delete[] I;
|
||||
delete[] D;
|
||||
}
|
||||
|
||||
{ // search xq
|
||||
idx_t *I = new idx_t[k * nq];
|
||||
float *D = new float[k * nq];
|
||||
{ // search xq
|
||||
idx_t* I = new idx_t[k * nq];
|
||||
float* D = new float[k * nq];
|
||||
|
||||
index.nprobe = 10;
|
||||
index.search(nq, xq, k, D, I);
|
||||
|
||||
printf("I=\n");
|
||||
for(int i = nq - 5; i < nq; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = nq - 5; i < nq; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5zd ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
delete [] I;
|
||||
delete [] D;
|
||||
delete[] I;
|
||||
delete[] D;
|
||||
}
|
||||
|
||||
|
||||
|
||||
delete [] xb;
|
||||
delete [] xq;
|
||||
delete[] xb;
|
||||
delete[] xq;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
+32
-34
@@ -5,9 +5,9 @@
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#include <cassert>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cassert>
|
||||
#include <random>
|
||||
|
||||
#include <faiss/IndexFlat.h>
|
||||
@@ -15,26 +15,25 @@
|
||||
#include <faiss/gpu/GpuIndexIVFFlat.h>
|
||||
#include <faiss/gpu/StandardGpuResources.h>
|
||||
|
||||
|
||||
int main() {
|
||||
int d = 64; // dimension
|
||||
int nb = 100000; // database size
|
||||
int nq = 10000; // nb of queries
|
||||
int d = 64; // dimension
|
||||
int nb = 100000; // database size
|
||||
int nq = 10000; // nb of queries
|
||||
|
||||
std::mt19937 rng;
|
||||
std::uniform_real_distribution<> distrib;
|
||||
|
||||
float *xb = new float[d * nb];
|
||||
float *xq = new float[d * nq];
|
||||
float* xb = new float[d * nb];
|
||||
float* xq = new float[d * nq];
|
||||
|
||||
for(int i = 0; i < nb; i++) {
|
||||
for(int j = 0; j < d; j++)
|
||||
for (int i = 0; i < nb; i++) {
|
||||
for (int j = 0; j < d; j++)
|
||||
xb[d * i + j] = distrib(rng);
|
||||
xb[d * i] += i / 1000.;
|
||||
}
|
||||
|
||||
for(int i = 0; i < nq; i++) {
|
||||
for(int j = 0; j < d; j++)
|
||||
for (int i = 0; i < nq; i++) {
|
||||
for (int j = 0; j < d; j++)
|
||||
xq[d * i + j] = distrib(rng);
|
||||
xq[d * i] += i / 1000.;
|
||||
}
|
||||
@@ -46,34 +45,34 @@ int main() {
|
||||
faiss::gpu::GpuIndexFlatL2 index_flat(&res, d);
|
||||
|
||||
printf("is_trained = %s\n", index_flat.is_trained ? "true" : "false");
|
||||
index_flat.add(nb, xb); // add vectors to the index
|
||||
index_flat.add(nb, xb); // add vectors to the index
|
||||
printf("ntotal = %ld\n", index_flat.ntotal);
|
||||
|
||||
int k = 4;
|
||||
|
||||
{ // search xq
|
||||
long *I = new long[k * nq];
|
||||
float *D = new float[k * nq];
|
||||
{ // search xq
|
||||
long* I = new long[k * nq];
|
||||
float* D = new float[k * nq];
|
||||
|
||||
index_flat.search(nq, xq, k, D, I);
|
||||
|
||||
// print results
|
||||
printf("I (5 first results)=\n");
|
||||
for(int i = 0; i < 5; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5ld ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
printf("I (5 last results)=\n");
|
||||
for(int i = nq - 5; i < nq; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = nq - 5; i < nq; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5ld ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
delete [] I;
|
||||
delete [] D;
|
||||
delete[] I;
|
||||
delete[] D;
|
||||
}
|
||||
|
||||
// Using an IVF index
|
||||
@@ -84,39 +83,38 @@ int main() {
|
||||
assert(!index_ivf.is_trained);
|
||||
index_ivf.train(nb, xb);
|
||||
assert(index_ivf.is_trained);
|
||||
index_ivf.add(nb, xb); // add vectors to the index
|
||||
index_ivf.add(nb, xb); // add vectors to the index
|
||||
|
||||
printf("is_trained = %s\n", index_ivf.is_trained ? "true" : "false");
|
||||
printf("ntotal = %ld\n", index_ivf.ntotal);
|
||||
|
||||
{ // search xq
|
||||
long *I = new long[k * nq];
|
||||
float *D = new float[k * nq];
|
||||
{ // search xq
|
||||
long* I = new long[k * nq];
|
||||
float* D = new float[k * nq];
|
||||
|
||||
index_ivf.search(nq, xq, k, D, I);
|
||||
|
||||
// print results
|
||||
printf("I (5 first results)=\n");
|
||||
for(int i = 0; i < 5; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5ld ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
printf("I (5 last results)=\n");
|
||||
for(int i = nq - 5; i < nq; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = nq - 5; i < nq; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5ld ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
delete [] I;
|
||||
delete [] D;
|
||||
delete[] I;
|
||||
delete[] D;
|
||||
}
|
||||
|
||||
|
||||
delete [] xb;
|
||||
delete [] xq;
|
||||
delete[] xb;
|
||||
delete[] xq;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -16,26 +16,25 @@
|
||||
#include <faiss/gpu/StandardGpuResources.h>
|
||||
#include <faiss/gpu/utils/DeviceUtils.h>
|
||||
|
||||
|
||||
int main() {
|
||||
int d = 64; // dimension
|
||||
int nb = 100000; // database size
|
||||
int nq = 10000; // nb of queries
|
||||
int d = 64; // dimension
|
||||
int nb = 100000; // database size
|
||||
int nq = 10000; // nb of queries
|
||||
|
||||
std::mt19937 rng;
|
||||
std::uniform_real_distribution<> distrib;
|
||||
|
||||
float *xb = new float[d * nb];
|
||||
float *xq = new float[d * nq];
|
||||
float* xb = new float[d * nb];
|
||||
float* xq = new float[d * nq];
|
||||
|
||||
for(int i = 0; i < nb; i++) {
|
||||
for(int j = 0; j < d; j++)
|
||||
for (int i = 0; i < nb; i++) {
|
||||
for (int j = 0; j < d; j++)
|
||||
xb[d * i + j] = distrib(rng);
|
||||
xb[d * i] += i / 1000.;
|
||||
}
|
||||
|
||||
for(int i = 0; i < nq; i++) {
|
||||
for(int j = 0; j < d; j++)
|
||||
for (int i = 0; i < nq; i++) {
|
||||
for (int j = 0; j < d; j++)
|
||||
xq[d * i + j] = distrib(rng);
|
||||
xq[d * i] += i / 1000.;
|
||||
}
|
||||
@@ -46,59 +45,55 @@ int main() {
|
||||
|
||||
std::vector<faiss::gpu::GpuResourcesProvider*> res;
|
||||
std::vector<int> devs;
|
||||
for(int i = 0; i < ngpus; i++) {
|
||||
for (int i = 0; i < ngpus; i++) {
|
||||
res.push_back(new faiss::gpu::StandardGpuResources);
|
||||
devs.push_back(i);
|
||||
}
|
||||
|
||||
faiss::IndexFlatL2 cpu_index(d);
|
||||
|
||||
faiss::Index *gpu_index =
|
||||
faiss::gpu::index_cpu_to_gpu_multiple(
|
||||
res,
|
||||
devs,
|
||||
&cpu_index
|
||||
);
|
||||
faiss::Index* gpu_index =
|
||||
faiss::gpu::index_cpu_to_gpu_multiple(res, devs, &cpu_index);
|
||||
|
||||
printf("is_trained = %s\n", gpu_index->is_trained ? "true" : "false");
|
||||
gpu_index->add(nb, xb); // add vectors to the index
|
||||
gpu_index->add(nb, xb); // add vectors to the index
|
||||
printf("ntotal = %ld\n", gpu_index->ntotal);
|
||||
|
||||
int k = 4;
|
||||
|
||||
{ // search xq
|
||||
long *I = new long[k * nq];
|
||||
float *D = new float[k * nq];
|
||||
{ // search xq
|
||||
long* I = new long[k * nq];
|
||||
float* D = new float[k * nq];
|
||||
|
||||
gpu_index->search(nq, xq, k, D, I);
|
||||
|
||||
// print results
|
||||
printf("I (5 first results)=\n");
|
||||
for(int i = 0; i < 5; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5ld ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
printf("I (5 last results)=\n");
|
||||
for(int i = nq - 5; i < nq; i++) {
|
||||
for(int j = 0; j < k; j++)
|
||||
for (int i = nq - 5; i < nq; i++) {
|
||||
for (int j = 0; j < k; j++)
|
||||
printf("%5ld ", I[i * k + j]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
delete [] I;
|
||||
delete [] D;
|
||||
delete[] I;
|
||||
delete[] D;
|
||||
}
|
||||
|
||||
delete gpu_index;
|
||||
|
||||
for(int i = 0; i < ngpus; i++) {
|
||||
for (int i = 0; i < ngpus; i++) {
|
||||
delete res[i];
|
||||
}
|
||||
|
||||
delete [] xb;
|
||||
delete [] xq;
|
||||
delete[] xb;
|
||||
delete[] xq;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user