• 判断 Mac显卡 mps 是否可以正常运行



    1-0

    Mac MPS介绍

    使用 Apple 的 Metal Performance Shaders (MPS) 作为 PyTorch 的后端来启用加速 GPU 训练。 MPS 后端扩展了 PyTorch 框架,提供了在 Mac 上设置和运行操作的脚本和功能。 MPS 使用针对每个 Metal GPU 系列的独特特性进行微调的内核来优化计算性能。 新设备将机器学习计算图和基元映射到 MPS 提供的 MPS Graph 框架和优化内核上。

    随着PyTorch v1.12版本的发布,开发人员和研究人员可以利用 Apple 的GPU进行明显更快的模型训练,在部分模型的训练上往往比Mac 的 CPU有着数倍的提升。

    • (Mac M1芯片为了追求高性能和节能,在底层设计上使用的是一种叫做arm架构的精简指令集,不同于Intel等常用CPU芯片采用的x86架构完整指令集。所以有些基于x86指令集开发的软件不能直接在Mac M1芯片电脑上使用。)
    • 需要注意的是,使用Mac M1芯片加速 pytorch 不需要安装 cuda后端,因为cuda是适配nvidia的GPU的,Mac M1芯片中的GPU适配的加速后端是mps,在Mac对应操作系统中已经具备,无需单独安装。只需要安装适配的pytorch即可。

    判断 Mac mps 是否可以正常运行

    直接在 shell 窗口执行代码,输出为 True 则说明 可以正常运行

    python -c "import torch;print(torch.backends.mps.is_built())"
    
    • 1

    或者写在一个代码中执行:

    import torch
    import math
    
    print(torch.backends.mps.is_available())
    # True
    print(torch.backends.mps.is_built())
    # True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Mac 指定 mps 进行推理示例

    在Mac M1下的GPU称作mps,它类似于Nvidia的cuda。如果你想在Mac M1下使用GPU进行深度学习的训练,只需要将运算指定到mps上运行即可。

    import torch
    model = torch.nn.Linear(5,1).to('mps')
    x = torch.randn(5).to('mps')
    y = model(x)
    print(y.shape)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 如上代码所示,该代码首先定义了一个最简单5x1的线性模形,并告诉Pytorch它在Mac M1的GPU上运行;
    • 然后给该模形创建一个输入,该输入也是在GPU上,是一个5x5的tensor,最后输出运算结果的维度。
    • 如果上面的代码可以正常运行,说明你Mac上的GPU确实可以正常工作。
    • 本章节参考博文: https://avdancedu.com/eaff035c/

    Mac M1 GPU 训练 相比 CPU 速度提升对比

    Apple M1 Ultra, 20-core CPU, 64-core GPU 128GB of RAM, and 2TB SSD. Tested with macOS Monterey 12.3, prerelease PyTorch 1.12, ResNet50 (batch size=128), HuggingFace BERT (batch size=64), and VGG16 (batch size=64).

    6-0


    📙 开心搬砖每一天


    • 🎉 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️
    • ❤️ 过去的每一天、想必你也都有努力、祝你披荆斩棘、未来可期

    9-9

  • 相关阅读:
    vue3使用ref和reactive
    Panda3d 动画模型
    redis主从扩容
    指针到底是个什么玩意
    stm32 cubeide 闪退 显示self upgrade failed
    集成底座POC演示流程说明
    学生HTML游戏网页作业作品——HTML+CSS+JavaScript魔域私服游戏HTML(1个页面)
    实时嵌入式系统环境中敏捷的基础
    老胡的周刊(第107期)
    C++_跨平台编译_cmakefile中_添加内容
  • 原文地址:https://blog.csdn.net/sinat_28442665/article/details/131212986