当前位置: 首页 > news >正文

Faiss assertion ‘err == cudaSuccess‘ failed in void faiss::gpu:runL2Norm()

Faiss assertion ‘err == cudaSuccess’ failed in void faiss::gpu:runL2Norm(). details:CUA error 209 no kernel image is available for execution on the device

本人使用的ubuntu 22.04系统,conda的环境。使用pip安装faiss-gpu出现的问题。

pip install faiss-gpu==1.80

错误原因:依然怀疑是conda安装的cuda版本和本机器安装的cuda版本不一致,在github上也查看到了解决类似的issue方法,调至版本一致。
在这里插入图片描述
但是没有成功。

后面仔细查看了错误原因有:details:CUA error 209 no kernel image is available for execution on the device。仔细查看了一下愿意是显卡过于落后计算能力不行,显卡是1080。在Nvidia官网中查到:
在这里插入图片描述因此使用的pip 安装的可能compute capability过于高。因此需要按照源码重新编译一下库faiss。参考:
https://github.com/facebookresearch/faiss/blob/main/INSTALL.md
对于其中的编译,如果你用的是conda 可以使用下面方式编译,因为我的是1080,参考

cmake -B build . -DCUDAToolkit_ROOT=/usr/local/cuda/ -DFAISS_ENABLE_GPU=ON -DPython_EXECUTABLE=/home/xxx/anaconda3/envs/xxx/python -DCMAKE_CUDA_FLAGS="-gencode arch=compute_61,code=sm_61"
make -C build -j16
cd build/faiss/python/ 
python setup.py install
#注意修改成 自己的 cuda 和 python解释器,arch=compute_61,code=sm_61,如果你的是其它显卡版本,可以换成你的显卡版本,(我的是61)。

编译如果遇到问题:undifined SWIGTYPE_p_unsigned_long_long问题。那需要找到文件:swigfaiss.swig。改变一下:

在这里插入图片描述
将原来的64改成32,这样你使用SWIGWORDSIZE64会返回:SWIGTYPE_p_unsigned_long_long

这样编译成功。解决上述问题。

相关文章:

  • LangChain开发【NL2SQL】应用
  • Web前端管理系统项目:深度解析与实现之道
  • ROS使用手柄/cmd_vel无输出
  • 【Anaconda】 anaconda常用命令总结
  • 德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第六周) - 预训练模型
  • Golang 避坑指南
  • 鸿蒙轻内核M核源码分析系列七 动态内存Dynamic Memory
  • 【算法篇】滑动窗口的最大值JavaScript版
  • @并行计算和分布式计算解决方案
  • uniapp使用webview内嵌H5的注意事项
  • 渗透测试之内核安全系列课程:Rootkit技术初探(一)
  • 朗思RPA,一款无需代码的自动化效率神器
  • 大数据之Hadoop的特点是什么?有什么优缺点?有哪些发行版本?
  • WDF驱动开发-电源策略(三)
  • 软件测试--Mysql快速入门
  • 芒果YOLOv10改进38:写作篇:一文了解YOLOv10如何打印FPS指标
  • 【C++进阶】深入STL之 栈与队列:数据结构探索之旅
  • 装箱和拆箱
  • Hbase布隆过滤器
  • 零拷贝技术
  • 人民日报头版头条:青春为中国式现代化挺膺担当
  • 网红“丢那猩”丢石块闯祸,起哄游客难逃责任
  • 魔都眼|西岸国际咖啡生活节:连接艺术、音乐与宠物
  • 2025财政观察①长三角罚没收入增速放缓,24城仍在上涨
  • 湖北鄂城:相继4所小学有学生腹泻呕吐,供餐企业负责人已被采取强制措施
  • 何立峰出席驻沪中央金融机构支持上海建设国际金融中心座谈会并讲话