错误现象:
File "/flagemb/FlagEmbedding/baai_general_embedding/finetune/eval_msmarco.py", line 119, in index
faiss_index.add(corpus_embeddings)
line 230, in replacement_add
self.add_c(n, swig_ptr(x))
File "/.conda/envs/emb/lib/python3.10/site-packages/faiss/swigfaiss_avx2.py", line 9489, in add
return _swigfaiss_avx2.IndexReplicas_add(self, n, x)
RuntimeError: Exception thrown from index 0: parallel_for failed: cudaErrorNoKernelImageForDevice: no kernel image is available for execution on the device
...
Exception thrown from index 7: parallel_for failed: cudaErrorNoKernelImageForDevice: no kernel image is available for execution on the device
尝试了几个不同的faiss版本但是没有解决问题。
解决办法
# namespace-Pt commented on Oct 24, 2023
# 官网的测评基于faiss 1.7.2 cudatoolkit=11.8。
# 可以通过如下命令安装:(至少在windows上得和下面的版本一致才行),尤其是你想运行bge的测评代码
#请用conda安装,多试几次。至少在windows上pip装不了faiss-gpu
conda install -c conda-forge faiss-gpu==1.7.2 cudatoolkit=11.8