部署视频见:学习路径内页 – 光合开发者社区
服务器:DCU兼容服务器,以X7840H0为例
CPU:c86-3G
DCU:DCU K100 64G / DCU Z100L 32G
OS:见DCU OS兼容手册
环境依赖 :
驱动版本:rock-5.7.1-6.2.26(6.2.18以后的版本)
docker版本:>18.01
基础环境部署 :
驱动安装:
1、安装依赖:
centos:yum install -y rpm-build gcc-c++ cmake automake elfutils-libelf-devel libdrm libdrm-devel pciutils
ubuntu:apt install -y gcc g++ cmake automake libelf-dev libdrm_amdgpu1或libdrm-amdgpu1 libtinfo5 pciutils libdrm-dev
Centos:yum install -y kernel-devel-`uname -r` kernel-modules-extra
ubuntu:apt install -y linux-headers-`uname -r` linux-modules-extra/
2、安装驱动
安装流程
1) 下载驱动,下载地址:https://download.sourcefind.cn:65024/6/main/latest%E9%A9%B1%E5%8A%A8
2)修改驱动权限 chmod +x rock*.run
3)安装驱动
./rock*.run
4)重启下驱动服务
systemctl restart hymgr
5)如有升级vbios 需要重启服务器
docker安装:
配置docker yum源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
安装docker安装包
yum install docker-ce docker-ce-cli containerd.io
启动docker服务,设置开机自启动
systemctl enable docker
systemctl restart docker
普通用户需要添加到docker用户组中
usermod -aG docker username
***** 该部分在 2.3 的镜像中已集成,可直接跳至 2.4 章节 *****
环境准备:
下载基础镜像:
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-py3.10-dtk24.04.3-ubuntu20.04
创建容器:
docker run -dit --network=host --name=deepseek_test --privileged --device=/dev/kfd --device=/dev/dri --ipc=host --shm-size=128G --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -u root --ulimit stack=-1:-1 --ulimit memlock=-1:-1 -v /opt/hyhal:/opt/hyhal:ro -v `pwd`:/your_workspace image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-py3.10-dtk24.04.3-ubuntu20.04
下载源码:
进入容器:
docker exec -it deepseek_test bash
下载源码
git clone -b 0.5.7 http://developer.sourcefind.cn/codes/OpenDAS/ollama.git
cd ollama
编译安装:
安装go 环境
wget https://golang.google.cn/dl/go1.23.4.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.23.4.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
# 修改go下载源,提升速度(按需设置)
go env -w GOPROXY=https://goproxy.cn,direct
编译
export LIBRARY_PATH=/opt/dtk/lib:$LIBRARY_PATH
make -j 16
go build .
验证
rocminfo |grep gfx #查询当前机器的gfx参数,确定设备型号
export HSA_OVERRIDE_GFX_VERSION=设备型号(使用上一行命令的输出结果进行声明,通常来说Z100L gfx906对应9.0.6;K100 gfx926对应9.2.6;K100AI gfx928对应9.2.8,具体设备型号以当前机器的rocminfo | grep gfx的结果为准)
export HIP_VISIBLE_DEVICES=所有设备号(0,1,2,3,4,5,6,...)/选择设备号
./ollama serve (选择可用设备,可通过上条命令输出结果查看)
llama.cpp:是完全基于C/C++
实现的代码库,具有较好的跨平台兼容性,能够在多种计算设备(如CPU、英伟达GPU、AMD GPU 以及苹果芯片)上运行。此外,llama.cpp 还支持多种量化精度,范围从1.5比特到8比特不等,能够显著降低显存消耗。
使用ollama推理的时候需要将模型参数合并,这里用到llama-gguf-split,安装方式如下
方式一 直接安装
安装homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install llama.cpp
方式二 源码编译安装
apt-get update
apt-get install build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build
cmake --build build --config Release –-target llama-gguf-split
cp ./build/bin/llama-gguf-split /usr/bin
加载deepseek环境镜像,该镜像已集成了ollama环境(2.2步可省略)
docker load -i deepseek_r1_*.tar.gz
创建容器
docker run -dit --network=host --name=deepseek_test --privileged --device=/dev/kfd --device=/dev/dri --ipc=host --shm-size=128G --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -u root --ulimit stack=-1:-1 --ulimit memlock=-1:-1 -v /opt/hyhal:/opt/hyhal:ro -v `pwd`:/data deepseek_r1:latest
# 进入容器,运行serve
rocminfo |grep gfx #查询当前机器的gfx参数,确定设备型号
export HSA_OVERRIDE_GFX_VERSION=设备型号(使用上一行命令的输出结果进行声明,通常来说Z100L gfx906对应9.0.6;K100 gfx926对应9.2.6;K100AI gfx928对应9.2.8,具体设备型号以当前机器的rocminfo | grep gfx的结果为准)
export ROCR_VISIBLE_DEVICES=所有设备号(0,1,2,3,4,5,6,...)/选择设备号
cd /home/ollama
./ollama serve (选择可用设备,可通过上条命令输出结果查看)
模型下载采用的是魔搭社区中的模型,里面包含了不同的量化结果的模型,地址为:https://www.modelscope.cn/models/unsloth/DeepSeek-R1-GGUF/files
下载模型
```python脚本,这边以DeepSeek-R1-UD-IQ1_M量化模型为例
from modelscope import snapshot_download
model_dir = snapshot_download(
'unsloth/DeepSeek-R1-GGUF',
allow_patterns=['DeepSeek-R1-UD-IQ1_M/*'] # 只下载这个目录的文件
)
print(f"模型下载目录:{model_dir}")
执行模型合并,将其合并为一个gguf文件并保存为DeepSeek-R1-UD-IQ1_S.gguf
llama-gguf-split --merge DeepSeek-R1-UD-IQ1_M-00001-of-00004.gguf DeepSeek-R1-UD-IQ1_S.gguf
另起一个窗口,创建Modelfile文件,内容如下
FROM <deepseek模型路径>/DeepSeek-R1-UD-IQ1_S.gguf
PARAMETER temperature 0.1
PARAMETER num_ctx 2048
TEMPLATE "<|User|>{{ .Prompt }}<|Assistant|>"
创建模型镜像
cd ollama
./ollama create deepseek_r1_q1 -f Modelfile地址/Modelfile
## deepseek_r1_q1为模型镜像名称
查看模型镜像
./ollama list
其他模型镜像可以通过ollama官方镜像仓库下载获得:https://ollama.com/library/deepseek-r1。

可以通过./ollama pull deepseek-r1:7b 类似命令获取模型镜像。
./ollama run deepseek_r1_q1 -–verbose
## --verbose参数帮助查看性能工具,可不加
| docker镜像名称 | 镜像地址 |
|---|---|
| deepseek_r1_q1_K100.tar.gz | 链接https://pan.baidu.com/s/1KdAE6pCLSIfYcK_OO2QqyQ 提取码:uaey |
| z100_deepseek_r1.tar.gz | 链接:https://pan.baidu.com/s/1BJ3UhV4ApSQJ0G3Fd4GY7w?pwd=ihdq 提取码:ihdq |

暂无数据
root@gnode-dcu-01:/home/ollama# ./ollama serve
export HSA_OVERRIDE_GFX_VERSION=设备型号(使用上一行命令的输出结果进行声明,通常来说Z100L gfx906对应9.0.6;K100 gfx926对应9.2.6;K100AI gfx928对应9.2.8,具体设备型号以当前机器的rocminfo | grep gfx的结果为准)
export ROCR_VISIBLE_DEVICES=所有设备号(0,1,2,3,4,5,6,...)/选择设备号
对上面描述还有写不明白,我服务器配的是2块DCU Z100L
export HSA_OVERRIDE_GFX_VERSION=gfx906
还是
export HSA_OVERRIDE_GFX_VERSION=9.0.6
export ROCR_VISIBLE_DEVICES=设备号,这个设备号是怎么确定的,
是写成下面这样吗
export ROCR_VISIBLE_DEVICES=0,1你好,跟着视频走的,最后创建ollama镜像的时候报错Error: path or modelfile are required
是什么原因,文件和路径没有问题有K100/Z100部署vllm的蒸馏模型的教程吗