torch 0.9.0

torch v0.9.0 现已在 CRAN 上发布。此版本增加了对运行 macOS 的 ARM 系统的支持,并带来了显着的性能改进。

来源:RStudio AI博客

我们很高兴地宣布,torch v0.9.0 现已在 CRAN 上发布。此版本增加了对运行 macOS 的 ARM 系统的支持,并带来了显著的性能改进。此版本还包括许多较小的错误修复和功能。完整的更新日志可在此处找到。

torch 此处

性能改进

torch for R 使用 LibTorch 作为其后端。这是为 PyTorch 提供支持的同一个库 - 这意味着我们在比较程序时应该看到非常相似的性能。

torch

但是,与包装 C++ 代码库的其他机器学习库(例如 xgboost)相比,torch 的设计非常不同。在那里,开销微不足道,因为在我们开始训练模型之前只有几个 R 函数调用;然后整个训练都在无需离开 C++ 的情况下进行。在 torch 中,C++ 函数在操作级别进行包装。由于模型由多个操作符调用组成,因此这会导致 R 函数调用开销更大。

torch xgboost torch

我们建立了一组基准,每个基准都试图识别特定 torch 功能中的性能瓶颈。在某些基准测试中,我们能够使新版本比上一个 CRAN 版本快 250 倍。在图 1 中,我们可以看到在 CUDA 设备上运行的每个基准测试中 torch v0.9.0 和 torch v0.8.1 的相对性能:

torch 1 torch torch

图 1:CUDA 设备上 v0.8.1 与 v0.9.0 的相对性能。相对性能通过 (new_time/old_time)^-1 来衡量。

GPU 性能改进的主要来源是更好的内存管理,避免了对 R 垃圾收集器的不必要调用。有关更多详细信息,请参阅 torch 文档中的“内存管理”文章。

“内存管理”文章 torch behind optim

图 2:v0.8.1 与 v0.9.0 在 CPU 设备上的相对性能。相对性能通过 (new_time/old_time)^-1 来衡量。

可重复性 torch

支持 Apple Silicon

torch torch torch torch Metal Performance Shaders API x <- torch_randn ( 100 100 = “mps” )