尚未崩坏 发表于 2025-3-11 00:49:39

Mac M1 安装 Pytorch、GPU加速环境

目录
配景        
环境
 安装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进行安装

在官网页面选择环境https://i-blog.csdnimg.cn/direct/cb69f81b39044fc790a7207c2221c1a0.png
根据官网生成的下令实行如下:
pip3 install torch torchvision torchaudio 实行效果如下:
https://i-blog.csdnimg.cn/direct/5d20ae0e8b584af1bdabf8d0528d4e43.png
验证是否安装乐成

实行如下代码:
import torch
from torch import nn

# 打印PyTorch版本
# 检查PyTorch版本
print(torch.__version__)
# 创建一个随机张量
x = torch.rand(5, 3)
print(x) 实行效果体现乐成:
https://i-blog.csdnimg.cn/direct/b72fa85eaaf348309536f83a44592c80.png
上图说明安装的Pytorch版本为2.5.1。

GPU加速环境

        要在 Mac M1的GPU 上运行 PyTorch 代码,利用下令 torch.device("mps")来指定。这雷同于 Nvidia GPU 上的torch.device("cuda")下令。
测试代码如下:
import torch
from torch import nn

# 打印PyTorch版本
# 检查PyTorch版本
print(torch.__version__)
print(torch.backends.mps.is_available())
print(torch.backends.mps.is_built())
# 创建一个随机张量
device = torch.device('mps')# 指定使用MPS设备
#num_devices = torch.mps.device_count()
#print("Number of MPS devices:",num_devices)
N = 100000000
cpu_a = torch.rand()
cpu_b = torch.rand()
print(N,cpu_a.device,cpu_b.device)

gpu_a = torch.rand(,device=device)
gpu_b = torch.rand(,device='mps')
print(N,gpu_a.device,gpu_b.device)


def cpu_run():
    c = torch.mm(cpu_a, cpu_b)
    return c

def gpu_run():
    c = torch.mm(gpu_a, gpu_b)
    return c

import timeit

cpu_time = timeit.timeit(cpu_run, number=2)# 计时CPU版本
gpu_time = timeit.timeit(gpu_run, number=2)# 计时GPU版本
print("run time1:", cpu_time,gpu_time)

cpu_time = timeit.timeit(cpu_run, number=2)
gpu_time = timeit.timeit(gpu_run, number=2)
print("run time2:", cpu_time,gpu_time)


实行效果:
https://i-blog.csdnimg.cn/direct/8d209dd1c12e4e62aad078433fadfdac.png
问题录

问题:GPU没法利用

实行上述测试代码
https://i-blog.csdnimg.cn/direct/bba4b307adf846e481ed3c0fb7205b97.png
        此时发现安装的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,调整后实行效果如下:
https://i-blog.csdnimg.cn/direct/a1aa803ba37d41ff89d0878c7f67ddea.png
上图提示需要macOS 13.0以上才气利用MPS,所以体系还得需要升级到macOS13.0以上。
        macOS 升级到13.7.2 后,实行代码如下:
https://i-blog.csdnimg.cn/direct/b16906c376a54a5f9a1c612bbb9bb9d5.png
        由于升级体系耗费时间,后续偶然间升级后再更新补充完整 ,大家如果有跟新了的也可以实验后在评论区留言问题情况,谢谢!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Mac M1 安装 Pytorch、GPU加速环境