記錄:
對于tensorflow環(huán)境配置,即使替換了M1適配的anaconda,使用蘋果官方適配m1的tensorflow安裝命令,仍舊出現(xiàn)各種問題,可見現(xiàn)在的M1版anaconda還是存在很大問題。所以在屢次不服氣的碰壁下我還是改用了miniforge3…真香!
- so,建議使用miniforge3管理,miniforge3可以理解成 miniconda/annoconda 的社區(qū)版,提供了更穩(wěn)定的對M1芯片的支持。
使用miniforge3可成功安裝支持m1版的tensorflow及pytorch
MPS介紹
(Mac M1芯片為了追求高性能和節(jié)能,在底層設(shè)計上使用的是一種叫做arm架構(gòu)的精簡指令集,不同于Intel等常用CPU芯片采用的x86架構(gòu)完整指令集。所以有些基于x86指令集開發(fā)的軟件不能直接在Mac M1芯片電腦上使用。)
需要注意的是,使用Mac M1芯片加速 pytorch 不需要安裝 cuda后端,因為cuda是適配nvidia的GPU的,Mac M1芯片中的GPU適配的加速后端是mps,在Mac對應(yīng)操作系統(tǒng)中已經(jīng)具備,無需單獨安裝。只需要安裝適配的pytorch即可。
MPS使用
去年pytorch官方發(fā)布了支持在m1版本的Mac上進行模型加速,所以可以安裝gpu版pytorch了(wuhoo~)
首先要具備arm64的Python,以及1.12版本以上的pytorch
mps用法和cuda很像,只是將“cuda”改為“mps”
import torch
print(torch.backends.mps.is_available())
print(torch.backends.mps.is_built())
True#表示macOS版本支持
True#表示mps可用
在 Mac M1的GPU 上運行pytorch 代碼,要使用 torch.device("mps")
來指定,或通過to(device) / to(‘mps:0’) 來把模型或變量轉(zhuǎn)入MPS計算
device = torch.device("mps")
model = ModelName(xxx).to(device)
data = torch.Tensor(dataset.x).to(device)
、、、
很玄學(xué),模型里面我使用上面的簡單修改還是報錯,只有改成下面這樣才OK文章來源:http://www.zghlxwxcb.cn/news/detail-448779.html
#在parser里面這樣定義
parser.add_argument('--device', type=int, default=0)
parser.add_argument('--use_gpu',default=False,action='store_true')
use_gpu = args.use_gpu
device = torch.device("mps" if args.use_gpu else "cpu")`
原代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-448779.html
# torch.cuda.set_device(args.device)
# device = torch.device("cuda" if args.cuda else "cpu")
到了這里,關(guān)于【MacOS】MacBook使用本機m1芯片GPU訓(xùn)練的方法(mps替代cuda)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!