1. 项目背景与目标解析
这次在OpenI启智社区BW1000 DCU平台上尝试用llama.cpp推理Qwen3-Coder-30B-A3B-Instruct-AWQ模型的经历,可以说是一次典型的"边缘硬件适配大模型"的实战案例。BW1000作为国产DCU加速卡,其架构与常见的NVIDIA GPU存在显著差异,而Qwen3-Coder-30B作为代码生成专用的大语言模型,对硬件资源的需求又极为苛刻。这种组合本身就构成了一个极具挑战性的技术实验。
我的核心目标是验证三个技术假设:
- 在非CUDA生态的国产加速硬件上,llama.cpp这种轻量级推理框架能否正常运行30B级别的大模型
- AWQ量化后的模型在DCU上的实际推理效能
- 国产硬件平台对大模型开源生态的兼容性现状
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与技术栈选型
2.1 硬件平台特性
BW1000 DCU基于Matrix 2000架构,拥有32GB HBM2显存,FP16算力约15.7TFLOPS。与NVIDIA GPU相比,其显著特点是:
- 采用自主指令集架构
- ROCm生态支持有限
- 内存带宽优势明显(1.2TB/s)
2.2 软件环境配置
- 操作系统:OpenI提供的Kylin V10镜像
- 基础环境:
bash复制# DCU驱动安装 sudo apt install dcu-driver # ROCm工具链 wget https://repo.radeon.com/rocm/apt/5.7/pool/main/r/rocm-llvm/rocm-llvm5.7.0_1.0.0.50500-63~22.04_amd64.deb sudo dpkg -i rocm-llvm*.deb
2.3 模型与工具选择
- 模型:stelterlab/Qwen3-Coder-30B-A3B-Instruct-AWQ
- AWQ量化后的30B参数代码生成模型
- 原始精度FP16,量化后INT4
- 推理框架:llama.cpp v2.6.0
- 选择原因:对非CUDA硬件支持较好
- 关键编译参数:
bash复制
make LLAMA_DCU=1 LLAMA_DCU_TARGET=bw1000 -j
