описание проблемы
NotImplementedError: The operator 'aten::hardswish_' is not currently implemented
for the MPS device. If you want this op to be added in priority during the
prototype phase of this feature, please comment on
https://github.com/pytorch/pytorch/issues/77764. As a temporary fix, you can set
the environment variable `PYTORCH_ENABLE_MPS_FALLBACK=1` to use the CPU as a
fallback for this op. WARNING: this will be slower than running natively on MPS.
Решение
В это время введите в командной строке терминала:
export PYTORCH_ENABLE_MPS_FALLBACK=1
можно решить
Принцип решения:
PYTORCH_ENABLE_MPS_FALLBACK=1
Это переменная среды в PyTorch, ее функция — указать PyTorch, следует ли включать резервный режим при использовании CUDA MPS (многопроцессорная служба). Когда значение равно 1, PyTorch будет максимально использовать MPS для работы и будет использовать резервный режим для вычислений, если некоторые условия не выполняются.
MPS — это многопроцессорная служба, предоставляемая CUDA, которая позволяет нескольким приложениям CUDA совместно использовать ресурсы одного и того же графического процессора, тем самым улучшая использование графического процессора и производительность вычислений. В PyTorch включение MPS может уменьшить использование памяти и ускорить процесс обучения и логического вывода модели.
Однако из-за ограничений аппаратной и программной среды и других факторов в некоторых случаях MPS может не работать нормально, например, из-за нехватки аппаратных ресурсов, неподдерживаемой версии операционной системы или обновления драйвера и по другим причинам. На этом этапе будет включен резервный режим, который позволяет PyTorch вернуться к традиционному режиму работы с одним процессом, чтобы обеспечить правильность и надежность программы.
В заключение, включение PYTORCH_ENABLE_MPS_FALLBACK=1
может эффективно повысить производительность программ PyTorch и избежать некоторых проблем совместимости с MPS.