openEuler AI 实践实验——从大模型快速部署到异构协同加速
openEuler AI 实践——从大模型快速部署到异构协同加速
一、 实验目的
- 掌握大模型“开箱即用”部署技术:通过 Ollama 实践,理解 openEuler 如何通过简化的工具链支持 Llama、DeepSeek、Qwen 等主流大模型的分钟级私有化部署。
- 理解模型全生命周期管理:掌握从开源社区(ModelScope/HuggingFace)获取权重,利用
llama.cpp进行模型量化与格式转换(GGUF),实现大模型在不同算力环境下的灵活适配。 - 探索异构协同加速机制(sysHAX):深入理解大模型推理中 Prefill(计算密集型) 与 Decode(访存密集型) 阶段的不同特征,掌握如何通过 sysHAX 实现 CPU 与 GPU/NPU 的负载均衡与算力套利。
- 实践软硬协同性能优化:通过 sysHAX 和 vLLM 的容器化部署,体验 openEuler 在多样性算力(如鲲鹏 CPU + NVIDIA GPU)环境下的高吞吐调度能力,验证操作系统作为 AI 底座的加速价值。
二、 实验环境
-
硬件环境:
- 处理器:鲲鹏 920 (ARM64 架构) 或主流 x86_64 处理器。
- 加速卡:NVIDIA GPU(支持 CUDA 驱动)或华为昇腾 NPU(可选,用于 sysHAX 异构实验)。
- 内存:建议 32GB 及以上(大模型推理及 KV Cache 占用较大)。
- 存储:建议 100GB 以上剩余空间(用于存放模型权重及容器镜像)。
-
软件平台:
- 操作系统:openEuler 22.03 LTS 或 24.03 LTS。
- 容器引擎:Docker 或 iSula,并安装 NVIDIA Container Toolkit(GPU 镜像支持)。
- 核心工具:
- Ollama:模型快速运行框架。
- llama.cpp:模型转换与 CPU 推理加速工具。
- sysHAX:openEuler 特有的异构协同加速运行时。
- vLLM:高吞吐推理服务引擎。
- 运行环境:Python 3.9+,GCC/C++ 编译工具链(用于 llama.cpp 构建)。
-
网络要求:
- 需具备访问
ollama.com、modelscope.cn或huggingface.co的网络连接,用于拉取安装包和模型权重。
- 需具备访问
三、 实验内容与步骤
1.OpenEuler本地部署大模型实践
智能时代,操作系统需要面向 AI 不断演进。一方面,在操作系统开发、部署、运维全流程以 AI 加持,让操作系统更智能;另一方面,openEuler 已支持 ARM,x86,RISC-V 等全部主流通用计算架构,在智能时代,openEuler 也率先支持 NVIDIA、昇腾等主流 AI 处理器,成为使能多样性算力的首选
openEuler 兼容 NVIDIA、Ascend 等主流算力平台的软件栈,为用户提供高效的开发运行环境。通过将不同 AI 算力平台的软件栈进行容器化封装,即可简化用户部署过程,提供开箱即用的体验。同时,openEuler 也提供丰富的 AI 框架,方便大家快速在 openEuler 上使用 AI 能力。
该模块实验将从零开始手动在openeuler系统上部署大模型,体验openeuler在AI场景下的优点。
1.1.用Ollama一键部署模型
Ollama 是一款主打本地私有化部署的开源大语言模型运行框架,让普通人与企业能零门槛享受安全高效的 AI 服务。它打破传统云端 AI 依赖,将 Llama、Mistral、DeepSeek 等 30+ 主流大模型直接部署在个人电脑或服务器上,无需复杂配置,实现 “一键运行” 的便捷体验。

下载Ollama
curl -fsSL https://ollama.com/install.sh | sh
部署并运行模型:
ollama run [model_name]
本实验以Qwen-2.5-Instruct-1.5B为例,部署运行后,结果如图:

1.2.从大模型开源社区灵活部署模型
国内外有很多优质的大模型开源社区可以选择,以下是两种推荐方案:
国内:ModelScope
ModelScope是由阿里达摩院推出的一个模型共享平台,旨在为开发者提供一个统一的模型存储、发现和使用的生态系统。该平台支持多种任务,包括自然语言处理(NLP)、计算机视觉(CV)、语音处理和多模态任务,提供了丰富的模型和数据集资源。

国外:Huggingface
Hugging Face 是一个提供先进自然语言处理(NLP)工具的平台,支持 Transformer 模型的开发和应用。它拥有庞大的模型库和社区资源,能够满足从研究到工业应用的各种需求。类似与AI界的github,也可以作为推理工具。

通过国内外的开源大模型社区,我们可以获取各式各样的有趣的大模型,他们在各个领域、不同任务场景种有着优秀的性能,我们可以从社区将模型下载下来,保存为safeTensors权重层形式。接下来,我们将通过llama.cpp将权重层转化成可使用的GGUF模型格式
llama.cpp
llama.cpp是基于C/C++实现的LLaMa英文大模型接口,可以支持用户在CPU机器上完成开源大模型的部署和使用.llama.cpp核心架构分为两层:
- 模型量化层:可以量化开源模型,减少模型大小;
- 模型启动层:可以启动量化后的模型。
安装llama.cpp
yum install llama.cpp
将model转化为GGUF
python3 /usr/bin/llama_convert.py {your_model_path}/
启动对话
llama_cpp_main -m model_path --color --ctx_size 2048 -n -1 -ins -b 256 --top_k 10000 --temp 0.2 --repeat_penalty 1.1 -t 8
参考:[OpenEuler官方社区]
2.sysHAX 大模型异构协同加速运行时
sysHAX 是 openEuler 操作系统中的一个大模型推理服务加速工具,它通过智能调度CPU和GPU/NPU等异构算力资源,旨在显著提升大语言模型推理任务的性能、吞吐量和算力利用率
sysHAX的核心是“异构协同”,主要通过以下三种技术手段实现加速 :
| 功能模块 | 核心目标 | 实现原理 |
|---|---|---|
| 异构融合调度 | 动态分配任务,优化整体吞吐 | 将推理请求分为Prefill(计算密集)和Decode(访存密集)阶段,智能调度至最适合的硬件(如GPU处理Prefill,CPU处理Decode) |
| CPU推理加速 | 充分挖掘CPU算力潜力 | 通过NUMA亲和性绑定、并行优化、算子优化(如使用SVE指令集)等方式,提升CPU执行Decode等任务的效率 |
| KV Cache管理 | 高效利用内存,降低延迟 | 管理推理过程中的KV Cache(键值缓存),使其在GPU显存、CPU内存等多级存储间高效搬运和复用 |
sysHAX功能定位为K+X异构融合推理加速,主要包含两部分功能
推理动态调度 对于推理任务,prefill阶段属于计算密集型任务,decode阶段属于访存密集型任务。因此从计算资源的角度来说,prefill阶段适合在GPU/NPU等硬件上执行,而decode阶段可以放在CPU等硬件上执行。
CPU推理加速 在CPU上通过NUMA亲和、并行优化、算子优化等方式,来加速CPU推理性能。

2.1.部署流程
首先需要通过 nvidia-smi 和 nvcc -V 检查是否已经安装好了nvidia驱动和cuda驱动,如果没有的话需要首先安装nvidia驱动和cuda驱动。
安装NVIDIA Container Toolkit(容器引擎插件)
已经安装NVIDIA Container Toolkit可忽略该步骤。
容器场景vllm搭建
vllm是一款高吞吐、低内存占用的大语言模型(LLM)推理与服务引擎,支持CPU 计算加速,提供高效的算子下发机制。由于篇幅限制,不做详细阐述。
以下为在GPU容器中部署vllm的示例:
docker pull hub.oepkgs.net/neocopilot/syshax/syshax-vllm-gpu:0.2.1
docker run --name vllm_gpu \
--ipc="shareable" \
--shm-size=64g \
--gpus=all \
-p 8001:8001 \
-v /home/models:/home/models \
-w /home/ \
-itd hub.oepkgs.net/neocopilot/syshax/syshax-vllm-gpu:0.2.1 bash
在上述脚本中:
-
–ipc=“shareable”:允许容器共享IPC命名空间,可进行进程间通信。
-
–shm-size=64g:设置容器共享内存为64G。
-
–gpus=all:允许容器使用宿主机所有GPU设备
-
-p 8001:8001:端口映射,将宿主机的8001端口与容器的8001端口进行映射,开发者可自行修改。
-
-v /home/models:/home/models:目录挂载,将宿主机的 /home/models 映射到容器内的 /home/models 内,实现模型共享。开发者可自行修改映射目录。
sysHAX安装与配置
dnf install sysHAX
配置sysHAX
syshax init
syshax config services.gpu.port 8001
syshax config services.cpu.port 8002
syshax config services.conductor.port 8010
syshax config models.default ds-32b
启动sysHAX服务
syshax run
启动成功后,可以使用官方提供的测试脚本来进行大模型服务的测试:
curl http://0.0.0.0:8010/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "ds-32b",
"messages": [
{
"role": "user",
"content": "介绍一下openEuler。"
}
],
"stream": true,
"max_tokens": 1024
}'
- 点赞
- 收藏
- 关注作者
评论(0)