编译Faiss-gpu【InterMKL】C++ 按步骤操作 基本不会有问题的 python原理相同。

编译Faiss-gpu C++

基本介绍

使用Faiss版本【1.7.4】

该项目依赖于BLAS 组件 OpenBLAS 和 IntelMKL BLAS 【官方支持】

IntelMKL 会比 OpenBLAS 快的多。 【来自官方结论】

本机环境

Cuda :11.1

Cuda-Driver: 515

InterMKL: 2021.2.0

Faiss :1.7.4

注意:faiss仅适用于 CPU 的faiss-cpuconda 软件包目前可在 Linux、OSX 和 Windows 上使用。包含faiss-gpuCPU 和 GPU 索引,可在 Linux 系统上使用,适用于各种版本的 CUDA。【来自官方】

1. 安装InterMKL

使用apt安装

# 添加密钥
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null# 添加源
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list# 更新源
sudo apt update# 查找想要安装的版本 
apt list -a intel-basekit# 安装InterMKL 2021版本
apt-get install intel-basekit=2021.2.0-2883  # 配置MKL-ROOT 环境变量
export MKL_ROOT=/opt/intel/oneapi/mkl/2021.0# 配置InterMKL运行的环境变量
source /opt/intel/oneapi/setvars.sh intel64

2.执行Cmake

执行Cmake 命令,python 请将 FAISS_ENABLE_PYTHON改为ON

cmake -B build 
-DFAISS_ENABLE_GPU=ON 
-DFAISS_ENABLE_PYTHON=OFF  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/665918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

podman详解

Podman 是一个开源项目,用于开发、管理和运行容器和容器镜像。它与 Docker 非常相似,但有一些关键的不同之处。 Podman 的主要特点包括: 无守护进程:不同于 Docker,Podman 不需要运行一个永久的守护进程。这使得 Podm…

Android之命令行烧写OTA镜像(一百八十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

【Leetcode】1690. 石子游戏 VII

文章目录 题目思路代码结果 题目 题目链接 石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。 有 n 块石子排成一排。每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头,并获得与该行中剩余石头值之 和 相…

Spark context stopped while waiting for backend

目录 报错信息 解决办法 解释 报错信息 Spark context stopped while waiting for backend 翻译过来就是 :Spark上下文在等待后端时停止 解决办法 通过在yarn-site.xml中添加如下配置项,并重启yarn,程序在 “–driver-memory 600m --e…

Vue基础知识七

一 路由 1.1 生活里的路由与路由器 是为了实现多台设备上网 1.2 程序里的路由与路由器 是为了实现导航区与展示区来回切换; SPA单页面应用:就像前几章节里的项目,整个项目只有一个html文件; 案例 注意,最开始的时候…

嵌入式学习 Day18

Linux软件编程: 1.Linux: 操作系统的内核 1.管理CPU 2.管理内存 3.管理硬件设备 4.管理文件系统 5.任务调度 2.Shell: 1.保护Linux内核(用户和Linux内核不直接操作,通过操作Shell,Shell和内核交互) 2.命令解释器 3…

STM32--SPI通信协议(2)W25Q64简介

一、W25Q64简介 1、W25Qxx中的xx是不同的数字,表示了这个芯片不同的存储容量; 2、存储器分为易失性与非易失性,主要区别是存储的数据是否是掉电不丢失: 易失性存储器:SRAM、DRAM; 非易失性存储器&#xff…

用linux文件系统的链接功能实现文件缓存LRU

概述: 目前,随着家庭宽带网络、无线宽带技术,以及终端设备性能的不断发展,基于多媒体的应用越来越广泛,特别是互联网视频的应用更是成为推动这些技术发展的源动力。作为互联网视频VOD的应用,提高视频播放的流畅度是一个非常重要的指标之一。除了编解码技术,视频C…

编程笔记 html5cssjs 077 Javascript 关键字

编程笔记 html5&css&js 077 Javascript 关键字 一、关键字二、Javascript关键字注意 在计算机编程语言中,关键字(Keyword)是指那些被编程语言赋予特殊含义、具有预定义用途的保留字。这些词汇不能用作变量名、函数名或其他标识符&…

红队渗透靶机:LORD OF THE ROOT: 1.0.1

目录 信息收集 1、arp 2、nmap 3、knock 4、nikto 目录探测 1、gobuster 2、dirsearch WEB sqlmap 爆库 爆表 爆列 爆字段 hydra爆破 ssh登录 提权 信息收集 内核提权 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, ty…

参考数据集INRIA Holidays dataset

Download datasets 很贴心,MATLAB访问代码: % This function reads a siftgeo binary file % % Usage: [v, meta] = siftgeo_read (filename, maxdes) % filename the input filename % maxdes maximum number of descriptors to be loaded % (default=unlimit…

【微服务】Spring Boot集成ELK实用案例

推荐一款我一直在用国内很火的AI网站,包含GPT3.5/4.0、文心一言、通义千问、智谱AI等多个AI模型,支持PC、APP、VScode插件同步使用,点击链接跳转->ChatGPT4.0中文版 一、前言 在现代软件开发中,微服务架构已成为一种流行趋势。…

1 月 30 日算法练习-数论

唯一分解定理 唯一分解定理指的是:对于任意一个>1的正整数,都可以以唯一的一种方式分解为若干质因数的乘积。 x p 1 k 1 ⋅ p 2 k 2 ⋅ … ⋅ p m k m x p_1^{k_1} \cdot p_2^{k_2} \cdot \ldots \cdot p_m^{k_m} xp1k1​​⋅p2k2​​⋅…⋅pmkm​…

数据分析之数据预处理、分析建模、可视化

数据分析的过程通常包括数据预处理、分析建模和可视化三个主要阶段。以下是每个阶段的简要说明: 数据预处理: 数据预处理是数据分析过程中的一个重要步骤,它涉及到对原始数据进行清洗、整理、转化等操作,以便更好地进行后续的分析…

Guava cache中 LoadingCache和Cache的区别

在 Guava 缓存库中,LoadingCache 和 Cache 是两个不同的接口,它们在功能和使用方式上有一些区别。 LoadingCache: LoadingCache 是 Cache 接口的子接口,继承了 Cache 的所有方法,并添加了一些额外的方法。LoadingCache…

Kubernetes集群搭建

一、概述 Kubernetes是一个Google开源的全新的分布式容器集群管理系统,由于从第一个字母到字母s中间有8个字母,所以简称K8s。 二、准备 ip角色内存192.168.187.130master4G192.168.187.131node2G192.168.187.132node2G 小提示: 设置静态i…

前端使用vue-simple-uploader进行分片上传

目录 一、安装vue-simple-uploader 二、在vue中使用 一、安装vue-simple-uploader npm install vue-simple-uploader --save main.js初始化vue-simple-uploader import uploader from vue-simple-uploaderVue.use(uploader) common/config文件 export const ACCEPT_CONF…

信号传输中串扰的影响.

1.导线间的串扰 当导线之间发生串扰时,一根导线上的信号会影响到另一根信号线,给连接的电路造成干扰。这种现象通常发生在平行的导线之间。在设计设备的布线时,特别要注意低电平模拟信号的传输问题。附近导线对其的串扰常常是系统性能下降的主要原因。因此在布线设计时,必须…

docker容器代理上网问题解决参考

背景:折腾一个项目,奈何很多依赖来自外部服务器。 一、网上冲浪做法 1、修改docker配置文件 2、根据docker官方教程设置代理配置 3、设置端口映射 4、加载镜像时,设置网络只能走本地 奈何都没有解决容器内部代理上网问题 二、个人做法…

seq2seq编码器-解码器实现

我们在之前的文章快速上手LSTM-CSDN博客中提及了RNN的几种不同的类型,其中有同步的 many to many 的根据视频的每一帧对视频分类任务,以及异步的 many to many 文本翻译。对于这种输入和输出不等长的序列,我们采用seq2seq(sequenc…