안녕하세요 알기 쉽게 정리해주심에 감사드립니다.
환경들이 모두 갖춰져 있는데, mps 인식을 하지 못하는 것 같아 질문을 여쭈고 싶습니다.
차이나는 점은 dev20220519, dev20220520 차이인 듯 한데, 이외에도 신경써야할 부분이 있을까요?
감사합니다.
안녕하세요 알기 쉽게 정리해주심에 감사드립니다.
환경들이 모두 갖춰져 있는데, mps 인식을 하지 못하는 것 같아 질문을 여쭈고 싶습니다.
차이나는 점은 dev20220519, dev20220520 차이인 듯 한데, 이외에도 신경써야할 부분이 있을까요?
감사합니다.
안녕하세요, @wazs555 님.
올려주신 스크린샷을 보니까 PyTorch가 MPS를 지원하지 않고 있는 것 같습니다.
혹시 PyTorch Preview 버전을 어떻게 설치하셨는지 알려주실 수 있으실까요?
Preview 버전의 경우 매일 밤 빌드가 되고 있기 때문에 버전은 큰 이슈가 아닐 것 같습니다.
아래는 제가 오늘 기존 버전(dev20220520
)을 삭제하고 동일한 버전(dev20220520
)으로 재설치한 것인데요,
동일한 버전에서 torch.backends.mps.is_built()
이 True
를 반환하는 것을 보실 수 있습니다
$ pip uninstall torch
Found existing installation: torch 1.12.0.dev20220519
Uninstalling torch-1.12.0.dev20220519:
Would remove:
/Users/reserve/.pyenv/versions/3.8.13/envs/torchmps/bin/convert-caffe2-to-onnx
/Users/reserve/.pyenv/versions/3.8.13/envs/torchmps/bin/convert-onnx-to-caffe2
/Users/reserve/.pyenv/versions/3.8.13/envs/torchmps/bin/torchrun
/Users/reserve/.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages/caffe2/*
/Users/reserve/.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages/torch-1.12.0.dev20220519.dist-info/*
/Users/reserve/.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages/torch/*
/Users/reserve/.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages/torchgen/*
Proceed (Y/n)? y
Successfully uninstalled torch-1.12.0.dev20220519
$ pip3 install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/nightly/cpu
Collecting torch
Downloading https://download.pytorch.org/whl/nightly/cpu/torch-1.12.0.dev20220520-cp38-none-macosx_11_0_arm64.whl (48.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 48.1/48.1 MB 18.4 MB/s eta 0:00:00
Requirement already satisfied: torchvision in ./.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages (0.12.0)
Requirement already satisfied: torchaudio in ./.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages (0.11.0)
Requirement already satisfied: typing-extensions in ./.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages (from torch) (4.2.0)
Requirement already satisfied: numpy in ./.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages (from torchvision) (1.22.3)
Requirement already satisfied: requests in ./.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages (from torchvision) (2.27.1)
Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in ./.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages (from torchvision) (9.1.1)
Requirement already satisfied: certifi>=2017.4.17 in ./.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages (from requests->torchvision) (2022.5.18.1)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages (from requests->torchvision) (1.26.9)
Requirement already satisfied: charset-normalizer~=2.0.0 in ./.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages (from requests->torchvision) (2.0.12)
Requirement already satisfied: idna<4,>=2.5 in ./.pyenv/versions/3.8.13/envs/torchmps/lib/python3.8/site-packages (from requests->torchvision) (3.3)
Installing collected packages: torch
Successfully installed torch-1.12.0.dev20220520
WARNING: You are using pip version 22.0.4; however, version 22.1 is available.
You should consider upgrading via the '/Users/reserve/.pyenv/versions/3.8.13/envs/torchmps/bin/python3.8 -m pip install --upgrade pip' command.
$ python
Python 3.8.13 (default, Mar 31 2022, 14:14:05)
[Clang 13.1.6 (clang-1316.0.21.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.__version__)
1.12.0.dev20220520
>>> print(torch.backends.mps.is_built())
True
>>> print(torch.backends.mps.is_available())
True
>>>
더불어 묻고 답하기 게시판으로 주제를 옮겼습니다.
제목은 제가 임의로 작성하였는데 변경해주셔도 좋을 것 같습니다.
답변 감사드립니다!
아나콘다를 이용해 설치를 진행하였으며, 해당 내용을 코드블럭으로 공유드리겠습니다.
(base) ~ conda create -n mac_gpu_test
Collecting package metadata (current_repodata.json): done
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 4.9.2
latest version: 4.12.0
Please update conda by running
$ conda update -n base -c defaults conda
## Package Plan ##
environment location: /Users/yuhwanseung/opt/anaconda3/envs/mac_gpu_test
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate mac_gpu_test
#
# To deactivate an active environment, use
#
# $ conda deactivate
(base) ✘ ~ conda activate mac_gpu_test
(mac_gpu_test) ~ conda install pytorch torchvision torchaudio -c pytorch-nightly
Collecting package metadata (current_repodata.json): done
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 4.9.2
latest version: 4.12.0
Please update conda by running
$ conda update -n base -c defaults conda
## Package Plan ##
environment location: /Users/yuhwanseung/opt/anaconda3/envs/mac_gpu_test
added / updated specs:
- pytorch
- torchaudio
- torchvision
The following packages will be downloaded:
package | build
---------------------------|-----------------
brotlipy-0.7.0 |py310hca72f7f_1002 342 KB
certifi-2022.5.18.1 | py310hecd8cb5_0 148 KB
cffi-1.15.0 | py310hc55c11b_1 221 KB
cryptography-37.0.1 | py310hf6deb26_0 1.1 MB
mkl-service-2.4.0 | py310hca72f7f_0 47 KB
mkl_fft-1.3.1 | py310hf879493_0 174 KB
mkl_random-1.2.2 | py310hc081a56_0 292 KB
numpy-1.22.3 | py310hdcd3fac_0 11 KB
numpy-base-1.22.3 | py310hfd2de13_0 5.3 MB
pillow-9.0.1 | py310hde71d04_0 639 KB
pip-21.2.4 | py310hecd8cb5_0 1.8 MB
pysocks-1.7.1 | py310hecd8cb5_0 28 KB
python-3.10.4 | hdfd78df_0 13.3 MB
pytorch-1.12.0.dev20220520 | py3.10_0 74.2 MB pytorch-nightly
setuptools-61.2.0 | py310hecd8cb5_0 1020 KB
torchaudio-0.12.0.dev20220520| py310_cpu 5.4 MB pytorch-nightly
torchvision-0.13.0.dev20220520| py310_cpu 6.3 MB pytorch-nightly
urllib3-1.26.9 | py310hecd8cb5_0 185 KB
------------------------------------------------------------
Total: 110.5 MB
The following NEW packages will be INSTALLED:
blas pkgs/main/osx-64::blas-1.0-mkl
brotlipy pkgs/main/osx-64::brotlipy-0.7.0-py310hca72f7f_1002
bzip2 pkgs/main/osx-64::bzip2-1.0.8-h1de35cc_0
ca-certificates pkgs/main/osx-64::ca-certificates-2022.4.26-hecd8cb5_0
certifi pkgs/main/osx-64::certifi-2022.5.18.1-py310hecd8cb5_0
cffi pkgs/main/osx-64::cffi-1.15.0-py310hc55c11b_1
charset-normalizer pkgs/main/noarch::charset-normalizer-2.0.4-pyhd3eb1b0_0
cryptography pkgs/main/osx-64::cryptography-37.0.1-py310hf6deb26_0
ffmpeg pkgs/main/osx-64::ffmpeg-4.2.2-h97e5cf8_0
freetype pkgs/main/osx-64::freetype-2.11.0-hd8bbffd_0
gettext pkgs/main/osx-64::gettext-0.21.0-h7535e17_0
giflib pkgs/main/osx-64::giflib-5.2.1-haf1e3a3_0
gmp pkgs/main/osx-64::gmp-6.2.1-h23ab428_2
gnutls pkgs/main/osx-64::gnutls-3.6.15-hed9c0bf_0
icu pkgs/main/osx-64::icu-58.2-h0a44026_3
idna pkgs/main/noarch::idna-3.3-pyhd3eb1b0_0
intel-openmp pkgs/main/osx-64::intel-openmp-2021.4.0-hecd8cb5_3538
jpeg pkgs/main/osx-64::jpeg-9e-hca72f7f_0
lame pkgs/main/osx-64::lame-3.100-h1de35cc_0
lcms2 pkgs/main/osx-64::lcms2-2.12-hf1fd2bf_0
libcxx pkgs/main/osx-64::libcxx-12.0.0-h2f01273_0
libffi pkgs/main/osx-64::libffi-3.3-hb1e8313_2
libiconv pkgs/main/osx-64::libiconv-1.16-hca72f7f_2
libidn2 pkgs/main/osx-64::libidn2-2.3.2-h9ed2024_0
libopus pkgs/main/osx-64::libopus-1.3.1-h1de35cc_0
libpng pkgs/main/osx-64::libpng-1.6.37-ha441bb4_0
libtasn1 pkgs/main/osx-64::libtasn1-4.16.0-h9ed2024_0
libtiff pkgs/main/osx-64::libtiff-4.2.0-hdb42f99_1
libunistring pkgs/main/osx-64::libunistring-0.9.10-h9ed2024_0
libuv pkgs/main/osx-64::libuv-1.40.0-haf1e3a3_0
libvpx pkgs/main/osx-64::libvpx-1.7.0-h378b8a2_0
libwebp pkgs/main/osx-64::libwebp-1.2.2-h56c3ce4_0
libwebp-base pkgs/main/osx-64::libwebp-base-1.2.2-hca72f7f_0
libxml2 pkgs/main/osx-64::libxml2-2.9.12-hbf8cd5e_2
llvm-openmp pkgs/main/osx-64::llvm-openmp-12.0.0-h0dcd299_1
lz4-c pkgs/main/osx-64::lz4-c-1.9.3-h23ab428_1
mkl pkgs/main/osx-64::mkl-2021.4.0-hecd8cb5_637
mkl-service pkgs/main/osx-64::mkl-service-2.4.0-py310hca72f7f_0
mkl_fft pkgs/main/osx-64::mkl_fft-1.3.1-py310hf879493_0
mkl_random pkgs/main/osx-64::mkl_random-1.2.2-py310hc081a56_0
ncurses pkgs/main/osx-64::ncurses-6.3-hca72f7f_2
nettle pkgs/main/osx-64::nettle-3.7.3-h230ac6f_1
numpy pkgs/main/osx-64::numpy-1.22.3-py310hdcd3fac_0
numpy-base pkgs/main/osx-64::numpy-base-1.22.3-py310hfd2de13_0
openh264 pkgs/main/osx-64::openh264-2.1.1-h8346a28_0
openssl pkgs/main/osx-64::openssl-1.1.1o-hca72f7f_0
pillow pkgs/main/osx-64::pillow-9.0.1-py310hde71d04_0
pip pkgs/main/osx-64::pip-21.2.4-py310hecd8cb5_0
pycparser pkgs/main/noarch::pycparser-2.21-pyhd3eb1b0_0
pyopenssl pkgs/main/noarch::pyopenssl-22.0.0-pyhd3eb1b0_0
pysocks pkgs/main/osx-64::pysocks-1.7.1-py310hecd8cb5_0
python pkgs/main/osx-64::python-3.10.4-hdfd78df_0
pytorch pytorch-nightly/osx-64::pytorch-1.12.0.dev20220520-py3.10_0
readline pkgs/main/osx-64::readline-8.1.2-hca72f7f_1
requests pkgs/main/noarch::requests-2.27.1-pyhd3eb1b0_0
setuptools pkgs/main/osx-64::setuptools-61.2.0-py310hecd8cb5_0
six pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_1
sqlite pkgs/main/osx-64::sqlite-3.38.3-h707629a_0
tk pkgs/main/osx-64::tk-8.6.11-h3fd3227_1
torchaudio pytorch-nightly/osx-64::torchaudio-0.12.0.dev20220520-py310_cpu
torchvision pytorch-nightly/osx-64::torchvision-0.13.0.dev20220520-py310_cpu
typing_extensions pkgs/main/noarch::typing_extensions-4.1.1-pyh06a4308_0
tzdata pkgs/main/noarch::tzdata-2022a-hda174b7_0
urllib3 pkgs/main/osx-64::urllib3-1.26.9-py310hecd8cb5_0
wheel pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0
x264 pkgs/main/osx-64::x264-1!157.20191217-h1de35cc_0
xz pkgs/main/osx-64::xz-5.2.5-hca72f7f_1
zlib pkgs/main/osx-64::zlib-1.2.12-h4dc903c_2
zstd pkgs/main/osx-64::zstd-1.5.2-hcb37349_0
Proceed ([y]/n)? y
Downloading and Extracting Packages
urllib3-1.26.9 | 185 KB | ############################################################################################################# | 100%
mkl_fft-1.3.1 | 174 KB | ############################################################################################################# | 100%
setuptools-61.2.0 | 1020 KB | ############################################################################################################# | 100%
cffi-1.15.0 | 221 KB | ############################################################################################################# | 100%
brotlipy-0.7.0 | 342 KB | ############################################################################################################# | 100%
torchaudio-0.12.0.de | 5.4 MB | ############################################################################################################# | 100%
certifi-2022.5.18.1 | 148 KB | ############################################################################################################# | 100%
pysocks-1.7.1 | 28 KB | ############################################################################################################# | 100%
pip-21.2.4 | 1.8 MB | ############################################################################################################# | 100%
numpy-1.22.3 | 11 KB | ############################################################################################################# | 100%
python-3.10.4 | 13.3 MB | ############################################################################################################# | 100%
pytorch-1.12.0.dev20 | 74.2 MB | ############################################################################################################# | 100%
cryptography-37.0.1 | 1.1 MB | ############################################################################################################# | 100%
mkl_random-1.2.2 | 292 KB | ############################################################################################################# | 100%
mkl-service-2.4.0 | 47 KB | ############################################################################################################# | 100%
numpy-base-1.22.3 | 5.3 MB | ############################################################################################################# | 100%
torchvision-0.13.0.d | 6.3 MB | ############################################################################################################# | 100%
pillow-9.0.1 | 639 KB | ############################################################################################################# | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(mac_gpu_test) ~ python
Python 3.10.4 (main, Mar 31 2022, 03:38:35) [Clang 12.0.0 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
i>>> import torch
>>> print(torch.__version__)
1.12.0.dev20220520
>>> print(torch.backends.mps.is_built())
False
>>> print(torch.backends.mps.is_available())
False
>>>
시간내주심에 감사드립니다
안녕하세요, @wazs555 님.
혹시 위 이슈는 M1에서 MPS 장치를 불러올 수 없습니다. - 9bow님의 글 #5 의 @SoHaeng_Lee 님과 유사한 이슈가 아닐까요?
@SoHaeng_Lee 님께서 M1에서 MPS 장치를 불러올 수 없습니다. - 9bow님의 글 #7 에 답변 달아주셨습니다!
Platform이 arm64인지 확인해보시면 좋을 것 같습니다.
@SoHaeng_Lee @9bow
그 동안 도와주신 선생님들께.
드디어 됐습니다! SoHaeng님과 9bow님께서 큰 도움주셔서 마무리할 수 있었습니다.
여기 작성된 방법과 동일하다고 생각됩니다.
다른 분들께서도 저와 같은 어려움이 있을 수도 있을 것 같아 정리해서 작성해봅니다.
conda install pytorch torchvision torchaudio -c pytorch-nightly
기존에는 conda를 이용해서 설치했을 때, 모두 문제없이 설치가 됐었는데 이번의 경우, torchvision과 torchaudio는 설치 되지 않았습니다. -> 그래서 9bow님께서 친절히 설명해주신 pip3 설치방법으로 설치하였습니다.
pip3 install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
여기까지 진행된다면 python open 후, mps가 정상적으로 작동하는 것을 확인할 수 있었습니다.
다시 한번 도와주신 분들께 감사인사를 드립니다.
잘 되신다니 다행입니다!
알려주신 내용을 정리해서 기존 FAQ에 추가해두겠습니다
행렬 크기가 클수록 속도 차이가 많이납니다만, 너무 크게하면 오류가 뜹니다.
아직은 pytorch 베타버전이란 그런것 같습니다.
CPU와 MPS 차이가 단순연산에선 최대 100배 정도 나는것 같습니다.
위의 소스도 함께 올립니다.
import sys
import torch
import platform
import time
print("OS version : ",platform.platform())
print("Python version : ",sys.version)
print(“Torch Version : “,torch._ version _)
print(””)
print("MPS Bulit : ",torch.backends.mps.is_built())
print(“MPS avail : “,torch.backends.mps.is_available())
print(””)
a=torch.rand(10000,5000)
b=torch.rand(5000,10000)
tic=time.time()
torch.matmul(a,b)
toc=time.time()
print(a.device," : ",toc-tic)
c=torch.rand(10000,5000).to(“mps”)
d=torch.rand(5000,10000).to(“mps”)
tic=time.time()
torch.matmul(c,d)
toc=time.time()
print(c.device," : ",toc-tic)