Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >接入 NVIDIA A100、吞吐量提高 10 倍!Milvus GPU 版本使用指南

接入 NVIDIA A100、吞吐量提高 10 倍!Milvus GPU 版本使用指南

作者头像
Zilliz RDS
发布于 2023-09-09 02:13:03
发布于 2023-09-09 02:13:03
1.9K00
代码可运行
举报
运行总次数:0
代码可运行
Milvus 2.3 正式支持 NVIDIA A100!

作为为数不多的支持 GPU 的向量数据库产品,Milvus 2.3 在吞吐量和低延迟方面都带来了显著的变化,尤其是与此前的 CPU 版本相比,不仅吞吐量提高了 10 倍,还能将延迟控制在极低的水准

不过,正如我前面提到的,鲜有向量数据库支持 GPU,这其中除了有技术门槛较高的因素外,还涉及诸多不确定性的问题。那么,Milvus 为什么要做一件充满挑战的事情?

回想 Milvus 决定支持 GPU 的场景,很多细节仍旧历历在目。当时,随着 LLM 的兴起,用户对于向量数据库的性能提出了更高的要求,尤其是在一些对性能、延迟有着极高要求的场景,只通过 CPU 索引来支撑的难度越来越高,而 GPU 有着非常强大的并行处理能力。

因此,我们决定在 Milvus 2.3 版本中支持 GPU。幸运的是,来自 NVIDIA 的小伙伴给予了我们诸多支持,他们主动给我们提供了Rapid Raft GPU 索引接入 Milvus 的支持代码。在 NVIDIA 和 Milvus 团队的共同努力下,Milvus GPU 版本如约而至。

接下来,我们就来看看如何使用 Milvus GPU 版本。

01.

CUDA 驱动安装

首先,在我们的宿主机环境中,需要检查系统中是否已经正确的识别 NVIDIA 显卡,在命令行中输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lspci

在输出的设备中,看到 NVIDIA 字段,则说明该系统中已经安装了 NVIDIA 显卡。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma]
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.3 Non-VGA unclassified device: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:03.0 VGA compatible controller: Amazon.com, Inc. Device 1111
00:04.0 Non-Volatile memory controller: Amazon.com, Inc. Device 8061
00:05.0 Ethernet controller: Amazon.com, Inc. Elastic Network Adapter (ENA)
00:1e.0 3D controller: NVIDIA Corporation TU104GL [Tesla T4] (rev a1)
00:1f.0 Non-Volatile memory controller: Amazon.com, Inc. NVMe SSD Controller

以上是我的环境中的输出,可以看到其中识别到一张 NVIDIA T4 显卡。

接下来,可以去 NVIDIA 官方网站,添加 repo installer。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://developer.nvidia.com/cuda-downloads

以 ubuntu 20.04 为例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update

这里需要注意,如果宿主机没有 cuda 的需要,可以不安装 cuda;如果是 server 版本的操作系统,可以安装 headless 版本驱动;如果是 desktop 版本的系统,可以安装普通版本。

  • server
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt install nvidia-headless-535
sudo apt install nvidia-utils-535
  • desktop
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt install nvidia-driver-535
sudo apt install nvidia-utils-535

安装完成之后,需要重启一下系统,使得驱动生效。重启完成,可以输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nvidia-smi

如果可以看到详细的显卡状态,即表示驱动安装 OK。

Milvus GPU 版本镜像使用 cuda 11.8 打包,如果是 NVIDIA Tesla 系列专业显卡,需要的最小驱动版本>=450.80.02;如果是游戏显卡,需要驱动版本>=520.61.05。

Milvus GPU 镜像支持 Compute Capability 为 6.1、7.0、7.5、8.0 的 NVIDIA 显卡,查看显卡型号对应的Compute Capability,请参阅 https://developer.nvidia.com/cuda-gpus。NVIDIA Container Toolkit 安装则参考 https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

02.

Milvus GPU 可配环境变量

Milvus GPU 版本目前仅支持单个 Milvus 进程单个显卡,Milvus GPU 版本默认使用 device 0 显卡。如果需要使用多卡,可以通过启动多个 Milvus 进程或者容器,然后配合 CUDA_VISIBLE_DEVICES 环境变量来实现多卡部署。

容器环境下,可以通过 -e 来设置该环境变量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo docker run --rm -e NVIDIA_VISIBLE_DEVICES=3 milvusdb/milvus:v2.3.0-gpu-beta

在 docker-compose 环境中,可以通过 device_ids 字段来设置,参考 https://docs.docker.com/compose/gpu-support/

注意,为单个 Milvus 进程或者单个容器配置了多张卡可见,Milvus 也只能使用其中的一张卡。

KNOWHERE_STREAMS_PER_GPU 环境变量可以用来设置 cuda stream 的并发数。适当的调大此参数,有可能获得更好的性能,但是,也会带来更多的显存开销。

KNOWHERE_GPU_MEM_POOL_SIZE 环境变量可以用来设置显存池大小。如果不设置改环境变量,Milvus 会自动分配当前 GPU 的一半内存作为显存池,如果在服务的过程中,出现显存池容量不足,那么 Milvus 会自动尝试再次增加显存池大小,默认上限是整个显存大小。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export KNOWHERE_GPU_MEM_POOL_SIZE=2048;4096

以上设置显存池初始大小为 2048 MB,最大显存池大小为 4096 MB。

如果在一张卡上部署 2 个 Milvus进程,那么,此环境变量一定需要合理的分配,否则 Milvus 会出现显存竞争崩溃的情况。

03.

Milvus GPU 编译

本地编译 Milvus GPU 版本需要依赖英伟达提供的 cuda-toolkit,在安装 cuda-toolkit 请先完成 NVIDIA 驱动的安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt install --no-install-recommends cuda-toolkit 

本地编译 Milvus GPU 之前,我们需要先安装部分依赖软件以及工具:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt install python3-pip libopenblas-dev libtbb-dev pkg-config

安装 conan:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip3 install conan==1.59.0 --user
expoprt PATH=$PATH:~/.local/bin

安装较新版本的 cmake>=3.23,参考 https://apt.kitware.com。golang 的安装可以参考 https://go.dev/doc/install

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
make milvus-gpu

启动 milvus standalone 模式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd bin
sudo ./milvus run standalone

在配置好 nvidia-docker 或者 docker 替代品的情况下,可以很方便地使用 Milvus 提供的 docker-compose.yml 文件来完成容器化部署。

用户可以从 milvus repo 中获取 docker-compose.yml 文件,地址 https://github.com/milvus-io/milvus/blob/master/deployments/docker/gpu/standalone/docker-compose.yml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 docker-compose up -d

至此,便可完成 standalone 模式的 Milvus 部署。

如果用户宿主机有多张显卡,可以通过修改 docker-compose.yml 中的 device_ids 字段来修改映射到 Milvus 的显卡。

以上就是关于 Milvus GPU 版本使用说明的全部内容,大家有任何疑问都可以与我们交流。下一篇文章,我们将详解 Knowhere 2.0,欢迎阅读!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ZILLIZ 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Milvus 2.3.功能全面升级,核心组件再升级,超低延迟、高准确度、MMap一触开启数据处理量翻倍、支持GPU使用!
Milvus 2.3.0 不仅包含大量的社区呼声很高的新功能,还带来了诸如 GPU 支持、Query 架构升级、更强的负载均衡、调度能力、新的消息队列Arm 版本镜像、可观测性、运维工具升级等能力,这标志着 Milvus 2.x 系列从 production ready,走向成熟、可靠、生态繁荣、运维更友好的发展路径。
汀丶人工智能
2023/11/21
7980
Milvus 2.3.功能全面升级,核心组件再升级,超低延迟、高准确度、MMap一触开启数据处理量翻倍、支持GPU使用!
AIGC | 在机器学习工作站安装NVIDIA CUDA® 并行计算平台和编程模型
总体而言,CUDA 已经成为科学计算和各种数据密集型应用的重要工具之一,通过利用 GPU 的并行计算能力,显著提高了计算速度和效率。
全栈工程师修炼指南
2024/07/05
2490
AIGC | 在机器学习工作站安装NVIDIA CUDA® 并行计算平台和编程模型
启用Docker虚拟机GPU,加速深度学习
首先说一下Docker虚拟机。为什么需要虚拟机?不知道你是否有过这样的经历,在github上看到一个有趣的开源项目,把代码下载下来,按照项目上的说明编译运行,结果发现怎么也不能成功。
云水木石
2019/07/01
2.7K0
启用Docker虚拟机GPU,加速深度学习
在Linux服务器上更换Nvidia驱动
本文记录在Linux服务器更换Nvidia驱动的流程。 需求 Linux 服务器上的 1080Ti 显卡驱动为387, CUDA 9,比较老旧,需要更换成可以运行pytorch 1.6的环境。 确定当前显卡型号\操作系统版本\目标环境 查看显卡信息,确定自己的显卡型号: $ nvidia-smi 或 $ lspci | grep -i vga 输出的设备信息并不是我们熟悉的型号,比如我的输出为: 02:00.0 VGA compatible controller: NVIDIA Corpo
为为为什么
2022/08/05
6.2K0
在Linux服务器上更换Nvidia驱动
Nvidia 3060显卡 CUDA环境搭建(Ubuntu22.04+Nvidia 510+Cuda11.6+cudnn8.8)
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
山河已无恙
2023/08/21
1.8K1
Nvidia 3060显卡 CUDA环境搭建(Ubuntu22.04+Nvidia 510+Cuda11.6+cudnn8.8)
ubuntu16.04安装cuda9.0(ubuntu18安装nvidia驱动)
Ubuntu 下安装CUDA需要装NVIDIA驱动,首先进入NVIDIA官网,然后查询对应NVIDIA驱动是否支持你电脑的型号。
全栈程序员站长
2022/07/29
7610
ubuntu16.04安装cuda9.0(ubuntu18安装nvidia驱动)
ubuntu22.04安装显卡驱动与cuda+cuDNN
紧接前文:Proxmox VE 8.4 显卡直通完整指南:NVIDIA 2080 Ti 实战。在R740服务器完成了proxmox的安装,并且安装了一张2080ti 魔改22g显存的的显卡。配置完了proxmox显卡直通,并将显卡挂载到了vm 301(ubuntu22.04)的虚拟机上面。现在需要安装显卡驱动与cuda以及cuDNN!
对你无可奈何
2025/05/03
1910
玩转 AIGC:打造 AI 大模型云主机,Ubuntu 24.04 LTS 安装 Docker 和 NVIDIA Container Toolkit
今天分享的内容是 玩转 AIGC「2024」 系列文档中的 打造本地 AI 大模型地基,Ubuntu 24.04 LTS 安装 Docker 和 NVIDIA Container Toolkit。
运维有术
2024/05/07
1.1K0
玩转 AIGC:打造 AI 大模型云主机,Ubuntu 24.04 LTS 安装 Docker 和 NVIDIA Container Toolkit
Docker: Nvidia Driver, Nvidia Docker 推荐安装步骤
最后, sudo reboot 重启。之后,运行 nvidia-smi 输出 Nvidia 驱动信息:
GoCoding
2021/05/06
1.5K0
Docker容器如何优雅使用NVIDIA GPU
Docker 容器不会自动看到您系统的 GPU。这会导致依赖 GPU 的工作负载(例如机器学习框架)的性能降低。以下是将主机的 NVIDIA GPU 公开给容器的方法。
我的小碗汤
2021/12/24
54.8K0
Docker容器如何优雅使用NVIDIA GPU
Ubuntu 18 刚安装,该初始配置什么呢
支持 exFAT 格式的移动硬盘。exFAT 于 macOS, Windows 可读写;文件和分区的大小,可到 128PB 。
GoCoding
2021/05/06
8610
NVIDIA Isaac Sim安装疑难杂症攻克记:两周问题总汇与实战攻略
NVIDIA机器人技术练气群已经成立两周有余,我们始终致力于将这个群聊打造成为一个ISAAC开发者们自由交流、分享经验以及进行技术实操的活跃平台。近两周来,群内成员们展开了热烈的讨论,积极分享自己在安装和使用NVIDIA ISAAC过程中遇到的各种问题。
GPUS Lady
2025/03/13
6341
NVIDIA Isaac Sim安装疑难杂症攻克记:两周问题总汇与实战攻略
KVM虚拟化与GPU计算的结合实践
我们知道CUDA是由NVIDIA推出的通用并行计算架构,使用该架构能够在GPU上进行复杂的并行计算。在有些场景下既需要使用虚拟机进行资源的隔离,又需要使用物理GPU进行大规模的并行计算。本文就进行相关的实践:把NVIDIA显卡透传到虚拟机内部,然后使用CUDA平台进行GPU运算的实践。
虚拟化云计算
2018/04/08
2.5K0
KVM虚拟化与GPU计算的结合实践
Linux安装CUDA的正确姿势[通俗易懂]
CUDA(Compute Unified Device Architecture,统一计算架构)是由NVIDIA所推出的一种集成技术,是该公司对于GPGPU的正式名称。
全栈程序员站长
2022/08/01
8.5K0
Linux安装CUDA的正确姿势[通俗易懂]
原 荐 Docker中使用GPU
GPU驱动安装 使用GPU之前,需要先确定好CUDA已经安装配置完成。 查看是否支持GPU lspci | grep -i nvidia 01:00.0 VGA compatible contr
霡霂
2018/06/04
2.9K0
保姆级教程:个人深度学习工作站配置指南
来源丨https://zhuanlan.zhihu.com/p/336429888
Datawhale
2021/01/07
3.3K0
保姆级教程:个人深度学习工作站配置指南
【保姆级教程】如何在Win11上搭建一个GPU环境
下载链接:https://developer.nvidia.com/cuda-downloads,图片下载的是 cuda_12.6.1_560.94_windows.exe
致Great
2024/11/23
8770
【保姆级教程】如何在Win11上搭建一个GPU环境
一文上手Tensorflow2.0(四)
【磐创AI导读】:本系列文章介绍了与tensorflow的相关知识,包括其介绍、安装及使用等。本篇文章是本系列文章的最后一篇。查看上篇:一文上手Tensorflow2.0之tf.keras|三。在文末作者给出了答疑群的二维码,有疑问的读者可以进群提问。想要获取更多的机器学习、深度学习资源,欢迎大家点击上方蓝字关注我们的公众号:磐创AI。
磐创AI
2019/08/23
1.6K0
基于Ollama的DeepSeek R1本地部署全流程指南:从零到推理实战
在人工智能技术快速发展的今天,本地化部署大型语言模型(LLM)已成为开发者与研究人员的重要需求。本文将详细介绍如何通过Ollama框架实现DeepSeek R1模型的本地部署,涵盖从硬件选型到推理实战的全流程,并提供针对不同场景的优化方案。
Towserliu
2025/02/06
10.7K0
基于Ollama的DeepSeek R1本地部署全流程指南:从零到推理实战
真实机下 ubuntu 18.04 安装GPU +CUDA+cuDNN 以及其版本选择(亲测非常实用)
目前,大多情况下,能搜到的基本上都ubuntu 14.04.或者是ubuntu 16.04的操作系统安装以及GPU 环境搭建过程,博主就目前自身实验室环境进行分析,总结一下安装过程。
全栈程序员站长
2022/08/20
2K0
真实机下 ubuntu 18.04 安装GPU +CUDA+cuDNN 以及其版本选择(亲测非常实用)
推荐阅读
相关推荐
Milvus 2.3.功能全面升级,核心组件再升级,超低延迟、高准确度、MMap一触开启数据处理量翻倍、支持GPU使用!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验