KOS(KeyarchOS操作系统)+VLLM测试deepseek基准性能

vLLM 推理引擎性能分析基准测试 本文为 vLLM 推理引擎根据官方提供的数据集进行的性能基准测试,主要测试分析 --enable-chunked-prefill 的启用/禁用以及 --max-num-batched-tokens 参数的调整对性能的影响情况... 阅读详情

目录

1 概述

2 环境准备

3 性能测试

3.1 下载vllm源码

3.2 启动vllm容器

3.3 手动测试

3.4 编写脚本测试


1 概述

浪潮信息KOS是浪潮信息基于Linux Kernel、OpenAnolis等开源技术自主研发的一款服务器操作系统,支持x86、ARM等主流架构处理器,性能和稳定性居于行业领先地位,具备成熟的 CentOS 迁移和替换能力,可满足云计算、大数据、分布式存储、人工智能、边缘计算等应用场景需求。详细介绍见官网链接https://www.ieisystem.com/kos/product-kos-xq.thtml?id=12126

vLLM是一种用于大规模语言模型(LLM)推理的框架,旨在提高模型的吞吐量和降低延迟。vLLM通过优化内存管理和调度策略,显著提升了模型在高并发场景下的性能。vLLM利用了一种名为PagedAttention的注意力机制,该机制借鉴了虚拟内存和分页技术,以减少缓存内存(KV Cache)的浪费,并允许在请求之间灵活共享KV缓存。这种设计使得vLLM在保持与现有系统相同延迟水平的情况下,能够将吞吐量提高2到4倍。官方网址:https://www.vllm.ai

本篇文章主要介绍如何在KOS操作系统上进行vLLM基准性能测试,及benchmark测试,vLLM benchmark 测试是针对 vLLM 推理服务框架的性能评估过程,旨在量化其处理大规模语言模型推理任务时的效率、吞吐量和延迟表现,覆盖典型测试场景,包括单GPU/多GPU、不同模型规模、批处理效果等。

2 环境准备

操作系统版本:KOS 5.8 sp2u1(5.10.134-17.2.2.kos5.x86_64)

测试架构:x86_64,96核1TB物理机

显卡:NVIDIA Tesla V100s * 2

Docker镜像: vllm/vllm-openai:latest

模型:DeepSeek-R1-Distill-Llama-8B

3 性能测试

3.1 下载vllm源码

1、创建挂载容器目录:

mkdir –p /data

2、下载vllm源码到指定目录

cd /data

git clone https://github.com/vllm-project/vllm.git vllm_source

3.2 启动vllm容器

创建容器:

docker run --name ds-vllm-test --gpus all -ti --privileged -v /root/:/workspace -v /data/:/data --ipc=host -p 8090:8090 --security-opt seccomp=unconfined --entrypoint /bin/sh docker.1ms.run/vllm/vllm-openai:latest

3.3 手动测试

进入容器:

docker exec -it ds-vllm-test bash

prefill预填充性能测试:
Prefill阶段为模型接收到完整输入之后,在开始生成第一个输出token之前,反映模型在处理输入序列时的速度。
执行benchmark测试命令:

python3 /data/vllm_source/benchmarks/benchmark_latency.py \--model /data/ssdmodels/DeepSeek-R1-Distill-Llama-8B \--trust-remote-code \--tokenizer /data/ssdmodels/DeepSeek-R1-Distill-Llama-8B \--input-len 500 \--output-len 1 \--batch-size 1 \--tensor-parallel-size 2 \--num-iters-warmup 1 \--num-iters 1 \--dtype=half \--max-model-len 4096

其中:

参数​值​含义
--model/data/ssdmodels/DeepSeek-R1-Distill-Llama-8B指定要测试的模型路径(Hugging Face 格式的模型目录)。
--trust-remote-code/允许加载模型时执行远程代码(如自定义的 modeling.py),通常用于非标准模型。
--tokenizer/data/ssdmodels/DeepSeek-R1-Distill-Llama-8B指定分词器路径,若与模型路径不同时需单独设置。
--input-len500输入序列的长度(token 数量),模拟长文本输入场景。
--output-len1输出序列的长度(token 数量),此处测试生成 1 个 token 的延迟。
--batch-size1批量大小(每次处理的请求数),设为 1 表示单请求测试。
--tensor-parallel-size2张量并行度(GPU 数量),表示模型在 2 个 GPU 上并行计算。
--num-iters-warmup1预热迭代次数(不记录结果),用于消除冷启动影响。
--num-iters1正式测试迭代次数,结果取平均值
--dtypehalf模型精度(half 即 FP16),可减少显存占用并提升计算速度。
--max-model-len4096模型支持的最大上下文长度(token 数),超出会报错。

测试结果:


获取到Avg latency值0.13214380299905315 seconds
计算prefill性能(tokens/s):input-len / Avg latency = 500/0.13214380299905315 = 3783

decode解码性能测试:

decode解码阶段为prefill预填充阶段完成之后开始,到完成所有输出,体现模型生成输出序列的速度。

执行benchmark测试命令

python3 /data/vllm_source/benchmarks/benchmark_latency.py \--model /data/ssdmodels/DeepSeek-R1-Distill-Llama-8B \--trust-remote-code \--tokenizer /data/ssdmodels/DeepSeek-R1-Distill-Llama-8B \--input-len 500 \--output-len 200 \--batch-size 1 \--tensor-parallel-size 2 \--num-iters-warmup 1 \--num-iters 1 \--dtype=half \--max-model-len 4096

获取到Avg latency值2.824540817004163 seconds

计算decode性能(tokens/s):output-len/( – ) = 200/(2.824540817004163 - 0.13214380299905315) = 74

3.4 编写脚本测试

如果要进行不同参数组合的交叉测试,可以编写自动化测试脚本,例如测试batch-size为1,2,4,8;max-model-len为1024,4096,8192的性能:

#!/bin/bash#测试batch-size为1,2,4,8;max-model-len为1024,4096,8192的性能model_path="/data/ssdmodels/DeepSeek-R1-Distill-Llama-8B"input_len=500output_len=1tp=2vllm_path="/data/vllm_source"for i in {1,2,4,8}do for m in {1024,4096,8192} do python3 ${vllm_path}/benchmarks/benchmark_latency.py --model $model_path --trust-remote-code --tokenizer $model_path --input-len $input_len --output-len $output_len --batch-size $i --tensor-parallel-size ${tp} --num-iters-warmup 1 --num-iters 1 --dtype=half --max-model-len $m >> vllm_V100s_DeepSeek8B_tp${tp}_input${input_len}_output${output_len}_maxtoken${m}_batch${i}.log sleep 5 donedoneoutput_len=200for i in {1,2,4,8}do for m in {1024,4096,8192} do python3 ${vllm_path}/benchmarks/benchmark_latency.py --model $model_path --trust-remote-code --tokenizer $model_path --input-len $input_len --output-len $output_len --batch-size $i --tensor-parallel-size ${tp} --num-iters-warmup 1 --num-iters 1 --dtype=half --max-model-len $m >> vllm_V100s_DeepSeek8B_tp${tp}_input${input_len}_output${output_len}_maxtoken${m}_batch${i}.log sleep 5 donedone

之后依次读取log文件,将数据整理到表格中:

vllm基准测试——benchmark_serving实践步骤 vLLM服务性能基准测试说明记录。 阅读详情

相关推荐

Vllm-0.10.1:vllm bench serve参数说明

请求速率爬升策略:<br>linear: 线性增长<br>exponential: 指数增长<br>需配合 --ramp-up-start-rps 和 --ramp-up-end-rps 使用。--random-range-ratio float 0.0 输入/输出长度采样范围:[len*(1-r), len*(1+r)],实现长度波动(如 0.1 表示 ±10%)。--sonnet-prefix-len int 200 前缀 token 数(可用于测试 prefix caching 性能)。

xinvictory的专栏 3681

【vLLM】【基准测试】:vLLM部署大模型的基准测试

从以上基准测试来看,在使用Qwen2___5-Coder-32B-Instruct-GPTQ-Int8和QwQ-32B-Preview模型进行vllm推理时,模型本身就比较大,外加生成的文本质量高就会带来更多的负担,更改为7B级别的chat模型之后,会有比较高的一个正确率,但是相应的文本质量就会降低,综上vllm启动的OpenAI的APi端口,有不错的稳定性,并不会因为大量的请求出现宕机的情况,但是由于本身算力的限制和迫切生成高质量文本的本能,会导致请求的成功率比较低,换言之,即API的并发性不高。模型。

qq_53690996的博客 6350

《YOLOv8实例分割实战:训练自己的数据集 》(视频课程)

本课程将手把手地教大家使用labelme标注和使用YOLOv8训练自己的数据集,完成一个多目标实例分割实战项目。

bai666ai的博客 790

vLLM框架在不同主流GPU卡推理性能测评

选择恰当的GPU卡来部署大语言模型至关重要。它不仅可以确保用户通过更快的生成速度获得最佳体验,还可以通过更高的 Token 生成率和资源利用率来降本增效。本文将讲述如何评估LLM的推理性能以及vLLM框架在不同主流GPU卡(4090/A800/H800/H20等)上进行推理性能测评。LLM推理过程LLM推理服务的目标常见LLM推理服务性能评估指标LLM推理优化技术LLM基准测试说明LLM基准测试输入的选择LLM基准测试并发请求的选择LLM张量并行的选择基于丹摩智算云进行推理环境构建。

2401_85375186的博客 7818

4. PCIe 接口时序

在上一篇中,大致介绍IPcore接口。总的来说接口如下图数据的接收和发送通过transmitTLPinterface和ReceiveTLPinterface。收发数据的时序也只是描述这几个接口的关系。从手册上截取PCIex1的接口时序。

jjinl的专栏 6123

地平线旭日X3派(RDK X3)从开箱到联网:新手避坑指南

本文为地平线旭日X3派(RDK X3)新手提供从开箱到联网的完整避坑指南。详细讲解了硬件识别、系统镜像烧录、串口调试(波特率921600)、有线/无线网络配置以及SSH/VNC远程访问等关键步骤,帮助开发者快速搭建稳定的开发环境,为后续AI应用部署扫清障碍。

weixin_29174385的博客 939

KeyarchOS(KOS)+VLLM部署deepseek推理服务

vLLM是一种用于大规模语言模型(LLM)推理的框架,旨在提高模型的吞吐量和降低延迟。vLLM通过优化内存管理和调度策略,显著提升了模型在高并发场景下的性能。vLLM利用了一种名为PagedAttention的注意力机制,该机制借鉴了虚拟内存和分页技术,以减少缓存内存(KV Cache)的浪费,并允许在请求之间灵活共享KV缓存。这种设计使得vLLM在保持与现有系统相同延迟水平的情况下,能够将吞吐量提高2到4倍。

weixin_48038400的博客 1008

S7-1200模拟量

将两种不同的金属或合金金属焊接起来,构成一个闭合回路,利用温差电动势来测量温度,当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在电动势--热电动势,这就是所谓的塞贝克效应(seebeck effect)。温差越大,热电动势越高。热电偶是有正负极性的,所以需要确保导线连接到正确的极性,否则会造成明显的测量误差。为了使温度补偿达到最佳效果,必须将热电偶模块安装在温度稳定的环境中简述:两种金属,每一种金属随温度变化是不同的,出现温差--由俩金属构成的回路就会有电流经过,因此两端形成热电动势。

王阿妹小天才的博客 2592

基于KeyarchOS(KOS操作系统)实现vLLM监控指标可视化

浪潮信息KOS是浪潮信息基于Linux Kernel、OpenAnolis等开源技术自主研发的一款服务器操作系统,支持x86、ARM等主流架构处理器,性能和稳定性居于行业领先地位,具备成熟的 CentOS 迁移和替换能力,可满足云计算、大数据、分布式存储、人工智能、边缘计算等应用场景需求。详细介绍见官网链接id=12126vLLM是一种用于大规模语言模型(LLM)推理的框架,旨在提高模型的吞吐量和降低延迟。vLLM通过优化内存管理和调度策略,显著提升了模型在高并发场景下的性能。

985

华为OD机试双机位A卷 - 小明减肥 (C++ & Python & JAVA & JS & GO)

华为OD机试2025双机位A卷 小明减肥,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 708

YOLO26改进策略【Neck】| CVPR2025 LCA轻量交叉注意力 跨层级双向引导 + 分层降噪增强,提升微小目标特征表达

简单相加、拼接融合无法建立深浅层双向约束关系,浅层微小目标易被深层背景覆盖,深层全局信息难以修正浅层噪声;普通单路自注意力仅单一层内建模依赖,缺少跨层级特征互引导机制,深浅特征信息割裂;标准多头跨注意力计算量大、参数量高,轻量化单模态检测/分割网络部署困难,无法区分前景目标与背景噪声。为此设计单模态轻量化交叉注意力LCA,构建浅层细节、深层语义双分支双向引导结构,轻量完成跨层级特征交互,同步降噪并强化单模态微小目标特征。

Limiiiing的博客 523
上一篇: 基于GPU的deepseek容器镜像制作与使用
下一篇: 基于CPU隔离技术提升关键业务性能,最大化硬件利用率
KeyarchOS
博客等级 码龄3年 1312粉丝 339原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值