(FPT2025)AMD Turtorial
Dec 10, 2025
Vitis 工具链的底层重构与系统设计创新
Vitis Unified IDE 的架构重构
- 框架迁移:从旧版专有框架迁移到 Eclipse Theia (前端)+ Electron。这意味着 Vitis 现在是一个基于现代 Web 技术的轻量级 IDE, 与 VS Code 的体验类似
- 数据驱动:所有的组件原数据从二进制 JSON/YAML 格式,极大地友好了版本控制(git)
- 现代化 CLI:命令行接口全面采取 python 语言,便于脚本化和自动化
硬件描述的新标准——System device Tree (SDT)
- 创新点:废弃了使用了十几年的
.xsa(Xilinx Shell Archive)硬件描述文件 - 贡献:引入了 SDT(
.dts/dtsi)。这是嵌入式 Linux 的标准,现在被 AMD 用来描述整个 FPGA/SoC 硬件(包括内存映射、处理器集群) - 工具链支持:引入“Lopper”工具,专门用于读取 SDT 并自动生成驱动配置和 BSP,实现了真正的“系统感知(System Aware)”
异构系统设计的关键突破:分段配置(Segmented Cofiguration)
以前在 Versal 等平台上,如果想修改 AI 引擎(AIE)或 PL(可编程逻辑)部分,往往需要重新打包整个系统镜像并重启 Linux
- 创新: 实现了 PS 与 PL/AIE 的解耦
- Flat Flow vs. Segmented Configuration: 传统的 Flat Flow 是一次性加载所有内容。新的分段配置允许 PS 和 DDR NoC 先启动(运行 Linux),然后将 PL 和 AI 引擎的数据作为“独立荷载”加载
- 技术实现:Host App 可以直接读取
xclbin中元数据,并通过fpga_util等工具在 Linux 运行时动态加载pl.pdi
Vitis HLS 等“性能驱动”开发方法论
Performance Pragma (性能编译指令)
- 开发者需要手动组合 PIPELINE,UNROLL. ARRAY_PARTITION (数组分区)等数十种 Pragma。这需要深厚的硬件知识、一旦更换芯片,所有的 Pragma 可能都需要重写
- 引入
pragma HLS performance target_ti=…(Target Transcation Interval)- 自动化推导:用户只需要告诉编译器:“我想在 300 MHz”下每秒处理 140 帧图像(即 TI=2142857 周期)。编译器会自动计算并插入底层的 pipeline/unroll 指令来满足这个目标
- 反向注解:工具自动生成的优化指令可以被导出,反写回用户的源码或配置文件中,供专家级用户进行二次微调
自动化的循环分析
- 创新点:C-sim Profilling with Loop Trip Counts
- 细节:以前处理动态循环,用户必须手动告诉工具循环次数。现在,Vitis 可以在 C 仿真阶段自动捕获循环的运行次数,并将其作为性能估算的依据,无需人工干预
性能成果
53 个设计可以成功达到 500MHZ
LLM 辅助 EDA 设计
直接问 LLM 写 HLS 代码行不通,必须采用“元提示”(Meta Prompting)策略,并发布了基于 AI 的新工具链
LLM 在 HLS 中的局限与突破
- 实验背景: 基于中国 FPGA 竞赛(HLS 赛道),154 份有效提交,学生使用 GPT-4/DeepSeek 优化 SHA256, LZ4, Cholesky 等算法。
- 关键发现:
- Zero-Shot (直接提问) 失败率高: LLM 对 HLS 这种“类 C 但非 C”的语法理解很差,经常生成不仅无法综合,甚至破坏数据依赖(Data Dependency)的代码。
- 创新——Meta Prompting (元提示):仅仅把 LLM 当编码器是不够的,必须把它当作“架构师”
- Task-Level Prompt: 强制 LLM 采用 Load-Compute-Store(LCS)架构模式,将顺序代码重构为数据流(Dataflow)形式
- Data-Level Prompt: 注入知识库,在 Prompt 中包含 Vitis HLS 官方文档的精简版(例如:解释
cyclic分区和clock分区的区别)让 LLM 基于规则写代码
- Data-Level Prompt: 注入知识库,在 Prompt 中包含 Vitis HLS 官方文档的精简版(例如:解释
- Task-Level Prompt: 强制 LLM 采用 Load-Compute-Store(LCS)架构模式,将顺序代码重构为数据流(Dataflow)形式
- 成果: 采用 Meta Prompting 的学生,其设计性能比基线提升了 6.5 倍。
Vitis IDE 的 AI 路线图 (CRAI)
- 2025.2 (Early Access): BYOK (Bring Your Own Key) 模式。允许用户在 Vitis IDE 内直接挂载自己的 OpenAI/Local LLM API key,实现代码解释和辅助。
- 2026.1 (Future):
- AI Performance Budgeter: AI 自动分析性能瓶颈并分配时序预算。
- RAG Chatbot: 基于 AMD 官方文档训练的专用问答机器人(解决通用大模型幻觉问题)。
端侧 AI (Edge AI) 与具身智能 (Robotics)
创新主旨: 利用 AMD 独有的“大统一内存”架构,打通从云端训练到边缘部署的完整链路,解决机器人领域的 Sim2Real 难题。
1.硬件创新:Ryzen AI Max (Strix Halo) 的架构优势
- 核心参数: 40 CU GPU + 50 TOPS NPU。
- 杀手级特性:128GB 统一内存 (Unified Memory)。
- 对比竞品: 传统的 CPU+独立显卡架构,数据需要在内存和显存之间通过 PCIe 搬运,不仅慢而且受限于显存大小(通常仅 16GB-24GB)。
- 贡献: Ryzen AI 允许 CPU、GPU 和 NPU 共享这 128GB 内存。这意味着可以在笔记本/Mini PC 这种边缘设备上,直接加载运行 70B(700亿参数)级别的超大模型,无需量化或剪枝。
2.具身智能全栈工作流 (The Embodied AI Pipeline)
AMD 展示了一套完整的机器人开发闭环:
- Step 1 云端训练: 使用 Instinct MI300 集群训练 OpenVLA (Vision-Language-Action) 模型。
- Step 2 物理仿真: 使用开源仿真器 Genesis。
- 创新: 该仿真器支持 AMD GPU 加速,可以在虚拟环境中并行训练数千个机器人代理(Agent),例如训练机器狗走过崎岖地形。
- Step 3 Sim2Real (仿真到现实):
- 难点: 仿真图像与真实世界有色差和纹理差异(Domain Gap)。
- 解决方案: 使用 Ryzen AI 收集少量真实数据,进行域适应 (Domain Adaptation) 微调。
- Step 4 边缘部署: 将微调后的 VLA 模型部署在搭载 Ryzen AI 的机械臂控制柜中,实现对动态物体的抓取和操作。
3. 学术生态支持 (Ryzers & AIPC Cluster)
- AIPC Cluster: 演示了一种低成本方案,用 20+ 个 Mini PC 组成集群,功耗低、噪音小,但总显存极大,适合实验室环境。
- Ryzers: 这是一个开源项目,提供了预配置好的 Docker 容器,包含 ROS2、PyTorch、Triton 等全套环境,解决环境配置难的问题
参考资料
*PPT 及其图示来自 FPT 2025 AMD Turtorial
