新版PyTorch:AI任务加速与Intel GPU集成

--->更多内容,请移步“鲁班秘笈”!!<---

最近的Pytorch 2.4 推出AI任务加速,提供对Intel GPU的支持。为了进一步加速 AI任务,PyTorch 2.4现在为Intel数据中心GPU Max系列提供支持,该系列将Intel GPU和SYCL软件堆栈集成到标准PyTorch堆栈中。<下图为各个组件被引入到pytorch的各个版本信息。小编建议快速浏览,第二章节再仔细理解这些组件的内涵!>

借助Intel GPU支持,读者可以拥有更多GPU选择,并可以使用相同的前后端 GPU编程模型。现在可以在Intel GPU上部署和操作工作负载,几乎不需要额外的编码。为了支持流式处理设备,此版本通用化了PyTorch设备和运行时(设备、流、事件、生成、分配和守护进程)。这种泛化不仅促进了PyTorch在更加广泛的硬件上部署,还促进了更多硬件后端集成。

除了为英特尔数据中心GPU Max系列提供用于训练和推理的关键功能外,Linux*上的PyTorch 2.4版本还保持了与PyTorch支持的其他硬件相同的用户体验。假如从CUDA*迁移代码,则可以在Intel GPU上运行现有应用程序代码,只需对设备名称进行最少的代码更改。​

# CUDA Code tensor = torch.tensor([1.0, 2.0]).to("cuda")  # 只需要改动代号就可以直接迁移至Intel GPU tensor = torch.tensor([1.0, 2.0]).to("xpu")

​PyTorch 2.4和Intel GPU的相关功能如下:

  • 训练和推理工作流。

  • 支持 torch.compile和eager的基本函数。在eager和compile模式下能够完全运行Dynamo Hugging Face* 基准测试。

  • 支持FP32、BF16、FP16 和自动混合精度 (AMP) 等数据类型。

  • 支持在Linux和Intel数据中心GPU Max系列上运行。

附录:看图理解术语

Eager mode and graph mode:

它们是在Pytorch 2.0引入了两种新的操作执行模式。

  • Eager mode: 执行模式,在这种模式下操作会立即执行,而不是等待整个计算图的构建。这种模式更直观,适合调试和开发。

  • Graph mode:执行模式,在这种模式下操作会被记录到一个计算图中,然后整个图会被优化和执行。这种模式通常更高效,适合生产环境。

SYCL:

它是一个跨平台抽象层,允许算法在硬件加速器(如 CPU、GPU 和 FPGA)之间切换,而无需更改任何代码行。SYCL是由Khronos Group开发的免版税开放标准,允许开发人员使用标准 C++ 编写异构架构。此外,其编程模型使用单一源,允许在单个源文件中编写主机和内核代码。

由于各种SYCL实现往往遵循相似的规范,因此无论选择何种实现,代码都应该成功编译和运行。但是它们并非都提供相同的功能,因为它们的开发速度不同,专注于不同的架构,或者与最新的 SYCL 规范有所不同。其实所有实现都支持在具有最流行的现有架构的 CPU 上执行。

Aten operators:

ATen是PyTorch的底层张量计算库,它提供了高效的张量操作和内存管理功能。ATen基于C++编写,因此具有高效和可扩展性。它还提供了与PyTorch API兼容的接口,以便在Python环境中方便地使用。ATen的设计理念是提供易于使用且高效张量计算库,适用于构建大型神经网络模型。

oneAPI Math Kernel Library (oneMKL):

英特尔® oneAPI数学核心函数库 (oneMKL),以前称为英特尔数学核心函数库,是一个针对科学、工程和金融应用的优化数学库。核心数学函数包括BLAS、LAPACK、ScaLAPACK、稀疏求解器、快速傅里叶变换和向量数学。

oneAPI Deep Neural Network Library (oneDNN):

英特尔® oneAPI深度神经网络库 (oneDNN) 提供高度优化的深度学习构建模块实现。借助这个开源的跨平台库,深度学习应用程序和框架开发人员可以对 CPU、GPU 或两者使用相同的 API,从而抽象出指令集和性能优化的其他复杂性。

Triton:

Triton 是一种用于并行编程的语言和编译器。它旨在提供一个基于 Python 的编程环境,用于高效编写能够在现代GPU硬件上以最大吞吐量运行的自定义DNN计算内核。

Kineto:

Kineto是一个性能分析工具,用于监控和分析模型的执行性能。研究人员和工程师经常难以在计算上扩展他们的模型,因为没有意识到工作负载中的性能瓶颈。大型分布式训练作业可能会生成数千个跟踪,其中包含太多数据,人类无法检查。这就是整体分析的作用。

  • 26
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值