AMD Open Sources Drivers for XDNA-Based NPUs

Published on May 16, 2024

AMD NPU XDNA

AMD 公司开源了 XDNA 架构 NPU 的驱动程序,为开发者提供了更大的灵活性和可访问性,同时提高了机器学习和信号处理性能。

摘要

AMD 公司最近开源了其 XDNA 架构 Neural Processing Units (NPUs) 的驱动程序,这对开发者来说是一个重大的进展。NPUs 是专门用于处理机器学习和信号处理任务的计算密集型工作负载的专门处理器。与通用 CPU 不同,NPUs 在矩阵乘法和卷积等特定操作中表现出色,这对于诸如图像和语音识别、自然语言处理和科学计算等任务至关重要。

AMD 的 XDNA 架构是其 7040 和 8040 系列 Ryzen 处理器、Alveo V70 加速器和 Versal SoC 中 NPUs 的基础技术。通过开源 NPUs 的驱动程序,AMD 为开发者提供了更大的灵活性和可访问性,包括 Linux。

开源驱动程序的一些好处包括:

  • 开发者可以检查驱动程序代码、了解 NPUs 的工作原理,并根据自己的具体需求进行修改。
  • 开源驱动程序消除了开发者因受限访问或专有约束而可能存在的潜在障碍。这种更广泛的可访问性有可能推动 AMD NPUs 在各种行业和应用中的更广泛采用。
  • 直接访问驱动程序代码的开发人员可以将 NPUs 微调为特定工作负载,从而提高性能并满足其独特的需求。

开源的代码包括两个关键组件:

  • 一个 Linux 内核驱动程序(amdxdna.ko):这是一个低级别的驱动程序,直接与 XDNA 硬件交互,使操作系统和 NPU 之间进行通信和控制。
  • XRT 运行时库(插件“xrt_plugin-amdxdna”):这是一个库,为使用 Xilinx 运行时库 (XRT) 与 NPUs 交互的应用程序提供接口。XRT 提供了各种抽象级别,从低级别的 C/C++ API 到高级别的 Python 绑定和流行的机器学习框架(如 TensorFlow、PyTorch 和 Caffe)的集成。这种灵活性满足了具有不同编程背景和技能的开发人员的需求。

需要注意的是,开源驱动程序需要一个 Linux 6.7 内核,支持 IOMMU SVA (Shared Virtual Addressing)。这可确保 CPU 和 NPU 之间有效地管理内存和共享资源。

在 GitHub 存储库中提供了有关正确编译 Linux 6.7 主线内核以使用此驱动程序的详细指南,以在 Ubuntu 22.04 中使用。

Read Original Article

《Maeiee成长感悟》- 从北漂到准父亲的生活洞察

生活在快速节奏的都市,作为程序员和即将迎来人生新角色的我,经历了无数难忘的瞬间和深刻的思考。这些体验和感悟,我渴望与你分享。

《Maeiee成长感悟》是一个收集我所有重要生活事件和心得的地方。每一篇文章都是对过去经历的反思和对未来生活的展望,真实记录作为一个程序员、副业探索者、终身学习者、一个准爸爸和一个北漂的多重身份之间的平衡与挑战。

这里没有华丽的辞藻,只有最真实的思考和感受,希望它们能触动你的心弦,也许能在你的生活旅程中提供一些启示和慰藉。