GPUStack 是一个设计用于运行大模型的开源 GPU 集群管理器,提供私有部署的大模型服务,支持大语言模型、Embedding 文本嵌入模型、Reranker 重排序模型、Vision 多模态模型等各种模型。它可以聚合不同平台(如 Apple Macbook、Windows PC 和 Linux 服务器)的 GPU,构建一个统一的异构 GPU 集群。

在 Linux 中十分推荐使用 Docker 方式安装 GPUStack,可以避免很多依赖和冲突问题,简化安装过程。

今天带来一篇关于如何设置 NVIDIA 容器运行时并使用容器方式运行 GPUStack 的操作教程。

前置准备

验证当前环境有 NVIDIA GPU 硬件:

lspci | grep -i nvidia

验证系统已安装 GCC:

gcc --version

安装 NVIDIA 驱动

参考:https://developer.nvidia.com/datacenter-driver-downloads

为当前内核安装内核头文件和开发包:

sudo apt-get install linux-headers-$(uname -r)

安装 cuda-keyring 包:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb

安装 NVIDIA 驱动:

sudo apt-get update
sudo apt-get install nvidia-open -y

重启系统:

sudo reboot

重新登录并检查 nvidia-smi 命令可用:

nvidia-smi

安装 Docker Engine

参考:https://docs.docker.com/engine/install/ubuntu/

执行以下命令卸载所有冲突的包:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

设置 Docker 的 apt 仓库:

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

安装 Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

检查 docker 命令可用:

docker info

安装 NVIDIA Container Toolkit

参考:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

配置 NVIDIA Container Toolkit 的生产仓库:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

安装 NVIDIA Container Toolkit:

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit -y

使用 nvidia-ctk 命令配置容器运行时:

sudo nvidia-ctk runtime configure --runtime=docker

检查 daemon.json 文件的配置:

cat /etc/docker/daemon.json

重启 Docker daemon:

sudo systemctl restart docker

运行一个示例的 CUDA 容器来验证安装:

sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

安装 GPUStack

参考:https://docs.gpustack.ai/latest/installation/docker-installation/

通过 Docker 安装 GPUStack:

docker run -d --gpus all -p 80:80 --ipc=host --name gpustack \
-v gpustack-data:/var/lib/gpustack gpustack/gpustack

使用以下命令查看登录密码:

docker exec -it gpustack cat /var/lib/gpustack/initial_admin_password

在浏览器访问 GPUStack( http://YOUR_HOST_IP )以用户名 admin 和密码登录。设置密码后,登录进 GPUStack,查看识别到的 GPU 资源:

(可选)要添加额外的 Worker 节点,构建 GPU 集群,在其它工作节点上执行以下命令:

docker run -d --gpus all --ipc=host --network=host \
gpustack/gpustack --server-url http://YOUR_HOST_IP --token YOUR_TOKEN

将其中的 http://YOUR_HOST_IP 替换为你的 GPUStack 访问地址,将 YOUR_TOKEN 替换为用于添加 Worker 的认证 Token。要从 GPUStack Server 检索 Token,使用以下命令:

docker exec -it gpustack cat /var/lib/gpustack/token

完成之后,尝试从 Hugging Face 或其它模型仓库部署模型:

在 Playground 中调测模型:

加入社区

以上为配置 NVIDIA 容器运行时环境并使用容器方式运行 GPUStack 的操作教程。

对 GPUStack 感兴趣或者在使用过程中遇到问题,可以添加 GPUStack 微信小助手(微信号:GPUStack)入群交流。

如果觉得写得不错,欢迎点赞转发关注

配置NVIDIA Container Runtime和容器运行GPUStack教程的更多相关文章

  1. Kubernetes容器运行时弃用Docker转型Containerd

    文章转载自:https://i4t.com/5435.html Kubernetes社区在2020年7月份发布的版本中已经开始了dockershim的移除计划,在1.20版本中将内置的dockersh ...

  2. 使用容器运行的minio配置https(TLS)访问

    使用certgen生成证书 下载地址:https://github.com/minio/certgen/releases/tag/v0.0.2 下载地址:https://files.cnblogs.c ...

  3. [笔记] Ubuntu 18.04安装Docker CE及NVIDIA Container Toolkit流程

    之前写的[笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程已经out了,以这篇为准. Docker的好处之一,就是在Container里面可以随意瞎搞,不用担心 ...

  4. ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(二)

    ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(二) 本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户. (二)nvidia docker配 ...

  5. 程序员修神之路--打通Docker镜像发布容器运行流程

    菜菜哥,我看了一下docker相关的内容,但是还是有点迷糊 还有哪不明白呢? 如果我想用docker实现所谓的云原生,我的项目该怎么发布呢? 这还是要详细介绍一下docker了 Docker 是一个开 ...

  6. kubernetes/k8s CRI分析-容器运行时接口分析

    关联博客:kubernetes/k8s CSI分析-容器存储接口分析 概述 kubernetes的设计初衷是支持可插拔架构,从而利于扩展kubernetes的功能.在此架构思想下,kubernetes ...

  7. 浅析容器运行时奥秘——OCI标准

    背景 2013年Docker开源了容器镜像格式和运行时以后,为我们提供了一种更为轻量.灵活的"计算.网络.存储"资源虚拟化和管理的解决方案,在业界迅速火了起来. 2014年更是容器 ...

  8. 基于阿里云容器服务用docker容器运行ASP.NET 5示例程序

    小试阿里云容器服务 之后,接下来有一个挡不住的小试冲动--用docker容器运行程序.首先想到的程序是 ASP.NET 5示例程序,于是参考msdn博客中的这篇博文 Running ASP.NET 5 ...

  9. ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(三)

    ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(三) 本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户. (三)配置远程桌面连接访问dock ...

  10. Docker下载镜像并创建容器运行

    在linux系统中安装完成docker后,我们开始进行docker的镜像.容器的使用. 在使用docker时,首先要明确的两个概念:image(镜像) 与  container (容器) image: ...

随机推荐

  1. Drools决策表实践运用

    Drools 决策表的使用与说明 Drools决策表的使用 官方文档决策表说明 决策表使用方式 执行drl代码及结果 Drools决策表的使用 官方文档决策表说明 Drools 决策表的使用 16.7 ...

  2. react + vite

    Vite 和 Yarn都比较新的技术 Ref: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-react-proje ...

  3. 为什么C++ 单例局部static初始化是线程安全的?

    为什么C++ 单例局部static初始化是线程安全的? const bg::AppSettings& bg::AppSettings::GetInstance() { static AppSe ...

  4. 亮相CCIG2024,合合信息文档解析技术破解大模型语料“饥荒”难题

        近日,2024中国图象图形大会在古都西安盛大开幕.本届大会由中国图象图形学学会主办,空军军医大学.西安交通大学.西北工业大学承办,通过二十多场论坛.百余项成果,集中展示了生成式人工智能.大模型 ...

  5. CSIG企业行-走进合合信息成功举行,聚焦生成式人工智能、智能文档处理前沿热点

    3月18日,由中国图象图形学学会(CSIG)主办,合合信息.CSIG文档图像分析与识别专业委员会联合承办的"CSIG企业行"系列活动成功举办.此次活动以"图文智能处理与多 ...

  6. 我对互联网和网站运作的理解 – Domain, DNS, Hosting 介绍

    前言 一直没有写过关于互联网和网站运作的原理相关文章. 这篇就稍微介绍一下它们. 1. 电脑文件 网站是由许多网页组成的, 网页就是电脑里的 file. extension 是 .html 类似于 . ...

  7. 1Panel:一个现代化、开源的 Linux 服务器运维管理面板

    前言 之前有小伙伴问:Linux 服务器运维管理除了宝塔,还有其他值得推荐的管理软件吗?,今天大姚给大家分享一个现代化.开源的 Linux 服务器运维管理面板:1Panel. 项目介绍 1Panel是 ...

  8. USB gadget functionfs

    FunctionFS (Function Filesystem) 是 Linux USB Gadget 框架的一部分,专门用于从用户空间实现和控制自定义的 USB 功能.它提供了一种文件系统接口,使用 ...

  9. 关于Transformer中feed forward layer理解

    今天记录一下个人关于Transformer中前馈神经网络(FFN)的一点理解. 第一点,我们知道,FFN之前是有一个多头注意力机制的模块.我们可以想想一下,如果这个模块直接输出,不经过FFN层会发生什 ...

  10. manim边学边做--无向图

    无向图属于数学中的图论这一学科, 所谓无向图G,就是由顶点集V(非空集合)和边集E(由V中元素构成的无序二元组的集合)组成的图, 可表示为G=(V,E). 在无向图中,边没有方向,即从顶点A到顶点B的 ...