华为昇腾服务器安装Xinference详细记录,310P NPU慎用!

华为昇腾服务器安装Xinference详细记录


注意:截止2025年4月14日,310P3 NPU,Xinference社区版推理LLM速度非常慢,建议安装MindIE( 跳转

!!!无特别需求,尽量都选用MindIE。亲测MindIE性能 > vllm-ascend。!!!

目前vllm支持情况:
Currently, ONLY Atlas A2 series (Ascend-cann-kernels-910b) are supported:
Atlas A2 Training series (Atlas 800T A2, Atlas 900 A2 PoD, Atlas 200T A2 Box16, Atlas 300T A2)
Atlas 800I A2 Inference series (Atlas 800I A2)
Below series are NOT supported yet:
Atlas 300I Duo、Atlas 300I Pro (Ascend-cann-kernels-310p) might be supported on 2025.Q2
Atlas 200I A2 (Ascend-cann-kernels-310b) unplanned yet
Ascend 910, Ascend 910 Pro B (Ascend-cann-kernels-910) unplanned yet

开始安装

在这里插入图片描述

Xinference需要配置驱动、torch、torch-npu等环境,最简单的方法是套用MindIE镜像。省略下载容器,详情见(跳转

启动容器

docker run -it -d --net=host --shm-size=1g  \
    --name Xinf \
    --device /dev/davinci0 \
    --device /dev/davinci1 \
    --device /dev/davinci2 \
    --device /dev/davinci3 \
    --device /dev/davinci4 \
    --device /dev/davinci5 \
    --device /dev/davinci6 \
    --device /dev/davinci7 \
    --device /dev/davinci_manager \
    --device /dev/devmm_svm \
    --device /dev/hisi_hdc \
    -v /usr/local/dcmi:/usr/local/dcmi \
    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
    -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
    -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
    -v /etc/ascend_install.info:/etc/ascend_install.info \
    -v /data/modelscope/hub/models/deepseek-ai:/data/models \
    -it  swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie:1.0.0-300I-Duo-py311-openeuler24.03-lts bash

进入容器

docker exec -it Xinf bash

查看显卡是否正常:
在这里插入图片描述
运行如下命令查看,如果正常运行,会打印昇腾 NPU 的个数。

python -c "import torch; import torch_npu; print(torch.npu.device_count())"

开始安装Xinference

pip3 install xinference -i https://pypi.tuna.tsinghua.edu.cn/simple

版本参考:
torch 2.1.0+cpu
torch-npu 2.1.0.post10
torchvision 0.16.0
xinference 1.4.1

启动Xinference

xinference-local --host 0.0.0.0 --port 9997
后台运行:
nohup xinference-local --host 0.0.0.0 --port 9997 > xinference.log 2>&1 &

启动成功!

Xinf启动模型

在这里插入图片描述

测试

curl -X 'POST' \
  'http://127.0.0.1:9997/v1/chat/completions' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "DS14b",
    "stream": true,
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "What is the largest animal?"
        }
    ]
  }'

Xinference配置如下:
在这里插入图片描述
在这里插入图片描述

推理测试

正常!但是非常非常非常非常非常慢,根本不能使用。
如果你是310P NPU最好就是使用MindIE了。
Xinference企业版或升级昇腾的训练卡NPU? 成本较高了!
在这里插入图片描述
参考链接:
https://github.com/Ascend/pytorch/issues/49

### 部署YOLOv8模型于华为昇腾平台 #### 准备工作环境 为了在华为昇腾平台上成功部署YOLOv8模型,首先需要准备适当的工作环境。这包括安装必要的软件包以及获取所需的硬件资源。 - 安装依赖库和工具链,确保环境中已配置好Python解释器及其相关开发库。 - 下载并编译适用于昇腾系列处理器的SDK和支持库[^4]。 #### 获取YOLOv8模型权重文件 考虑到网络连接可能不稳定或较慢,在开始之前应当预先下载好YOLOv8模型的`.pt`格式权重文件,并将其放置在一个易于访问的位置。这样可以在后续过程中直接引用本地路径来加载模型,从而提高效率。 ```bash wget -O yolov8n-seg.pt https://example.com/path_to_yolov8_weights # 假设这是官方提供的链接地址 ``` #### 转换模型至适配昇腾架构的形式 由于昇腾AI处理器具有特定的数据表示形式(如INT8),因此有必要将原始浮点型参数转换为目标设备所支持的低精度版本。此过程通常涉及使用ATC (Ascend Tensor Compiler) 工具完成模型离线压缩与优化操作[^1]。 ```bash atc --model=yolov8n-seg.onnx --framework=5 --output=yolov8n-seg --input_format=NCHW --input_type=FP32 --soc_version=Ascend310P3 --insert_op_conf=aipp.cfg ``` > **注意**: 上述命令中的具体选项需依据实际情况调整;特别是关于SOC型号的选择应严格匹配实际使用的昇腾芯片类型。 #### 编写推理程序 编写一段简单的Python脚本来调用经过处理后的YOLOv8模型执行图像分割任务。这里假设已经完成了前面提到的各项准备工作: ```python from mindspore import context, load_checkpoint, export import numpy as np from PIL import Image import time context.set_context(mode=context.GRAPH_MODE, device_target="Ascend") def preprocess(image_path): img = Image.open(image_path).convert('RGB') img_resized = img.resize((640, 640)) img_array = np.array(img_resized)/255. input_data = np.expand_dims(img_array.transpose(2, 0, 1), axis=0).astype(np.float32) return input_data if __name__ == '__main__': model_file = "yolov8n-seg.mindir" net = ... # 加载mindir格式的YOLOv8模型 test_images = ["data/images/huawei.jpg", "data/images/bus.jpg", "data/images/dog.jpg"] for image in test_images: inputs = preprocess(image) start_time = time.time() outputs = net(inputs) end_time = time.time() print(f"Inference Time: {round(end_time-start_time, 4)} seconds.") # 处理输出结果... ``` 上述代码片段展示了如何利用MindSpore框架读取图片数据、对其进行预处理后送入神经网络进行预测计算的过程。需要注意的是,此处省略了一些细节实现部分,比如具体的类定义等[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值