在AMD显卡上开始使用PyTorch:PyTorch Conference 2022上的社区及合作伙伴讲座回顾

Find AI Tools
No difficulty
No complicated process
Find ai tools

在AMD显卡上开始使用PyTorch:PyTorch Conference 2022上的社区及合作伙伴讲座回顾

目录

  1. 介绍
  2. AMD图形处理器
    • 2.1 AMDGPU架构和Rock M软件栈
    • 2.2 AMD RDNA架构和AMD Instinct MI-250
  3. PyTorch在AMD GPU上的运行
    • 3.1 AMD的PyTorch之旅
    • 3.2 使用Hipify将代码移到Rock M
    • 3.3 构建和安装Rock和PyTorch
    • 3.4 迁移PyTorch工作负载到Rock M
  4. Rock M的性能
    • 4.1 使用SuperBench进行性能测试
    • 4.2 对Transformer和Vision模型的性能提升
    • 4.3 试用AMD加速器云
  5. 附注和资源
    • 5.1 AMD文档和技术指南
    • 5.2 稳定版Wheels和Docker镜像
    • 5.3 加速器云试用

介绍

大家好,我是Jeff Daly,是AMD的技术员之一。今天我很荣幸向大家介绍如何在AMD显卡上开始使用PyTorch。首先,我要感谢我所在的团队,他们为PyTorch的性能和稳定性做出了巨大的贡献。虽然你在拉取请求和问题中看到了一些人的用户名,但他们不仅仅是代码贡献者,还负责后台工作,包括功能开发、性能优化和CI维护等。这个团队代表了AMD对PyTorch在AMD显卡上取得成功的巨大投入。

在今天的讲座中,我将介绍AMD的硬件和软件产品,以及如何在AMD显卡上运行PyTorch,并展示一些令人兴奋的性能结果。

AMD图形处理器

2.1 AMDGPU架构和Rock M软件栈

AMD提供了广泛的高性能计算解决方案,适用于各种用例,从个人电脑游戏玩家到数据中心平台。与传统显卡不同,AMD推出了两种不同的体系结构:AMD RDNA以最大化每秒帧数为目标,而AMD RDNA2则以提高浮点运算性能为目标。这两种体系结构都能运行PyTorch,这得益于AMD的Rock M软件栈。

Rock M提供了一整套从底层支持到顶层应用的库,包括驱动程序支持、Hip语言编译器和运行时、调试器和性能分析工具,以及数学库等。这些底层库是我们在顶层构建的基础,以实现对PyTorch等框架的支持。借助Rock M,你可以在基于RDNA架构的AMD Radeon Pro V620或基于CDNA架构的AMD Instinct MI-250等显卡上运行PyTorch。

2.2 AMD RDNA架构和AMD Instinct MI-250

AMD RDNA和AMD CDNA架构都支持PyTorch,但需要进行一些条件编译以保证在不同平台上的兼容性和优化。例如,CUDA中的warp在AMD显卡中称为wavefront,NVIDIA设备上warp的大小是32,而在我们的CDNA架构显卡上是64。这是一个我们需要进行条件编译的区别之一。

不过,对于PyTorch来说,我们已经为你做好了所有的工作,已经完成了移植工作,所以你不需要过多关注这些细节。PyTorch在AMD显卡上的运行与CUDA几乎完全一致,包括HIP流、设备管理、内存使用等。我们实现了与CUDA PyTorch的功能完全相同的特性,包括缓存分配器、流、设备、卷积、BLAS和神经网络库等。我们的内部质量保证团队会定期测试这些特性,每个PyTorch提交的代码也会在我们的Rock M CI上运行。

PyTorch在AMD GPU上的运行

3.1 AMD的PyTorch之旅

现在,让我们来看看如何将PyTorch移植到Rock M。首先,我们使用了一个名为Hipify的工具,它是一个源代码转换工具,可以将CUDA代码转换为HIP代码。我们在PyTorch中已经集成了定制的Hipify工具,它非常容易使用并且纯Python编写。使用Hipify工具,你可以将现有的CUDA代码转换为可同时在AMD和NVIDIA显卡上运行的HIP代码。

当然,由于硬件和软件的差异,开发者可能需要对代码进行条件编译,以保护兼容性和优化性能。例如,一些编译器标志需要进行更改。但是对于PyTorch来说,我们已经为你处理了所有这些,已经完成了转换工作。你可以直接使用Hip Code,并且可以将其编译为适用于CUDA PyTorch的代码。下面是一个Hipify的示例:

(代码示例略)

3.2 构建和安装Rock和PyTorch

构建并安装Rock M和PyTorch非常简单。除了PyTorch的标准构建步骤之外,唯一的额外步骤就是使用Hipify工具。对于从源代码构建PyTorch,Hipify Torch已经包含在PyTorch源代码中,所以你只需要按照标准的构建流程进行。如果你想查看如何使用Hipify工具,推荐你查看torchvision的源代码,它使用了Hipify工具进行代码转换。

Rock M的性能

4.1 使用SuperBench进行性能测试

为了评估Rock M的性能,我们使用了Microsoft的SuperBench 0.6版本进行测试。SuperBench是一个用于AI基础设施的验证和性能分析工具,支持工作负载的测试和性能分析。我们使用它作为测试框架来运行一些Hugging Face模型和TorchVision模型的性能测试。

4.2 对Transformer和Vision模型的性能提升

我们的测试结果显示,使用AMD Instinct MI-250显卡进行Transformer和Vision模型的训练时,在FP16训练中,我们的性能提升了1.4倍至1.6倍。这些结果说明了Rock M显卡在性能方面的优势。

4.3 试用AMD加速器云

如果你想亲自体验Rock M的性能,你可以使用AMD加速器云进行试用。它提供了一个远程访问环境,让你可以快速方便地评估AMD Instinct加速器和Rock M软件。无论是移植遗留代码、基准测试还是应用程序测试,AMD加速器云都可以为你提供最新的显卡和软件支持,如OpenAI Triton对PyTorch 2.0的支持等。

附注和资源

有关使用Rock M和PyTorch的更多信息,你可以在AMD官方文档中找到。我们的文档页面上有更多关于Hip代码转换和其他库的详细信息。此外,你也可以在我们的文档页面上找到稳定版的Wheels和Docker镜像的链接。如果你想尝试AMD加速器云,我们也提供了相应的链接供你参考。

感谢大家的聆听,谢谢!

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.