AI 见闻
精选· 重要性 4/5

PyTorch:支持GPU加速的张量与动态神经网络框架

GitHub Trending (AI repos)··pytorch·约 7 分钟阅读
Hacker News 100657
中文导读

PyTorch是一个开源的深度学习框架,提供GPU加速的张量计算和基于自动微分的动态神经网络构建,因其灵活性和易用性成为AI研究的主流工具。

PyTorch是一个Python包,提供两个高级功能:- 张量计算(类似NumPy),具有强大的GPU加速- 基于磁带式自动微分系统构建的深度神经网络您可以在需要时重用您喜爱的Python包(如NumPy、SciPy和Cython)来扩展PyTorch。

我们的主干健康状况(持续集成信号)可在 hud.pytorch.org 找到。

- 关于PyTorch的更多信息- 安装- 入门- 资源- 交流- 发布与贡献- 团队- 许可证在更细粒度上,PyTorch是一个由以下组件组成的库:通常,PyTorch被用作:- NumPy的替代品,以利用GPU的能力。

- 一个提供最大灵活性和速度的深度学习研究平台。进一步阐述:如果您使用过NumPy,那么您已经使用过张量(即 ndarray)。PyTorch提供了可以在CPU或GPU上运行的张量,并大幅加速计算。

我们提供各种张量例程来加速并满足您的科学计算需求,例如切片、索引、数学运算、线性代数、归约。而且它们速度很快!PyTorch有一种独特的构建神经网络的方式:使用并回放磁带记录器。大多数框架如TensorFlow、Theano、Caffe和CNTK都采用静态视图。

人们必须构建一个神经网络并反复重用相同的结构。

改变网络的行为方式意味着必须从头开始。在PyTorch中,我们使用一种称为反向模式自动微分的技术,它允许您任意改变网络的行为方式,且零延迟或零开销。

我们的灵感来自关于该主题的几篇研究论文,以及当前和过去的工作,如 torch-autograd、autograd、Chainer 等。虽然这项技术并非PyTorch独有,但它是迄今为止最快的实现之一。

您可以在疯狂的研究中获得最佳的速度和灵活性。PyTorch不是Python绑定到单一C++框架。它被设计为深度集成到Python中。您可以像使用NumPy/SciPy/scikit-learn等一样自然地使用它。

您可以用Python本身编写新的神经网络层,使用您喜爱的库以及Cython和Numba等包。我们的目标是在适当的地方不重复造轮子。PyTorch被设计为直观、线性思维且易于使用。当您执行一行代码时,它就会被执行。

没有异步的世界观。当您进入调试器或收到错误消息和堆栈跟踪时,理解它们很简单。堆栈跟踪精确指向您代码定义的位置。我们希望您永远不要因为糟糕的堆栈跟踪或异步且不透明的执行引擎而花费数小时调试代码。

PyTorch的框架开销最小。

我们集成了加速库,如Intel MKL和NVIDIA(cuDNN、NCCL),以最大化速度。在核心层面,其CPU和GPU张量及神经网络后端已经成熟,并经过多年测试。因此,无论您运行小型还是大型神经网络,PyTorch都相当快。

与Torch或某些替代方案相比,PyTorch的内存使用极其高效。我们为GPU编写了自定义内存分配器,以确保您的深度学习模型具有最大的内存效率。这使您能够训练比以前更大的深度学习模型。

编写新的神经网络模块或与PyTorch的Tensor API交互被设计为简单明了且抽象最少。您可以使用torch API或您喜爱的基于NumPy的库(如SciPy)在Python中编写新的神经网络层。

如果您想用C/C++编写层,我们提供了一个方便的扩展API,它高效且样板代码最少。无需编写包装代码。您可以在此处查看教程和示例。

通过Conda或pip wheel安装二进制文件的命令在我们的网站上:https://pytorch.org/get-started/locally/此处提供了适用于NVIDIA Jetson Nano、Jetson TX1/TX2、

Jetson Xavier NX/AGX和Jetson AGX Orin的Python wheel,并且L4T容器在此处发布。它们需要JetPack 4.2及以上版本,由@dusty-nv和@ptrblck维护。

如果您从源代码安装,您将需要:- Python 3.

10或更高版本- 完全支持C++20的编译器,

例如clang或gcc(在Linux上需要gcc 11.3.0或更新版本)- Visual Studio或Visual Studio生成工具(仅限Windows)- 至少10 GB的可用磁盘空间- 初始构建需要30-60分钟(后续重建要快得多)* PyTorch CI使用

Visual C++生成工具,这些工具随Visual Studio Enterprise、Professional或Community版本一起提供。

您也可以从 https://visualstudio.microsoft.com/visual-cpp-build-tools/ 安装生成工具。默认情况下,生成工具不随Visual Studio Code一起提供。

环境设置示例如下所示:- Linux:$ source <CONDA_INSTALL_DIR>/bin/activate$ conda create -y -n <CONDA_NAME>$ conda activate <CONDA_NAME>- Windows:

$ source <CONDA_INSTALL_DIR>\Scripts\activate.bat$ conda create -y -n <CONDA_NAME>$ conda activate <CONDA_NAME>$ call "C:

\Program Files\Microsoft Visual Studio\<VERSION>\Community\VC\Auxiliary\Build\vcvarsall.bat" x64不需要conda环境。

您也可以在标准虚拟环境中进行PyTorch构建,例如使用uv等工具创建,前提是您的系统已安装所有必要的依赖项(这些依赖项无法作为pip包获得,例如CUDA、MKL)。

如果您想编译CUDA支持,请从我们的支持矩阵中选择一个受支持的CUDA版本,然后安装以下内容:- NVIDIA CUDA- NVIDIA cuDNN v9.

0或以上版本- 与CUDA兼容的编译器注意:您可以参考cuDNN支持矩阵,了解与各种受支持的CUDA、CUDA驱动程序和NVIDIA硬件对应的cuDNN版本。如果您想禁用CUDA支持,请导出环境变量 USE_CUDA=0。

其他可能有用的环境变量可以在 setup.py 中找到。如果CUDA安装在非标准位置,请设置PATH以便能找到您想使用的nvcc(例如 export PATH=/usr/local/cuda-12.8/bin:$PATH)。

如果您正在为NVIDIA的Jetson平台(Jetson Nano、TX1、TX2、AGX Xavier)构建,为Jetson Nano安装PyTorch的说明可在此处找到。

如果您想编译ROCm支持,请安装:- AMD ROCm 4.0及以上版本- ROCm目前仅支持Linux系统。默认情况下,构建系统期望ROCm安装在 /opt/rocm 中。如果ROCm安装在其他目录,则必须将 ROCM_PATH 环境变量设置为ROCm安装目录。

构建系统会自动检测AMD GPU架构。可选地,可以通过 PYTORCH_ROCM_ARCH 环境变量显式设置AMD GPU架构。如果您想禁用ROCm支持,请导出环境变量 USE_ROCM=0。

其他可能有用的环境变量可以在 setup.py 中找到。如果您想编译Intel GPU支持,请遵循以下步骤:- PyTorch Intel GPU先决条件说明。

- Intel GPU在Linux和Windows上受支持。如果您想禁用Intel GPU支持,请导出环境变量 USE_XPU=0。其他可能有用的环境变量可以在 setup.py 中找到。git clone https:

//github.com/pytorch/pytorchcd pytorch# 如果您正在更新现有的检出git submodule syncgit submodule update --init --recursive通用# 在使用上面的“获取PyTorch源代码”部分克

隆源代码后,

从PyTorch目录运行此命令pip install --group dev在Linux上pip install mkl-static mkl-include# 仅CUDA:如果需要,为GPU添加LAPACK支持# magma安装:在激活的conda环境中运行。

指定要安装的CUDA版本.ci/docker/common/install_magma_conda.sh 12.4# (可选)如果使用 torch.compile 与

原文出处
pytorch/pytorch: Tensors and Dynamic neural networks in Python with strong GPU acceleration

本文为机器翻译辅以 AI 润色,仅供参考。原始事实以原文为准。

相关阅读