AMD开源基于XDNA的NPU驱动程序,提升ML和信号处理性能
AMD刚刚在高性能计算方面取得了重大进展,通过开源其基于XDNA架构的神经处理单元(NPU)的驱动程序。这意味着开发人员现在可以前所未有地访问这些强大的加速器的内部工作,为更快的机器学习(ML)和信号处理应用铺平了道路。
NPU是专为处理与ML和信号处理任务相关的计算密集型工作负载而设计的专用处理器。与擅长处理不同任务的传统CPU不同,NPU擅长矩阵乘法和卷积等特定运算,这些运算对于图像和语音识别、自然语言处理和科学计算等任务至关重要。
现在,这就是AMD的XDNA架构发挥作用的地方。这是为7040和8040系列Ryzen处理器、Alveo V70加速器和Versal SoC中的NPU提供动力的底层技术。通过开源这些NPU的驱动程序,AMD实质上是在为开发人员提供动力,以满足他们的计算需求,包括Linux。
AMD Ryzen Pro(图片来源:AMD)
开源的一些好处。
- 开发人员现在可以检查驱动程序代码,了解NPU的操作方式,甚至可以根据他们的特定需求进行修改。
- 开源驱动程序消除了开发人员的潜在进入障碍,这些开发人员以前由于访问受限或专有限制而犹豫不决。nbsp;这种更广泛的可访问性可以推动AMD NPU在不同行业和应用中的广泛采用。
- 通过直接访问驱动程序代码,开发人员可能会针对特定的工作负载微调NPU,挤出每一分性能并根据他们的独特需求进行定制。
开源代码包括两个关键组件:
- Linux内核驱动程序(amdxdna.ko):这个低级驱动程序直接与XDNA硬件交互,实现操作系统和NPU之间的通信和控制。
- 一个XRT运行时库(插件"xrt_plugin—amdxna"):*这个库为应用程序提供了一个接口,可以使用Xilinx运行库(XRT)与NPU进行交互。nbsp;XRT提供了各种抽象级别,从低级C/C++ API到Python的高级绑定,以及与流行的ML框架(如TensorFlow、PyTorch和Caffe)的集成。 nbsp;这种灵活性适合于具有不同编程背景和技能的开发人员。
值得注意的是,开源驱动程序需要具有IOMMU SVA(共享虚拟寻址)支持的Linux 6.7内核。这确保了CPU和NPU之间有效的内存管理和资源共享。
有一个关于正确编译Linux6.7主线内核以在Ubuntu 22.04中使用该驱动程序的详细指南。您可以参考GitHub资源库中的构建和使用说明。
通过GitHub