张大妈

🌉 一座桥梁连接 N 卡与 A 卡:IRIS

源自小红薯:👾AI学徒(AI Infra版

02-03 18:53

为 NVIDIA 和 AMD GPU 分别编写 CUDA 和 HIP 代码一直是高性能计算领域的痛点。AMD 推出的 IRIS 作为一个嵌入式 DSL,旨在解决这一割裂问题。它允许开发者用一次逻辑,自动生成跨平台的高性能 C++ 代码,为跨硬件计算提供了全新的、更高效的路径。

🌉 一座桥梁连接 N 卡与 A 卡:IRIS智能速览

  • IRIS 是 AMD 推出的一个嵌入式 Python DSL。

  • 它可一次编写逻辑,自动生成跨硬件的优化 C++ 代码。

  • 其 Tick-Tock 模型能自动处理数据加载与计算重叠。

  • 内置符号代数引擎能自动简化复杂的索引计算。

  • 在 AMD MI300X 上,其 GEMM 性能超越了官方 rocBLAS 库。

  • IRIS 为跨平台高性能计算提供了优雅的解法。

🌉 一座桥梁连接 N 卡与 A 卡:IRIS精华内容

IRIS 的核心魅力在于它如何将复杂的底层优化抽象化,让开发者专注于上层逻辑。它通过几项关键技术,实现了性能与开发效率的完美统一。

核心理念

IRIS 的核心是一个嵌入在 Python 中的领域特定语言(DSL)。开发者不再需要为 NVIDIA 的 CUDA 和 AMD 的 HIP 分别维护代码库。只需用 IRIS 编写一次计算逻辑,其编译器就能自动将其转化为针对不同 GPU 平台优化的高性能 C++ 源码,并编译执行,彻底解决了跨平台开发的代码割裂问题。

Tick-Tock模型

为了最大化硬件利用率,IRIS 引入了类似 CPU 流水线的 Tick-Tock 模型。该模型能自动管理数据的加载(Load)和计算(Compute)两个阶段,使其重叠执行以隐藏内存延迟。开发者无需再手动编写复杂的双缓冲(Double Buffering)代码,IRIS 编译器会自动完成这一优化,显著提升了开发效率和最终性能。

符号代数优化

在 GPU 编程中,复杂的索引计算常常是性能瓶颈和代码可读性的杀手。IRIS 内置了符号代数引擎,能够在编译阶段自动分析并简化这些复杂的数学公式。这不仅使生成的 C++ 代码更加干净高效,也确保了计算逻辑的正确性,将开发者从繁琐的数学推导中解放出来。

原生性能表现

IRIS 并非解释执行,而是生成原生 C++ 代码进行编译,因此其性能表现非常出色。根据官方公布的数据,在 AMD 最新的 MI300X 加速器上,由 IRIS 生成的 GEMM(通用矩阵乘法)算子性能,甚至微幅超越了 AMD 工程师手动优化的 rocBLAS 库。在 NVIDIA H100 上,其性能也达到了与业内顶尖的 Cutlass 库同等的水平。

IRIS 的出现,为长期被硬件平台割裂的高性能计算领域带来了曙光。它不仅提升了开发效率,更在实践中展现了超越手写优化库的潜力。随着其进一步发展,未来开发者在进行 GPU 计算时,或许能真正实现一次编写,到处运行,这无疑将极大推动计算科学的发展。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章