From cf3301fdeab680f36adf4594f1422aba7f14895f Mon Sep 17 00:00:00 2001 From: Hao Feng Date: Mon, 14 Apr 2025 10:43:23 +0800 Subject: [PATCH] =?UTF-8?q?Hygon=20Arch=20Sig:=20=E5=A2=9E=E5=8A=A0CSV?= =?UTF-8?q?=E8=99=9A=E6=8B=9F=E6=9C=BA=E5=92=8CDCU=E4=BC=A0=E8=BE=93?= =?UTF-8?q?=E5=8A=A0=E5=AF=86=E7=9A=84=E6=B5=8B=E8=AF=95=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...346\234\272\347\233\264\351\200\232DCU.md" | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/4-\346\265\213\350\257\225CSV\350\231\232\346\213\237\346\234\272\347\233\264\351\200\232DCU.md" "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/4-\346\265\213\350\257\225CSV\350\231\232\346\213\237\346\234\272\347\233\264\351\200\232DCU.md" index 17be7a0a..017d4e0e 100644 --- "a/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/4-\346\265\213\350\257\225CSV\350\231\232\346\213\237\346\234\272\347\233\264\351\200\232DCU.md" +++ "b/sig/Hygon Arch/content/2-CSV\346\265\213\350\257\225\346\226\207\346\241\243/3-\350\231\232\346\213\237\346\234\272/4-\346\265\213\350\257\225CSV\350\231\232\346\213\237\346\234\272\347\233\264\351\200\232DCU.md" @@ -1,7 +1,7 @@ 测试之前,请参考[2-1-安装CSV软件](https://openanolis.cn/sig/Hygon-Arch/doc/865622260278236994?lang=zh)准备软件环境。 ## 功能描述 -某些应用场景需要在CSV虚拟机中运行图像识别、机器学习等算法,这些场景下使用DCU加速卡可以极大地提高计算性能,CSV虚拟机支持设备直通,可以将DCU卡直通给CSV虚拟机使用。 +某些应用场景需要在CSV虚拟机中运行图像识别、机器学习等算法,这些场景下使用DCU加速卡可以极大地提高计算性能,CSV虚拟机支持设备直通,可以将DCU卡直通给CSV虚拟机使用。CSV虚拟机和DCU卡之间通过PCIE总线传输数据,传输的数据被DCU软件栈加密,密钥由安全处理器管理。DCU支持显存隔离功能,用户数据放在隔离显存中处理,SDMA无法访问。 ## 测试CSV虚拟机使用DCU卡 @@ -57,6 +57,56 @@ $ sudo qemu-system-x86_64 -name csv-vm --enable-kvm -cpu host -m 10240 -hda /opt # make clean;make # ./vectoradd_hip.exe ``` + +## 在CSV虚拟机中测试DCU传输加密和显存隔离 + +**测试以K100 DCU卡为例,如果使用其他型号的DCU卡请联系海光获取对应的软件栈。** + +### 更新DCU驱动 + +``` +# scp host@hostip:/opt/hygon/csv/dcu/k100_update_driver.sh /root/ +# scp host@hostip:/opt/hygon/csv/dcu/k100_update_dtk.sh /root/ +# chmod +x /root/k100_update_driver.sh +# chmod +x /root/k100_update_dtk.sh +# cd /root +# ./k100_update_driver.sh +``` + +### 更新VBIOS + +``` +# cd /opt/hyhal/vbios +# ./hyflash --index 0 --update ./KM/ai-k100-8275-5.715.001200k.618009-dcurom.bin +# reboot +``` + +### 部署大模型 + +``` +# systemctl start docker +# docker pull image.sourcefind.cn:5000/dcu/admin/base/custom:vllm0.5.0-dtk24.04.1-ubuntu20.04-py310-20250225 +# docker run --name dcu_vllm -it --privileged --shm-size=8G --device=/dev/kfd --device=/dev/dri/ --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --ulimit memlock=-1:-1 --ipc=host --network host --group-add video -v /opt/hyhal:/opt/hyhal -v /root:/root image.sourcefind.cn:5000/dcu/admin/base/custom:vllm0.5.0-dtk24.04.1-ubuntu20.04-py310-20250225 /bin/bash +# cd /root/ +# ./k100_update_dtk.sh +# python3 -m vllm.entrypoints.api_server --model Qwen/Qwen2.5-3B --tensor-parallel-size 1 --gpu-memory-utilization 0.9 --trust-remote-code --dtype auto --enforce-eager +``` + +### 调用大模型 +``` +# docker exec -it dcu_vllm /bin/bash +# curl http://localhost:8000/generate -H "Content-Type: application/json" -d '{"prompt": "hello","max_tokens": 128,"temperature": 0.7}' +``` + +### 检查软件栈中的加密日志 + +CPU和DCU之间传输的数据被软件栈加密,可以看到如下的日志输出。 + +``` +Transfer data from CPU to DCU, Data size: 0x5d800, Encrypt using SM4 +Transfer data from DCU to CPU, Data size: 0x800, Encrypt using SM4 +``` + ## 测试 DCU Attestation 功能 (DCU远程身份认证功能) ### 背景 从深算二号(K100-AI)开始,海光DCU开始支持Attestation(身份认证)功能。
-- Gitee