optimize the implemention of k-selection on faiss gpu version (#2467)

* optimize the implemention of k-selection on faiss gpu version

Signed-off-by: cmli <chengming.li@zilliz.com>

* update change log, re-classified the pr from feature to improvement

Signed-off-by: cmli <chengming.li@zilliz.com>

* update change log

Signed-off-by: cmli <chengming.li@zilliz.com>

Co-authored-by: cmli <chengming.li@zilliz.com>
pull/2528/head^2
op-hunter 2020-05-30 12:27:59 +08:00 committed by JinHai-CN
parent b39c5e7016
commit b2b787bdb0
2 changed files with 3 additions and 10 deletions

View File

@ -24,6 +24,7 @@ Please mark all change in change log and use the issue from GitHub
## Improvement ## Improvement
- \#2381 Upgrade FAISS to 1.6.3 - \#2381 Upgrade FAISS to 1.6.3
- \#2441 Improve Knowhere code coverage - \#2441 Improve Knowhere code coverage
- \#2466 optimize k-selection implemention of faiss gpu version
## Task ## Task

View File

@ -124,16 +124,8 @@ struct BlockSelect {
__device__ inline void addThreadQ(K k, V v) { __device__ inline void addThreadQ(K k, V v) {
if (Dir ? Comp::gt(k, warpKTop) : Comp::lt(k, warpKTop)) { if (Dir ? Comp::gt(k, warpKTop) : Comp::lt(k, warpKTop)) {
// Rotate right threadK[numVals] = k;
#pragma unroll threadV[numVals ++] = v;
for (int i = NumThreadQ - 1; i > 0; --i) {
threadK[i] = threadK[i - 1];
threadV[i] = threadV[i - 1];
}
threadK[0] = k;
threadV[0] = v;
++numVals;
} }
} }