MAC使用MPS进行GPU深度模型训练(MPS替代CUDA)

一、前言

随着深度学习的广泛应用,硬件加速成为了模型训练的重要因素。GPU凭借其强大的并行计算能力,已经成为深度学习训练的首选设备。然而,在不同的操作系统上,由于硬件厂商和软件生态的差异,GPU加速的实现方式也各有不同。

在Windows和Linux系统中,CUDA(Compute Unified Device Architecture)是由NVIDIA提供的GPU计算框架,得益于NVIDIA显卡的广泛使用和成熟的软件生态,CUDA已经成为深度学习领域事实上的标准。TensorFlow、PyTorch等主流深度学习框架均对CUDA提供了全面支持。

然而,在macOS系统上,Apple自研的GPU并不支持CUDA。为了充分利用Apple硬件的性能,Apple推出了Metal Performance Shaders (MPS),这是一个专为Metal框架设计的高性能计算库,用于加速机器学习和图形渲染任务。PyTorch等深度学习框架也提供了对MPS后端的支持,使开发者能够在macOS上利用Apple GPU进行高效的深度模型训练。

因此,在macOS上,使用MPS是替代CUDA的最佳选择。这不仅充分发挥了Apple硬件的性能优势,同时也简化了跨平台模型开发的复杂性。本文将探讨如何在macOS系统中利用MPS进行深度模型的高效训练。

为啥老周上面花点篇幅来说明macOS上用的是MPS,因为网上有些文章说macOS用CUDA,这不是误导大家吗?我都一脸懵逼,macOS哪里来的CUDA?

二、安装环境

2.1 检查环境

在这里插入图片描述
刚开始老周默认下到base环境了,因为base环境我已经下过pytorch了,我用YOLO11中的pytorch的版本和base环境的有冲突,所以我就创建了一个新的环境,命名为pytorch,与原来的base环境隔离开来。

2.2 创建新环境

# 创建了名叫pytorch的,python版本为3.10的新环境
conda create -n pytorch python=3.10
# 激活名叫pytorch的环境
conda activate pytorch

在这里插入图片描述

2.3 下载pytorch

打开pytorch的官网:https://pytorch.org/

在这里插入图片描述
按照页面上提供的选项选择你自己的环境,然后pytorch官网会自动给你创建下载pytorch的命令。

conda install pytorch::pytorch torchvision torchaudio -c pytorch

2.4 换源

和Java中的Maven管理包工具类似,也需要换下载源,不然太慢了。

用conda下载的看下面:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/# 这个下载pytorch必须要有

再用下面的命令代码确认:

conda config --set show_channel_urls yes

然后修改那行下载命令:

conda install pytorch::pytorch torchvision torchaudio -c pytorch
# 将上面这一行代码修改为下面这一行
conda install pytorch::pytorch torchvision torchaudio

conda中的-c就相当于pip中的-i,都代表指定下载源,所以我们要去掉,这样才是使用我们上面添加的国内镜像源。

老周这里用的是conda下载,用pip下载的看下面:

pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple

如果因为网络问题没安装成功那就多试几次。

2.5 验证

启动python,导入pytorch库:
在这里插入图片描述

import torch
print(torch.backends.mps.is_available())
print(torch.backends.mps.is_built())
True#表示macOS版本支持
True#表示mps可用

在这里插入图片描述
在MAC上使用MPS进行GPU深度模型训练,要使用torch.device("mps")来指定,或通过to(device) / to(‘mps:0’) 来把模型或变量转入MPS计算。

在这里插入图片描述
OK,大功告成,接下来可以在MAC上用GPU来训练模型了,CPU训练太慢了,训练还得是GPU!!!

2.6 题外话

macOS 12.3(Monterey)及以上版本 才支持 PyTorch 的 MPS 后端功能。

老周刚开始下载完以后发现MPS不可用,检查了自己的macOS版本是10.15的版本,我直接升级到了15.2版本了,就能支持MPS了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老周聊架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值