[关闭]
@CrazyHenry 2018-05-08T16:42:03.000000Z 字数 2782 阅读 4511

faiss对比表格

hhhhfaiss


image_1ccv8kldt2egba43fbibd198o16.png-219.3kB

1.faiss exact search VS 传统exact search(CPU)

方式 测试算法 d nb xb nq xq time
faiss,无k-means,无PQ,CPU KNN(k=4) 256 100000 100000xd 1 10000xd 7ms
faiss,无k-means,无PQ,CPU KNN(k=4) 256 100w 100000xd 1 10000xd 64ms
faiss,无k-means,无PQ,CPU KNN(k=4) 256 1000w 100000xd 1 10000xd ???
faiss,无k-means,无PQ,CPU KNN(k=4) 256 1Billion 100000xd 1 10000xd ???

2.faiss k-means(CPU,with nprobe 取10%nlist)

方式 测试算法 d nb xb nq xq time nprobe
faiss,k-means,无PQ,CPU KNN(k=4) 256 100000 100000xd 1 10000xd 0ms 10
faiss,k-means,无PQ,CPU KNN(k=4) 256 100w 100000xd 1 10000xd 4ms 100
faiss,k-means,无PQ,CPU KNN(k=4) 256 1000w 100000xd 1 10000xd ???
faiss,k-means,无PQ,CPU KNN(k=4) 256 1Billion 100000xd 1 10000xd ???

3.faiss 有kmeans,有PQ(CPU,with nprobe 取10%nlist)

方式 测试算法 d nb xb nq xq time nprobe
faiss,k-means,PQ,CPU KNN(k=4) 256 100000 100000xd 1 10000xd 0ms 10
faiss,k-means,PQ,CPU KNN(k=4) 256 100w 100000xd 1 10000xd 6ms 100
faiss,k-means,PQ,CPU KNN(k=4) 256 1000w 100000xd 1 10000xd ???
faiss,k-means,PQ,CPU KNN(k=4) 256 1Billion 100000xd 1 10000xd ???

4.CPU faiss的3个基本index的add/train/search时间

方式 测试算法 d nb nq nprobe:nlist nprobe/nlist train_time add_time search_time 环境
IndexFlatL2 KNN(k=4) 256 30W(随机数) 1 - - - 91ms 17ms Intel i7-7700K CPU;Mem 32GB
IndexFlatL2 KNN(k=4) 256 100W(随机数) 1 - - - 301ms 55ms Intel i7-7700K CPU;Mem 32GB
IndexFlatL2 KNN(k=4) 256 500W(随机数) 1 - - - 1553ms 273ms Intel i7-7700K CPU;Mem 32GB
IndexIVFFlat KNN(k=4) 256 30W(随机数) 1 50:1500 3.3% 21925ms 2280ms 0ms Intel i7-7700K CPU;Mem 32GB
IndexIVFFlat KNN(k=4) 256 100W(随机数) 1 50:4096 1.2% 183331ms 18593ms 1ms Intel i7-7700K CPU;Mem 32GB
IndexIVFFlat KNN(k=4) 256 500W(随机数) 1 20:10240 0.19% 1206.6s 234.4s 1ms Intel i7-7700K CPU;Mem 32GB
IndexIVFPQ KNN(k=4) 256 30W(随机数) 1 50:1500 3.3% 25874ms 3399ms 0ms Intel i7-7700K CPU;Mem 32GB
IndexIVFPQ KNN(k=4) 256 100W(随机数) 1 50:4096 1.2% 189070ms 22520ms 0ms Intel i7-7700K CPU;Mem 32GB
IndexIVFPQ KNN(k=4) 256 500W(随机数) 1 20:10240 0.19% 1213.1s 251.6s 0ms Intel i7-7700K CPU;Mem 32GB

5.CPU占用情况:

测量在30W数据下,IndexFlatL2运行过程中,CPU的占用率:

image_1ccv88q8d1dg25us16kq1lp96kkp.png-145.3kB

6.GPU faiss的3个基本index的add/train/search时间

方式 测试算法 d nb nq nprobe:nlist nprobe/nlist train_time add_time search_time 环境
GpuIndexFlatL2 KNN(k=4) 256 30W(随机数) 1 - - - 41ms 2ms Intel i7-7700K CPU;TITAN Xp(6.1)*1;Mem 32GB
GpuIndexFlatL2 KNN(k=4) 256 100W(随机数) 1 - - - 134ms 8ms Intel i7-7700K CPU;TITAN Xp(6.1)*1;Mem 32GB
GpuIndexFlatL2 KNN(k=4) 256 500W(随机数) 1 - - - 674ms 40ms Intel i7-7700K CPU;TITAN Xp(6.1)*1;Mem 32GB
GpuIndexIVFFlat KNN(k=4) 256 30W(随机数) 1 50:1500 3.3% 1234ms 157ms 3ms Intel i7-7700K CPU;TITAN Xp(6.1)*1;Mem 32GB
GpuIndexIVFFlat KNN(k=4) 256 100W(随机数) 1 50:4096 1.2% 4430ms 729ms 4ms Intel i7-7700K CPU;TITAN Xp(6.1)*1;Mem 32GB
GpuIndexIVFFlat KNN(k=4) 256 500W(随机数) 1 20:10240 0.19% 25633ms cudaMalloc失败,默认预分配2GB,500W数据是5G Intel i7-7700K CPU;TITAN Xp(6.1)*1;Mem 32GB
GpuIndexIVFPQ,64Byte KNN(k=4) 256 30W(随机数) 1 50:1500 3.3% 22328ms 1202ms 3ms Intel i7-7700K CPU;TITAN Xp(6.1)*1;Mem 32GB
GpuIndexIVFPQ,64Byte KNN(k=4) 256 100W(随机数) 1 50:4096 1.2% 22982ms 4281ms 3ms Intel i7-7700K CPU;TITAN Xp(6.1)*1;Mem 32GB
GpuIndexIVFPQ,64Byte KNN(k=4) 256 500W(随机数) 1 20:10240 0.19% 55675ms 22900ms 4ms(nq太小,GPU的优势无法体现) Intel i7-7700K CPU;TITAN Xp(6.1)*1;Mem 32GB
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注