Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
milvus
milvus
提交
dbf9de9a
M
milvus
项目概览
milvus
/
milvus
10 个月 前同步成功
通知
260
Star
22476
Fork
2472
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
dbf9de9a
编写于
4月 30, 2019
作者:
G
groot
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refine
Former-commit-id: 46e81a09c49f06c6b80bedfb90c2767bb54ec5f7
上级
aa591114
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
137 addition
and
82 deletion
+137
-82
cpp/test_client/main.cpp
cpp/test_client/main.cpp
+6
-0
cpp/test_client/src/ClientTest.cpp
cpp/test_client/src/ClientTest.cpp
+51
-34
cpp/test_client/src/ClientTest.h
cpp/test_client/src/ClientTest.h
+20
-0
cpp/test_client/src/FaissTest.cpp
cpp/test_client/src/FaissTest.cpp
+48
-40
cpp/test_client/src/FaissTest.h
cpp/test_client/src/FaissTest.h
+12
-8
未找到文件。
cpp/test_client/main.cpp
浏览文件 @
dbf9de9a
...
...
@@ -14,6 +14,7 @@
#include "src/FaissTest.h"
#include "src/Log.h"
#include "src/ClientTest.h"
#include "server/ServerConfig.h"
INITIALIZE_EASYLOGGINGPP
...
...
@@ -63,8 +64,13 @@ main(int argc, char *argv[]) {
CLIENT_LOG_INFO
<<
"Load config file:"
<<
config_filename
;
#if 1
::
testing
::
InitGoogleTest
(
&
argc
,
argv
);
return
RUN_ALL_TESTS
();
#else
zilliz
::
vecwise
::
client
::
ClientTest
::
LoopTest
();
return
0
;
#endif
}
void
...
...
cpp/test_client/src/ClientTest.cpp
浏览文件 @
dbf9de9a
...
...
@@ -3,6 +3,9 @@
// Unauthorized copying of this file, via any medium is strictly prohibited.
// Proprietary and confidential.
////////////////////////////////////////////////////////////////////////////////
#include "ClientTest.h"
#include <gtest/gtest.h>
#include "utils/TimeRecorder.h"
#include "utils/AttributeSerializer.h"
...
...
@@ -14,6 +17,7 @@
using
namespace
zilliz
;
using
namespace
zilliz
::
vecwise
;
using
namespace
zilliz
::
vecwise
::
client
;
namespace
{
static
const
int32_t
VEC_DIMENSION
=
256
;
...
...
@@ -62,6 +66,52 @@ namespace {
static
std
::
string
s_id
(
CurrentTime
());
return
s_id
;
}
void
BuildVectors
(
int64_t
from
,
int64_t
to
,
VecTensorList
&
tensor_list
,
VecBinaryTensorList
&
bin_tensor_list
)
{
if
(
to
<=
from
)
{
return
;
}
int64_t
count
=
to
-
from
;
server
::
TimeRecorder
rc
(
std
::
to_string
(
count
)
+
" vectors built"
);
for
(
int64_t
k
=
from
;
k
<
count
;
k
++
)
{
VecTensor
tensor
;
tensor
.
tensor
.
reserve
(
VEC_DIMENSION
);
VecBinaryTensor
bin_tensor
;
bin_tensor
.
tensor
.
resize
(
VEC_DIMENSION
*
sizeof
(
double
));
double
*
d_p
=
(
double
*
)
(
const_cast
<
char
*>
(
bin_tensor
.
tensor
.
data
()));
for
(
int32_t
i
=
0
;
i
<
VEC_DIMENSION
;
i
++
)
{
double
val
=
(
double
)
(
i
+
k
);
tensor
.
tensor
.
push_back
(
val
);
d_p
[
i
]
=
val
;
}
server
::
AttribMap
attrib_map
;
attrib_map
[
TEST_ATTRIB_NUM
]
=
"No."
+
std
::
to_string
(
k
);
tensor
.
uid
=
"normal_vec_"
+
std
::
to_string
(
k
);
attrib_map
[
TEST_ATTRIB_COMMENT
]
=
tensor
.
uid
;
tensor
.
__set_attrib
(
attrib_map
);
tensor_list
.
tensor_list
.
emplace_back
(
tensor
);
bin_tensor
.
uid
=
"binary_vec_"
+
std
::
to_string
(
k
);
attrib_map
[
TEST_ATTRIB_COMMENT
]
=
bin_tensor
.
uid
;
bin_tensor
.
__set_attrib
(
attrib_map
);
bin_tensor_list
.
tensor_list
.
emplace_back
(
bin_tensor
);
if
((
k
+
1
)
%
10000
==
0
)
{
CLIENT_LOG_INFO
<<
k
+
1
<<
" vectors built"
;
}
}
rc
.
Elapse
(
"done"
);
}
}
void
ClientTest
::
LoopTest
()
{
}
TEST
(
AddVector
,
CLIENT_TEST
)
{
...
...
@@ -83,40 +133,7 @@ TEST(AddVector, CLIENT_TEST) {
const
int64_t
count
=
100000
;
VecTensorList
tensor_list
;
VecBinaryTensorList
bin_tensor_list
;
{
server
::
TimeRecorder
rc
(
std
::
to_string
(
count
)
+
" vectors built"
);
for
(
int64_t
k
=
0
;
k
<
count
;
k
++
)
{
VecTensor
tensor
;
tensor
.
tensor
.
reserve
(
VEC_DIMENSION
);
VecBinaryTensor
bin_tensor
;
bin_tensor
.
tensor
.
resize
(
VEC_DIMENSION
*
sizeof
(
double
));
double
*
d_p
=
(
double
*
)
(
const_cast
<
char
*>
(
bin_tensor
.
tensor
.
data
()));
for
(
int32_t
i
=
0
;
i
<
VEC_DIMENSION
;
i
++
)
{
double
val
=
(
double
)
(
i
+
k
);
tensor
.
tensor
.
push_back
(
val
);
d_p
[
i
]
=
val
;
}
server
::
AttribMap
attrib_map
;
attrib_map
[
TEST_ATTRIB_NUM
]
=
"No."
+
std
::
to_string
(
k
);
tensor
.
uid
=
"normal_vec_"
+
std
::
to_string
(
k
);
attrib_map
[
TEST_ATTRIB_COMMENT
]
=
tensor
.
uid
;
tensor
.
__set_attrib
(
attrib_map
);
tensor_list
.
tensor_list
.
emplace_back
(
tensor
);
bin_tensor
.
uid
=
"binary_vec_"
+
std
::
to_string
(
k
);
attrib_map
[
TEST_ATTRIB_COMMENT
]
=
bin_tensor
.
uid
;
bin_tensor
.
__set_attrib
(
attrib_map
);
bin_tensor_list
.
tensor_list
.
emplace_back
(
bin_tensor
);
if
((
k
+
1
)
%
10000
==
0
)
{
CLIENT_LOG_INFO
<<
k
+
1
<<
" vectors built"
;
}
}
rc
.
Elapse
(
"done"
);
}
BuildVectors
(
0
,
count
,
tensor_list
,
bin_tensor_list
);
// //add vectors one by one
// {
...
...
cpp/test_client/src/ClientTest.h
0 → 100644
浏览文件 @
dbf9de9a
/*******************************************************************************
* Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved
* Unauthorized copying of this file, via any medium is strictly prohibited.
* Proprietary and confidential.
******************************************************************************/
#pragma once
namespace
zilliz
{
namespace
vecwise
{
namespace
client
{
class
ClientTest
{
public:
static
void
LoopTest
();
};
}
}
}
cpp/test_client/src/FaissTest.cpp
浏览文件 @
dbf9de9a
//
// Created by yhmo on 19-4-17.
//
/*******************************************************************************
* Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved
* Unauthorized copying of this file, via any medium is strictly prohibited.
* Proprietary and confidential.
******************************************************************************/
#include "FaissTest.h"
#include "utils/TimeRecorder.h"
...
...
@@ -16,6 +17,9 @@
#include <assert.h>
namespace
zilliz
{
namespace
vecwise
{
namespace
client
{
namespace
{
void
test_flat
()
{
zilliz
::
vecwise
::
server
::
TimeRecorder
recorder
(
"test_flat"
);
...
...
@@ -27,14 +31,14 @@ namespace {
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
]
=
drand48
();
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
]
=
drand48
();
xq
[
d
*
i
]
+=
i
/
1000.
;
}
...
...
@@ -61,21 +65,21 @@ namespace {
// 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
(
"%5ld "
,
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
;
}
recorder
.
Record
(
"search top 4"
);
...
...
@@ -88,27 +92,27 @@ namespace {
// 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
;
}
recorder
.
Record
(
"search xq"
);
delete
[]
xb
;
delete
[]
xq
;
delete
[]
xb
;
delete
[]
xq
;
recorder
.
Record
(
"delete data"
);
}
...
...
@@ -123,14 +127,14 @@ namespace {
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
]
=
drand48
();
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
]
=
drand48
();
xq
[
d
*
i
]
+=
i
/
1000.
;
}
...
...
@@ -161,21 +165,21 @@ namespace {
// 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
;
}
recorder
.
Record
(
"search top 4"
);
...
...
@@ -209,27 +213,27 @@ namespace {
// 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
;
}
recorder
.
Record
(
"search xq"
);
delete
[]
xb
;
delete
[]
xq
;
delete
[]
xb
;
delete
[]
xq
;
recorder
.
Record
(
"delete data"
);
}
...
...
@@ -243,4 +247,8 @@ void FaissTest::test() {
test_flat
();
test_gpu
();
}
}
}
}
\ No newline at end of file
cpp/test_client/src/FaissTest.h
浏览文件 @
dbf9de9a
/
/
// Created by yhmo on 19-4-17.
//
#ifndef VECWISE_ENGINE_FAISSTEST_H
#
define VECWISE_ENGINE_FAISSTEST_H
/
*******************************************************************************
* Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved
* Unauthorized copying of this file, via any medium is strictly prohibited.
* Proprietary and confidential.
******************************************************************************/
#
pragma once
namespace
zilliz
{
namespace
vecwise
{
namespace
client
{
class
FaissTest
{
public:
static
void
test
();
};
#endif //VECWISE_ENGINE_FAISSTEST_H
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录