# 拿到海光DCU先做什么?3步快速验证环境+跑通第一个大模型
很多朋友刚拿到DCU服务器或者超算账号,第一反应不知道从哪下手:要么直接乱装包踩一堆版本坑,要么服务跑不起来不知道问题出在哪。这篇做个浅度实操指南,从环境校验到跑通第一个大模型,代码直接复制就能用,新手也能快速上手。
## 一、1分钟一键校验基础环境
跑模型之前先确认环境基线,DTK版本、驱动、PyTorch三者只要有一个对不上,就会出现“能启动但跑不快”甚至直接报错的问题。
把下面这段保存成`check_env.sh`直接运行,能一次性查完核心项:
```bash
#!/bin/bash
echo "===== 1. DCU硬件状态 ====="
rocm-smi --showuse | head -10
echo -e "\n===== 2. DTK编译器版本 ====="
hipcc --version 2>/dev/null | grep "HIP version" || echo "未找到hipcc,请检查DTK环境变量"
echo -e "\n===== 3. PyTorch设备识别 ====="
python3 << 'EOF'
import torch
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA可用状态: {torch.cuda.is_available()}")
print(f"检测到DCU数量: {torch.cuda.device_count()}")
if torch.cuda.is_available():
prop = torch.cuda.get_device_properties(0)
print(f"设备名称: {prop.name}")
print(f"总显存: {prop.total_mem / 1024**3:.1f} GB")
EOF
```
正常输出会显示DCU卡数、显存大小、PyTorch版本。如果`torch.cuda.is_available()`返回False,优先检查DTK环境变量是否加载,以及PyTorch版本是否和DTK匹配。
## 二、10行代码跑通第一个大模型
DCU对PyTorch的兼容度很高,标准模型的推理代码基本不用改,把原来CUDA环境的代码搬过来就能跑。下面以Qwen2-1.8B为例,完整代码可直接运行:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
# 加载模型与分词器
model_path = "Qwen/Qwen2-1.8B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(
model_path,
torch_dtype="float16", # 半精度节省显存,DCU原生支持
device_map="auto" # 自动分配到DCU设备
)
# 推理生成
prompt = "请简单介绍海光DCU的主要用途"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=200, temperature=0.7)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```
不需要改任何设备接口,代码里依然写`"cuda"`,底层会通过ROCm适配层自动调度到DCU上,这也是DCU迁移成本低的核心原因。
## 三、新手必避的2个入门坑
### 1. 不要直接pip install torch
普通PyTorch默认适配CUDA,装到DCU环境里会识别不到设备。一定要用对应DTK版本的适配wheel包,比如DTK 26.04对应ROCm 6.x的PyTorch安装包,版本错了大概率跑不起来。
### 2. 运行前先加载DTK环境变量
很多环境里DTK不会默认加载,直接跑代码会报库找不到。可以把下面两行加到`~/.bashrc`里,或者脚本开头:
```bash
export PATH=/opt/dtk/bin:$PATH
export LD_LIBRARY_PATH=/opt/dtk/lib:/opt/dtk/lib64:$LD_LIBRARY_PATH
```
路径根据实际DTK安装位置调整,超算平台通常在`/public/software/compiler/rocm/`目录下。
## 最后一点感受
浅度使用下来,DCU的入门门槛其实很低:标准模型、常规推理基本能做到无缝迁移,不用大改代码。真正的门槛集中在自定义算子、深度性能调优、小众依赖适配这些进阶场景。如果只是做常规大模型部署、微调,只要版本对齐,一周内完全可以完成从环境搭建到生产上线。