Mac M1 安装 Pytorch、GPU加速环境

尚未崩坏  论坛元老 | 2025-3-11 00:49:39 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1018|帖子 1018|积分 3054

目录
配景        
环境
 安装Pytorch
前置条件
通过pip进行安装
验证是否安装乐成
GPU加速环境
问题录
问题:GPU没法利用



配景        

        近来学习AI大模子,由于电脑是MAC M1的环境,在学习过程中Pytorch环境必不可少,特此在此环境中整理下安装Pytorch过程。
        注意:
        Mac M1芯片为了追求高性能和节能,在底层设计上利用的是一种叫做arm架构的精简指令集,不同于Intel等常用CPU芯片采用的x86架构完整指令集。PyTorch的GPU训练加速适配Mac M1时利用苹果Metal Performance Shaders(MPS)作为后端来实现的。
        
环境

官方要求说明:
Start Locally | PyTorch
环境版本说明
macOS VersionmacOS 10.15 (Catalina) or above.注意:如果要利用GPU,则体系需要升级到macOS13.0以上
PythonPython 3.9 - 3.12通过Anaconda、Homebrew进行包管理
package 管理PyTorch 安装PyTorch包,可以通过 pip 和Anaconda进行管理;
注意:如果要用GPU建议Python环境通过Anaconda进行管理,方便版本适配。
体系:MAC M1  版本:mosOS Monterey 12.7.6
软件:Python3.11.11、Pytorch2.3.1(探索出来可适配GPU利用)

 安装Pytorch

前置条件

乐成在MAC 中已经安装了Python,详细安装和利用方法参考如下文档,此处不再累赘说明了
        Mac M1 安装 Pytorch
通过pip进行安装

在官网页面选择环境

根据官网生成的下令实行如下:
  1. pip3 install torch torchvision torchaudio
复制代码
实行效果如下:

验证是否安装乐成

实行如下代码:
  1. import torch
  2. from torch import nn
  3. # 打印PyTorch版本
  4. # 检查PyTorch版本
  5. print(torch.__version__)
  6. # 创建一个随机张量
  7. x = torch.rand(5, 3)
  8. print(x)
复制代码
实行效果体现乐成:

上图说明安装的Pytorch版本为2.5.1。

GPU加速环境

        要在 Mac M1的GPU 上运行 PyTorch 代码,利用下令 torch.device("mps")来指定。这雷同于 Nvidia GPU 上的torch.device("cuda")下令。
测试代码如下:
  1. import torch
  2. from torch import nn
  3. # 打印PyTorch版本
  4. # 检查PyTorch版本
  5. print(torch.__version__)
  6. print(torch.backends.mps.is_available())
  7. print(torch.backends.mps.is_built())
  8. # 创建一个随机张量
  9. device = torch.device('mps')# 指定使用MPS设备
  10. #num_devices = torch.mps.device_count()
  11. #print("Number of MPS devices:",num_devices)
  12. N = 100000000
  13. cpu_a = torch.rand([1, N])
  14. cpu_b = torch.rand([N, 1])
  15. print(N,cpu_a.device,cpu_b.device)
  16. gpu_a = torch.rand([1, N],device=device)
  17. gpu_b = torch.rand([N, 1],device='mps')
  18. print(N,gpu_a.device,gpu_b.device)
  19. def cpu_run():
  20.     c = torch.mm(cpu_a, cpu_b)
  21.     return c
  22. def gpu_run():
  23.     c = torch.mm(gpu_a, gpu_b)
  24.     return c
  25. import timeit
  26. cpu_time = timeit.timeit(cpu_run, number=2)# 计时CPU版本
  27. gpu_time = timeit.timeit(gpu_run, number=2)# 计时GPU版本
  28. print("run time1:", cpu_time,gpu_time)
  29. cpu_time = timeit.timeit(cpu_run, number=2)
  30. gpu_time = timeit.timeit(gpu_run, number=2)
  31. print("run time2:", cpu_time,gpu_time)
复制代码
实行效果:

问题录

问题:GPU没法利用

实行上述测试代码

        此时发现安装的Pytorch 2.5.1+Python3.11.11 没法利用MAC M1d的GPU,找了很多资料没法确定兼容性最终选择用Anaconda进行Python环境安装,通过Anaconda安装Python3.11.11后,然后选择安装Pytorch后,发现安装的是Pytorch2.3.1版本,即Pytorch 2.3.1+Python3.11.11,调整后实行效果如下:

上图提示需要macOS 13.0以上才气利用MPS,所以体系还得需要升级到macOS13.0以上。
        macOS 升级到13.7.2 后,实行代码如下:

        由于升级体系耗费时间,后续偶然间升级后再更新补充完整 ,大家如果有跟新了的也可以实验后在评论区留言问题情况,谢谢!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

尚未崩坏

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表