最近在研究基于Intel A770的多卡部署DeepSeek 32B的方案,碰到一些坑,记录一下。
首先是基于x99芯片的老旧Intel Xeon主板方案,速度跑不起来,每秒只有2-3个Token。
其次是基于B780芯片的AMD主板方案,单卡速度可跑到40个Token左右,但双卡,模型跑不起来。
一、操作系统版本
Intel官方推荐的操作系统是ubuntu-22.04.1-desktop-amd64.iso ,我测试过ubuntu-22.04.1-desktop-amd64.iso 与ubuntu-22.04.5-desktop-amd64.iso ,都没有问题。
二、显卡检测
输入lspci 命令,可以查找Intel的显卡,说明硬件接电没有问题
lspci |grep 56a0
三、安装SSH\VIM\LRZSZ
openssh-server是给SSH远程管理用的,vim是编辑文件用的,lrzsz是上传下载小于4G文件用的
sudo apt install openssh-server vim lrzsz
四、安装arc a770驱动
wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | sudo gpg --yes --dearmor --output /usr/share/keyrings/intel-graphics.gpg ~$ echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy/lts/2350 unified" | sudo tee /etc/apt/sources.list.d/intel-gpu-jammy.list
sudo apt update
五、调整内核
安装完ubuntu,内核一般会是6.8.x,比官方的6.5.0要高,故我们要降内核到官方指定版本6.5.0-35
~$ sudo apt-get install -y linux-image-6.5.0-35-generic linux-headers-6.5.0-35-generic linux-modules-6.5.0-35-generic linux-modules-extra-6.5.0-35-generic ~$ sudo apt install intel-i915-dkms ~$ sudo vim /etc/default/grub GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.5.0-35-generic" ~$ sudo update-grub ~$ sudo reboot
六、安装Intel计算、媒体、显示运行库
sudo apt install -y intel-opencl-icd intel-level-zero-gpu level-zero intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2 libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm12 libxatracker2 mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all vainfo hwinfo clinfo
七、调整当前用户权限
官方文档$(USER)内容是错误的,我已纠正,也有其它博文把$(USER)手工替换为真实用户名
sudo gpasswd -a $USER render sudo newgrp render
八、验证驱动
如果使用以下命令不能显示内容的话,退出当前用户登录后,再重新登入一下
clinfo | grep "Driver Version" Driver Version 23.43.27642.67
九、xpu-smi监控工具安装
wget https://github.com/intel/xpumanager/releases/download/V1.2.27/xpu-smi_1.2.27_20240103.051106.5eeb3f13.u22.04_amd64.deb --no-check-certificate ~$ sudo apt install ./xpu-smi_1.2.27_20240103.051106.5eeb3f13.u22.04_amd64.deb ~$ sudo xpu-smi discovery
十、设置docker仓库
sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
十一、安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
十二、Docker镜像加速
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "http://hub-mirror.c.163.com", "https://mirrors.tuna.tsinghua.edu.cn", "http://mirrors.sohu.com", "https://ustc-edu-cn.mirror.aliyuncs.com", "https://ccr.ccs.tencentyun.com", "https://docker.m.daocloud.io", "https://docker.awsl9527.cn" ] } EOF sudo systemctl daemon-reload && systemctl restart docker
十三、Docker测试
sudo docker run hello-world
十四、安装vLLM的docker版本
docker pull intelanalytics/ipex-llm-serving-xpu:2.2.0-b11
十五、下载deepseek模型
git clone https://hf-mirror.com/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B
十六、制作启动脚本
#!/bin/bash export DOCKER_IMAGE=intelanalytics/ipex-llm-serving-xpu:2.2.0-b11 export CONTAINER_NAME=llm-backend docker rm -f $CONTAINER_NAME sudo docker run -itd \ --privileged \ --net=host \ --device=/dev/dri \ --name=$CONTAINER_NAME \ -v /model:/model \ -e no_proxy=localhost,127.0.0.1 \ --shm-size="30g" \ $DOCKER_IMAGE
#!/bin/bash model="/model/DeepSeek-R1-Distill-Qwen-14B" served_model_name="DeepSeek-R1-Distill-14B" gpu_num=2 #low_bit=asym_int4 export CCL_WORKER_COUNT=2 export SYCL_CACHE_PERSISTENT=1 export FI_PROVIDER=shm export CCL_ATL_TRANSPORT=ofi export CCL_ZE_IPC_EXCHANGE=sockets export CCL_ATL_SHM=1 export USE_XETLA=OFF export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=2 export TORCH_LLM_ALLREDUCE=0 export CCL_SAME_STREAM=1 export CCL_BLOCKING_WAIT=0 #source /opt/intel/1ccl-wks/setvars.sh #export CCL_DG2_ALLREDUCE=1 #export LD_LIBRARY_PATH=/opt/intel/1ccl-wks/lib:$LD_LIBRARY_PATH python -m ipex_llm.vllm.xpu.entrypoints.openai.api_server \ --served-model-name $served_model_name \ --port 8001 \ --model $model \ --trust-remote-code \ --gpu-memory-utilization 0.9 \ --device xpu \ --dtype float16 \ --enforce-eager \ --load-in-low-bit fp8 \ --max-model-len 8000 \ --max-num-batched-tokens 8000 \ --max-num-seqs 32 \ --api-key intel123 \ --tensor-parallel-size 2 \ --disable-async-output-proc \ --distributed-executor-backend ray
#!/bin/bash export DOCKER_IMAGE=ghcr.io/open-webui/open-webui:main export CONTAINER_NAME=llm-frontend docker rm -f $CONTAINER_NAME docker run -itd \ --net host \ -e OPENAI_API_KEY=intel123 \ -e OPENAI_API_BASE_URL=http://127.0.0.1:8001/v1 \ -v open-webui:/app/backend/data \ --name $CONTAINER_NAME \ --restart always $DOCKER_IMAGE
十六、导入openewbui应用
sudo docker load -i openwebui.tar.gz
十七、启动服务
~$ sudo bash create-llm.sh ~$ sudo docker exec llm-backend bash /model/ds.sh ~$ sudo bash create-ui.sh
十八、DeepSeek使用
#浏览器访问以下地址,填写邮箱与密码注册一下(系统提示帐户是存在本地的) http://192.168.110.189:8080/
进入到OpenWebUI界面后,在左上角,设置一下大模型为deepSeek-R1-Distill-14B,然后就可以开启对话了。目前1秒约2-3个token,监控发现没有使用CPU。
声明:欢迎大家光临本站,学习IT运维技术,转载本站内容,请注明内容出处”来源刘国华教育“。如若本站内容侵犯了原著者的合法权益,请联系我们进行处理。