12 篇文章带有标签 “CUDA”

大模型(语言、视觉语言、语音)推理服务部署与测试

计算能力(CC)定义了每种 NVIDIA GPU 架构的硬件特性支持的指令。在下表中查找您的GPU的计算能力。

docker run -it --rm \
  --ipc=host \
  --net=host \
  --runtime=nvidia \
  --name=vllm-test \
  -v /models:/models \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  -v ~/.cache/modelscope:/root/.cache/modelscope \
  nvcr.io/nvidia/vllm:25.10-py3 \
  bash

默认情况下,如果模型未指向有效的本地目录,它将从 Hugging Face Hub 下载模型文件。要从 ModelScope 下载模型,请在运行命令之前进行如下设置:

export VLLM_USE_MODELSCOPE=true
vllm serve /models/Qwen/Qwen3-8B \
  --served-model-name qwen3 \
  --chat-template /models/Qwen/Qwen3-8B/qwen3_nonthinking.jinja

Jetson AGX Orin大模型部署挑战与系统升级

这些文档主要围绕着在 NVIDIA Jetson AGX Orin 开发者套件上部署 多模态大型语言模型 (LLMs) 所面临的 系统升级挑战。核心问题在于,当前系统的 JetPack、Ubuntu、CUDA 和 GPU 驱动版本 过低,无法满足 vLLM 和 Ollama 等主流推理框架对 更高 CUDA 和驱动版本 的要求。文章详细阐述了 升级至 JetPack 6.0 是解决兼容性问题的关键,但这将强制要求 将 Ubuntu 升级到 22.04,从而导致 需要重装系统可能与 ROS1 产生兼容性问题 等一系列复杂挑战。此外,文档还探讨了 替代推理引擎和云端推理 等备选方案,但最终建议进行 系统全面升级 以实现长期兼容性和性能优化。

  • 硬件环境:ARM64 架构,具体为 NVIDIA Jetson AGX Orin 开发者套件。

硬件环境: ARM64 架构,具体为 NVIDIA Jetson AGX Orin 开发者套件。 当前系统配置: JetPack版本:5.1.4 Ubuntu版本:20.04 CUDA版本:11.4 核心问题: vLLM和Ollama这两个主流的多模态大模型推理框架对CUDA和驱动版本有更高要求,而现有系统配置无法满足。 具体软件版本要求: vLLM: 至少需要CUDA 11.8。 Ollama: 需要Nvidia GPU计算能力5.

SGLang 大模型服务框架

SGLang 是用于大型语言模型和视觉语言模型的快速服务框架。通过协同设计后端运行时和前端语言,使您与模型的交互更快速、更可控。

The core features include:

核心功能包括: Fast Backend Runtime: Efficient serving with RadixAttention for prefix caching, jump-forward constrained decoding, continuous batching, token attention (paged attention), tensor parallelism, FlashInfer kernels, and quantization (AWQ/FP8/GPTQ/Marlin). 快速后端运行时:通过 RadixAttention 实现高效的服务,支持前缀缓存(prefix caching)、受限跳转前缀解码(jump-forward constrained decoding)、连续批处理(continuous batching)、令牌注意力(分页注意力)(token attention (paged attention))、张量并行(tensor parallelism)、FlashInfer 内核和量化(AWQ/FP8/GPTQ/Marlin)。

NVIDIA Driver 安装

困难重重 😭

服务器是 NVIDIA Tesla T4,系统是 Ubuntu 20.04,从 Kubernetes 集群中分离出来的,因 Tabby 请求 CUDA >= 11.7,需要重新安装新版本的驱动。

就两步就完成了,简单吧 😄

安装驱动

sudo sh NVIDIA-Linux-x86_64-535.129.03.run

日志查看错误信息

NVIDIA 软件栈搭建

  1. 安装驱动
sudo apt install nvidia-driver-510
  1. 重启系统
sudo reboot
  1. 查看
nvidia-smi
  1. 卸载驱动
sudo apt purge nvidia*

CUDA Toolkit 下载

cuDNN 下载

  1. 层和张量融合(Layer and Tensor Fusion) 通过融合内核中的节点来优化GPU内存和带宽的使用。
  1. 内核自动调谐(Kernel Auto-Tuning) 根据目标GPU平台选择最佳数据层和算法。
  1. 动态张量内存(Dynamic Tensor Memory) 最大限度地减少内存占用,并有效地将内存重用到张量上。
  1. 多流执行(Multi-Stream Execution) 使用可扩展的设计并行处理多个输入流。
  1. 时间融合(Time Fusion) 使用动态生成的内核优化时间步骤中的循环神经网络。

TensorRT 下载

配置环境变量 LD_LIBRARY_PATH export LD_LIBRARY_PATH=$LD_LIBRARY

GaiaGPU: 在容器云中共享GPU

容器技术由于其轻量级和可伸缩的优势而被广泛使用。GPU也因为其强大的并行计算能力被用于应用程序加速。在云计算环境下,容器可能需要一块或者多块GPU计算卡来满足应程序的资源需求,但另一方面,容器独占GPU计算卡常常会带来资源利用率低的问题。因此,对于云计算资源提供商而言,如何解决在多个容器之间共享GPU计算卡是一个很有吸引力的问题。本文中我们提出了一种称为GaiaGPU的方法,用于在容器间共享GPU存储和GPU的计算资源。GaiaGPU会将物理GPU计算卡分割为多个虚拟GPU并且将虚拟GPU按需分配给容器。同时我们采用了弹性资源分配和动态资源分配的方法来提高资源利用率。实验结果表明GaiaGPU平均仅带来1.015%的性能损耗并且能够高效的为容器分配和隔离GPU资源。

部署指标的服务

kubectl apply -f  gpu-manager-svc.yaml
kubectl apply -f gpu-quota.yaml

打开一个新的终端,获取 GPU 指标数据的统计。 curl http://127.0.0.

Building ONNX Runtime

  • 拉取容器(编译环境)
docker pull nvidia/cuda:11.1-cudnn8-devel-ubuntu20.04
  • 运行容器
docker run -it --name build-onnxruntime-gpu --runtime nvidia \
    -v $(pwd)/onnxruntime:/onnxruntime -w /onnxruntime \
    nvidia/cuda:11.1-cudnn8-devel-ubuntu20.04
  • 更新apt镜像源
sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
apt-get update
  • 安装依赖包
apt-get install language-pack-en git cmake python3 python3-pip -y
  • 修改语言环境
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
  • 更新pip镜像源
pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/
  • 安装numpy
pip3 install numpy

编译 ./build.

Dockerfile ONNXRuntime GPU

FROM nvidia/cuda:11.1-cudnn8-devel-ubuntu20.04 AS builder
LABEL maintainer="wang-junjian@qq.com"

#E: Failed to fetch https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/by-hash/SHA256/f10fc2a7a0d072ddcf141af2ef28f1e97ab4b3a5c3b9bbe34ed845d174fb4979  404  Not Found [IP: 61.155.167.2 443]
#E: Some index files failed to download. They have been ignored, or old ones used instead.
RUN rm /etc/apt/sources.list.d/cuda.list /etc/apt/sources.list.d/nvidia-ml.list

RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \
    apt-get update && \
    apt-get install language-pack-en git python3 python3-pip -y && \
    DEBIAN_FRONTEND=noninteractive apt-get install cmake -y && \
    locale-gen en_US.UTF-8 && \
    update-locale LANG=en_US.UTF-8

RUN pip3 install numpy -i https://mirrors.aliyun.com/pypi/simple/
// ...

Linux上查找系统信息

  • /proc/version
$ cat /proc/version
Linux version 4.18.0-147.5.1.el8_1.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC)) #1 SMP Wed Feb 5 02:00:39 UTC 2020
  • hostnamectl
$ hostnamectl | grep Kernel
            Kernel: Linux 4.18.0-147.5.1.el8_1.x86_64
  • Ubuntu
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04 LTS
Release:	20.04
Codename:	focal
  • CentOS
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 8.1.1911 (Core) 
Release:	8.1.1911
Codename:	Core

/proc/driver/nvidia/version $ cat /proc/dr