"vscode:/vscode.git/clone" did not exist on "9b2f39ba203030dbd66eb988fa4352fed4c74d1c"
README.md 3.4 KB
Newer Older
zhanggzh's avatar
zhanggzh committed
1
2
3
4
--------------------------------------------------------------------------------

## Faiss简介

zhanggzh's avatar
zhanggzh committed
5
Faiss 是一个用于高效相似性搜索和密集向量聚类的库。它提供了在各种规模的向量集合中进行搜索的算法,包括那些可能无法完全适应 RAM 的大型集合。除了搜索功能,Faiss 还包含用于评估和参数调优的支持代码
zhanggzh's avatar
zhanggzh committed
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

## 版本约束

1. 暂不支持的官方版本或功能

   **更高版本**:暂不支持faiss1.7.2以上版本

2. faiss软件版本配套关系

   | faiss版本 | DCU适配版faiss软件包版本                 | DCU加速卡型号              | DTK版本 |
   | ----------- | ------------------------------------------ | -------------------------- | ------- |
   | 1.7.2       | 1.7.2+das.dtk24042                         | Z100、Z100L、K100、K100_AI | 24.04.2 |
   
## 前置条件

使用 DAS PyTorch需要参考[《DCU新手入门教程》](https://developer.hpccube.com/gitbook/dcu_tutorial/index.html)在主机系统安装以下组件:

- DCU驱动程序
- DTK
- Docker引擎

zhanggzh's avatar
zhanggzh committed
27
28
29
30
31
32
33
## 安装
组件支持
+ Python 3.7、3.8、3.9、3.10

### 1、使用pip方式安装
mmcv whl包下载目录:[http://10.6.10.68:8000/debug/faiss/dtk-24.04.1/](http://10.6.10.68:8000/debug/faiss/dtk-24.04.1/),选择对应的pytorch版本和python版本下载对应faiss的whl包
```shell
zhanggzh's avatar
zhanggzh committed
34
pip install faiss* (下载的faiss的whl包)
huchen's avatar
huchen committed
35
```
zhanggzh's avatar
zhanggzh committed
36
37
38
39
40
41
### 2、使用源码编译方式安装
基于光源pytorch基础镜像环境:镜像下载地址:[https://sourcefind.cn/#/image/dcu/pytorch](https://sourcefind.cn/#/image/dcu/pytorch),根据pytorch、python、dtk及系统下载对应的镜像版本。
#### 源码编译安装
- 代码下载
```shell
git clone http://10.6.10.68/dcutoolkit/deeplearing/faiss.git # 根据编译需要切换分支
huchen's avatar
huchen committed
42
```
zhanggzh's avatar
zhanggzh committed
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
- 提供2种源码编译方式(进入faiss目录):
```
1. 编译whl包并安装
pip3 install wheel 
pip3 install pytest  
mkdir -p build
cd build
source /opt/dtk/env.sh
export BUILD_DIR=`pwd`
export LD_LIBRARY_PATH=${BUILD_DIR}/faiss/gpu/test/:${BUILD_DIR}/faiss/:${BUILD_DIR}/lib/:$LD_LIBRARY_PATH
CXX=hipcc CC=hipcc  cmake -DFAISS_ENABLE_GPU=ON -DBUILD_SHARED_LIBS=ON -DFAISS_OPT_LEVEL=avx -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_MODULE_PATH="${ROCM_PATH}/hip/cmake"  -DCMAKE_INSTALL_PREFIX=${BUILD_DIR}/install  -DMKL_LIBRARIES=/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin/libmkl_rt.so ..
make 
cd faiss/python
python3 setup.py bdist_wheel
cd dist  
pip3 install faiss-* --no-deps  --force
zhanggzh's avatar
zhanggzh committed
59
60
61
62
63
64
65
66
67
68
69
70
2. 源码编译安装
mkdir -p build
cd build
source /opt/dtk/env.sh
export BUILD_DIR=`pwd`
export LD_LIBRARY_PATH=${BUILD_DIR}/faiss/gpu/test/:${BUILD_DIR}/faiss/:${BUILD_DIR}/lib/:$LD_LIBRARY_PATH
CXX=hipcc CC=hipcc  cmake -DFAISS_ENABLE_GPU=ON -DBUILD_SHARED_LIBS=ON -DFAISS_OPT_LEVEL=avx -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_MODULE_PATH="${ROCM_PATH}/hip/cmake"  -DCMAKE_INSTALL_PREFIX=${BUILD_DIR}/install  -DMKL_LIBRARIES=/opt/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin/libmkl_rt.so ..
make && make install 
```

## 验证

zhanggzh's avatar
zhanggzh committed
71
验证安装:
zhanggzh's avatar
zhanggzh committed
72
73

```
zhanggzh's avatar
zhanggzh committed
74
75
76
77
78
79
80
81
82
83
python3
Python 3.10.12 (main, May 26 2024, 00:14:02) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import faiss
>>> faiss.__version__
'1.7.2'
>>> faiss.__dcu_version__
'1.7.2+das.dtk24041'
>>>
```
zhanggzh's avatar
zhanggzh committed
84

zhanggzh's avatar
zhanggzh committed
85
## 单测
zhanggzh's avatar
zhanggzh committed
86

zhanggzh's avatar
zhanggzh committed
87
88
89
90
91
92
```
cd faiss/tests
pytest -vs
cd faiss/build
ctest
```
zhanggzh's avatar
zhanggzh committed
93

zhanggzh's avatar
zhanggzh committed
94
95
## Known Issue
-