faiss 學習
介紹
安裝
編譯
- faiss安裝
- makefile.inc的做用
- 按照教程能夠分別生成libfaiss.a與libgpufaiss.a靜態庫文件
- Centos 7.3 編譯 & 安裝 & 測試 facebook faiss
索引學習
坑
-
首先想在本地mac上編譯faiss(失敗)html
- 安裝了cuda,但mac沒有GPU
- gcc g++ 默認使用的cmake,經過設置環境變量解決
- 安裝openblas boost thrift zookeeper
- 還有一些依賴問題沒有解決
- 編譯整個項目時出現找不到頭文件的問題
-
在本地安裝thrift0.9.2(失敗)git
- 分別能夠從github與thrit官網下載包進行安裝,但都沒有安裝成功
- 使用brew install thrift能夠安裝成功,但沒法經過命令選擇0.9.2版本
- 網上能找到方法,從github上clone下來brew的thrift版本,而後git log找到0.9.2版本對應的commit id,git checkout到這個id,執行命令,會出錯
-
拉取centos7 docker鏡像(失敗)github
- 因爲生產環境中使用的是centos7,因此想拉取相同系統環境的鏡像,好處是能夠直接把線上的庫文件scp到本地
- 安裝cmake make gcc g++
- 但仍然須要安裝cuda openblas thrift boost zookeeper等等依賴
- 依賴安裝不完整,編譯項目時出現找不到頭文件問題
-
使用測試環境(經過)docker
- 好處是各類依賴已經安裝好
- 有點麻煩的是在本地clion寫好測試代碼,複製到測試機上進行編譯並執行測試
- 測試目的爲faiss不一樣版本之間的性能,因爲編譯faiss(生成靜態庫文件)須要cuda openblas等依賴,所以也在測試機上執行
- 直接將原src目錄下的makefile目錄複製,並進行修改(makefile來自nmslib項目,其中還有不少編譯選項不明白)
- 編譯好不一樣版本的faiss靜態庫文件,完成性能測試(faiss庫還有待繼續深刻學習)
-
使用測試環境(沒法使用GPU創建索引)centos
- 緣由是測試環境的機器沒有GPU,還一直在google錯誤信息,浪費時間,心塞。。。
- 查看gpu以及類型
lspci | grep -i vga; lspci |grep -i nvidia
- 查看nvidia顯卡狀態
nvidia-smi
- 查看gpu以及類型
- 緣由是測試環境的機器沒有GPU,還一直在google錯誤信息,浪費時間,心塞。。。
-
類似度post
- inner product: 越大越類似(越大夾角越小,方向越一致)
- cosine similarity: normalized vector, inner product, -1:1,越大越類似