go調(diào)用faiss服務(wù)-創(chuàng)新互聯(lián)

我們都知道,faiss是facebook開源的相似性搜索的開源項(xiàng)目,基于C++和python都有相應(yīng)的實(shí)現(xiàn),但是一直沒(méi)有g(shù)o版本,go要怎么去調(diào)用呢?可以直接通過(guò)go去調(diào)用c++的函數(shù)接口去實(shí)現(xiàn);

創(chuàng)新互聯(lián)主營(yíng)吉林網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),吉林h5重慶小程序開發(fā)搭建,吉林網(wǎng)站營(yíng)銷推廣歡迎吉林等地區(qū)企業(yè)咨詢

go調(diào)用faiss的例子可以參考這個(gè)文檔:faiss package - github.com/DataIntelligenceCrew/go-faiss - Go Packages ,我這里主要說(shuō)一下怎么通過(guò)C++源碼編譯到動(dòng)態(tài)庫(kù)供go調(diào)用的細(xì)節(jié);

首先官網(wǎng)的安裝文檔可以看這里:https://github.com/facebookresearch/faiss/blob/main/INSTALL.md

建議使用cmake編譯,按照官網(wǎng)的步驟你去編譯,當(dāng)然是會(huì)報(bào)錯(cuò)的,會(huì)需要科學(xué)計(jì)數(shù)庫(kù),這個(gè)官網(wǎng)推薦是intel的,我這里也介紹intel的mkl庫(kù)怎么安裝,intel的mkl庫(kù)還挺難找,記住我們需要安裝的是i這個(gè)東西Parallel Studio XE Runtime,在官網(wǎng)通過(guò)這個(gè)關(guān)鍵字搜索,去找到安裝方法,我這里就發(fā)出來(lái)ubuntu通過(guò)apt的安裝方法:Installing Intel? Parallel Studio XE Runtime 2020 Using APT Repository

通過(guò)添加apt源之后,我們可以安裝這個(gè)runtime庫(kù)里的任何軟件包了,直接安裝intel-mkl-runtime包就好,其他包faiss用不上, apt-get install intel-mkl-runtime

安裝好之后,這里也是個(gè)比較容易遇到問(wèn)題的地方,你在用cmake去編譯,還是會(huì)報(bào)缺少數(shù)學(xué)庫(kù),那是因?yàn)閙kl安裝的位置默認(rèn)是在/opt/intel/psxe_runtime/linux/mkl/ 下面,安裝版本不同,psxe_runtime的名字可能有不同,這時(shí)候我們運(yùn)行一下該命令:source /opt/intel/oneapi/setvars.sh intel64 ,把安裝的目錄設(shè)置到環(huán)境變量,讓cmake編譯的時(shí)候找得到mkl的依賴,當(dāng)然你也可以直接去/etc/ld.so.conf.d/ 目錄下,添加mkl安裝的動(dòng)態(tài)庫(kù)路徑,例如我安裝的動(dòng)態(tài)庫(kù)路徑/opt/intel/psxe_runtime/linux/mkl/lib/intel64_lin/ , 然后再執(zhí)行l(wèi)dconfig

安裝后數(shù)學(xué)庫(kù)之后,下一個(gè)就要安裝swig了,因?yàn)闊o(wú)論是python還是go,都需要用swig這個(gè)工具,進(jìn)行動(dòng)態(tài)庫(kù)的編譯,如果你之前用conda安裝了低版本的faiss,那你系統(tǒng)肯定有swig,安裝最新版本的時(shí)候,大概率會(huì)報(bào)不支持-doxygen參數(shù)的錯(cuò)誤,這時(shí)候,我們直接去源碼安裝最新的swig,官網(wǎng)地址:GitHub - swig/swig: SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.

按照官網(wǎng)安裝說(shuō)明編譯安裝即可,記得選最新的release tag安裝,如果使用configure方式安裝,記得安裝好所有的autoconf,autotools的那一系列工具,然后通過(guò)項(xiàng)目的autogen.sh腳本生成configure進(jìn)行預(yù)編譯。

安裝完swig之后,我們就可以繼續(xù)編譯faiss的接口了,如果之前機(jī)器上有swig,那編譯的時(shí)候一定要帶上新安裝的swig庫(kù)地址,所以最后的編譯參數(shù)是:

cmake -B ./ -DFAISS_ENABLE_GPU=OFF -DFAISS_ENABLE_C_API=ON -DBUILD_SHARED_LIBS=ON -DSWIG_DIR=/usr/local/share/swig/4.1.0 -DSWIG_EXECUTABLE=/usr/local/bin/swig

make && make install之后,libfaiss_c.so默認(rèn)會(huì)安裝到/usr/local/lib/ 目錄里面,如果你的默認(rèn)庫(kù)目錄沒(méi)有這個(gè)目錄,記得通過(guò)ldconfig配置一下,或者直接在/usr/lib下設(shè)一個(gè)軟鏈。

所有安裝完成,,按照例子go get一下go-faiss這個(gè)項(xiàng)目安裝go調(diào)用c++的庫(kù),最后可以直接參照go-faiss項(xiàng)目的例子進(jìn)行faiss測(cè)試了

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁(yè)名稱:go調(diào)用faiss服務(wù)-創(chuàng)新互聯(lián)
文章位置:http://bm7419.com/article4/hdgoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、品牌網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、電子商務(wù)、網(wǎng)站維護(hù)、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名