mirror of https://github.com/milvus-io/milvus.git
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
parent
b39c5e7016
commit
b2b787bdb0
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue