PyTorch объявил в мае 2022 года в своем выпуске 1.12, что разработчики и исследователи могут использовать кремниевые графические процессоры Apple для значительно более быстрого обучения моделей. Однако до недавнего времени это было ограничено предварительной (ночной) версией, что делало ненадежной совместимость с другими библиотеками, зависящими от PyTorch.
Создание стабильной исследовательской среды для графового машинного обучения на Python, использующей возможности новой архитектуры рук, заняло много времени. Меня очень вдохновила эта выпуск на гитхабе и эта статья.
Это простое руководство по установке стабильной версии PyTorch Geometric на новые чипы M1/Apple Silicon. Это работает с сентября 2022 года.
Шаг 1. Обновите MacOS до версии 12.3+
Убедитесь, что у вас установлена как минимум MacOS 12.3 (Monterey), так как ускорение графического процессора поддерживается только для версий 12.3 и выше. Если нет, продолжайте и обновите до последней версии. На момент написания у меня MacOS 12.5.1.
Шаг 2. Установите Miniforge3
Miniforge3 — это минимальный установщик conda, созданный сообществом. Особое внимание уделяется поддержке различных архитектур ЦП (x86_64, ppc64le и aarch64, включая Apple M1).
Это действительно важно! Anaconda еще не поддерживает arm64 (архитектура M1). Кроме того, он громоздкий и выполняет установку некоторых скрытых пакетов с неправильной архитектурой, которую может быть сложно отладить. Я настоятельно рекомендую полностью удалить анаконду, чтобы сделать это загляните в эту тему.
Если у вас еще не установлен homebrew:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)
Установка miniforge3 через homebrew — это путь:
$ brew install miniforge
Перед использованием команды conda
вам необходимо указать источник .bashrc
или .zshrc
в зависимости от того, какой тип терминала вы используете. Я использую zsh, поэтому:
$ source ~/.zshrc
Инициализируйте conda как базовую среду:
$ conda init zsh
Перезагрузите терминал, прежде чем продолжить
Шаг 3. Создайте и активируйте новую среду conda
Теперь, когда у нас есть легкий установщик conda, давайте создадим и активируем новую среду с именем myenv
.
$ conda create --name myenv python=3.8 $ conda activate myenv
Я обнаружил, что Python 3.8 действительно стабилен и совместим со всеми пакетами. Miniforge теперь поддерживает Python 3.9.
Шаг 4. Установите компиляторы arm64
$ conda install -y clang_osx-arm64 clangxx_osx-arm64 gfortran_osx-arm64
Они необходимы для создания версий факела и факела-геометрии для arm64.
Шаг 5. Установите факел
$ MACOSX_DEPLOYMENT_TARGET=12.5 CC=clang CXX=clang++ python -m pip --no-cache-dir install torch torchvision torchaudio
Здесь вы можете заменить MACOSX_DEPLOYMENT_TARGET=12.X
на правильную версию вашей ОС.
Шаг 6. Проверьте, какая у вас версия резака
$ python -c "import torch; print(torch.__version__)"
>>> 1.12.1 (must be 1.12.0+)
Неважно, какая у вас версия факела, если она 1.12.0
и выше.
Шаг 7. Установите факел-геометрию
$ MACOSX_DEPLOYMENT_TARGET=12.5 CC=clang CXX=clang++ python -m pip --no-cache-dir install torch-scatter -f https://data.pyg.org/whl/torch-1.12.1+${cpu}.html
$ MACOSX_DEPLOYMENT_TARGET=12.5 CC=clang CXX=clang++ python -m pip --no-cache-dir install torch-sparse -f https://data.pyg.org/whl/torch-1.12.1+${cpu}.html
$ MACOSX_DEPLOYMENT_TARGET=12.5 CC=clang CXX=clang++ python -m pip --no-cache-dir install torch-cluster -f https://data.pyg.org/whl/torch-1.12.1+${cpu}.html$ MACOSX_DEPLOYMENT_TARGET=12.5 CC=clang CXX=clang++ python -m pip --no-cache-dir install torch-geometric
Обязательно укажите правильную версию MACOSX_DEPLOYMENT_TARGET
и правильную версию факела в ссылке на сборку колес https://data.pyg.org/whl/torch-1.12.1+${cpu}.html.
.
Шаг 8: Проверка работоспособности
Теперь, когда мы установили правильные пакеты, проверьте, могут ли torch и torch-geometric обнаруживать MPS и работать на нем.
Запустите этот скрипт для проверки факела
Два оператора печати в начале должны оба возвращать значение True.
Запустите этот скрипт, чтобы протестировать факельную геометрию