Вопрос или проблема
Предварительно скажу: у меня не так много опыта работы в среде Linux.
Я пытаюсь установить ROCm на WSL2 с Ubuntu. Я буду использовать PyTorch для учебного курса и хочу задействовать свою GPU для вычислений. ROCm установился нормально, однако я постоянно получал ошибку ROCk module is NOT loaded, possibly no GPU devices
.
Я нашел этот пост, который указал на то, что проблема может заключаться в том, что WSL не позволяет устанавливать модули. Там была ссылка на комментарий, который можно найти здесь, в котором объясняется, как установить новое ядро. Я следовал инструкциям, но столкнулся с ошибкой при выполнении make
.
Ошибка такая:
No rule to make target '/home/<USER>/lkm_example.o', needed by '/home/<USER>/lkm_example.mod'. Stop.
(<USER>
— это мое имя пользователя, просто не хотел его здесь указывать)
Через Google я нашел несколько постов, в которых говорилось, что мне нужно установить linux-headers
. Я попробовал выполнить sudo apt-get install kernel-headers
, но получил ошибку: E: Unable to locate package kernel-headers
.
Как мне поступить?
Я нашел этот пост, который указал на то, что проблема может заключаться в том, что WSL не позволяет устанавливать модули.
Эй, это мой ответ! Имейте в виду:
-
Я начал его с:
“Хотя у меня нет систем AMD GPU, чтобы протестировать это (и я не знаю точно, работает ли ROCm на WSL2) …”.
-
И у него нет голосов, он не принят, и у него нет комментариев, которые бы сообщали нам, помог ли он или нет.
Так что … не доверяйте ему как чему-то надежному! Не стесняйтесь даже проголосовать против! Трудно так говорить о собственном ответе, но, оглядываясь назад, вероятно, это не было точным. Я добавлю ссылку на него в этот ответ, чтобы он перенаправлял на последние сведения. Правильна ли информация ниже или нет, мне нужна ваша помощь!
Я буду использовать PyTorch для учебного курса и хочу использовать свою GPU для вычислений.
Хорошо, это вопрос, который я собираюсь рассмотреть, а не как собрать ядро с поддержкой ROCm (поскольку я уже не думаю, что это поможет).
На данный момент у меня все еще нет AMD GPU, чтобы протестировать это напрямую, но я уже выполнил некоторые вычисления на GPU на своем nVideo 2070 под WSL2.
Так что вот моё последнее мнение, рассматривая тот предыдущий вопрос, ваш вопрос и некоторую другую информацию:
-
Вероятно, ROCm не нужен под WSL2. WSL2 предоставляет GPU для Linux через систему passthrough, используя драйвер Windows (а не Linux). Если вы посмотрите в
/usr/lib/wsl
, вы найдете две директории, которые монтируются в вашу WSL2 инстанцию —../drivers
и../lib
. Они добавлены в кэш библиотек через (тоже инжектированный)/etc/ld.so.conf/ld.wsl.conf
.Именно эти библиотеки и драйверы обеспечивают вам доступ к GPU.
-
Когда я смотрел на другой вопрос в прошлом году, я не осознавал, что ROCm — это Linux эквивалентная библиотека для вычислений на GPU. И если она устанавливается как модуль, то вряд ли будет полезна под WSL2, поскольку не будет иметь прямого доступа к GPU, который ей нужен. Оглядываясь назад, я должен был понять это с тем, что я знал тогда.
Так что что нужно, чтобы использовать Pytorch под WSL2 на вашей AMD GPU? Снова делая предположение, но …
-
Этот документ кажется указывает на то, что вам нужен Windows 11. Хотя я думал, что большинство возможностей вычислений на GPU доступны в Windows 10, это может быть одной из тех областей, которые требуют Windows 11. Вы не упоминаете свою версию Windows, так что я не знаю, возможно ли это для вас или нет.
-
Последние драйверы AMD для Windows. Почти все, что было выпущено за последний год, должно подойти.
-
Подходящая среда Python. Microsoft рекомендует Conda. Я в конечном итоге использовал Docker для TensorFlow.
-
Зависимости:
libblas3 libomp5 liblapack3
-
А потом
pip install pytorch-directml
Честно говоря, этого должно быть достаточно. Согласно этому документу, AMD поддерживается для PyTorch с DirectML.
При запуске TensorFlow на моем nVidia под WSL2, мне не требовались никакие дополнительные родные драйверы/модули. Мне пришлось предоставить директорию /usr/lib/wsl/lib
в Docker, но это только потому, что мне нужно было запустить конкретную старую версию Python для TensorFlow, и самый простой способ сделать это был через Docker.
Ответ или решение
Установка ROCm в WSL2 (Windows Subsystem for Linux 2) для работы с GPU может представлять некоторые сложности, особенно если у вас нет опыта работы с Linux. Давайте рассмотрим, как можно решить вашу проблему и правильно установить необходимые компоненты для использования PyTorch с вашими графическими процессорами AMD.
Проблема с установкой ROCm в WSL2
Согласно вашему описанию, вам не удается загрузить модуль ROCk, и вы получаете ошибку при компиляции, указывающую, что нет правил для создания определённых целей. Это наводит на мысль, что ROCm может не поддерживаться в WSL2, так как WSL имеет свои ограничения.
Понимание WSL2 и работы с GPU
WSL2 предоставляет интерфейс для выполнения Linux-приложений на Windows и делает доступным GPU для таких приложений через драйверы Windows. Важно отметить, что в WSL2 модули ядра (включая ROCm) не могут быть загружены так же, как это происходит в традиционной среде Linux. Вы должны использовать Windows-драйверы для доступа к вашим графическим процессорам AMD.
Рекомендуемые шаги для использования PyTorch с GPU в WSL2
Для успешной работы с PyTorch на ваших GPU AMD через WSL2 выполните следующие шаги:
-
Проверьте версию Windows:
Убедитесь, что у вас установлена Windows 11, так как поддержка GPU для WSL2 возможна только в этой версии. Если у вас Windows 10, вы можете испытывать ограниченные возможности GPU. -
Установите последние драйверы AMD:
Убедитесь, что у вас установлены последние драйверы для вашей видеокарты AMD на Windows. Вы можете загрузить их с официального сайта AMD. -
Создайте подходящее окружение Python:
Microsoft рекомендует использовать Conda для создания изолированных сред Python. Для этого вы можете установить Anaconda или Miniconda. -
Установите необходимые зависимости:
Вы можете установить зависимости, необходимые для работы PyTorch, выполнив следующие команды в терминале:sudo apt-get update sudo apt-get install libblas3 libomp5 liblapack3
-
Установите PyTorch с поддержкой DirectML:
Используйте следующую команду для установки PyTorch с поддержкой DirectML, которая позволяет выполнять вычисления на GPU:pip install pytorch-directml
Заключение
Теперь вы должны быть готовы использовать PyTorch на вашем GPU AMD через WSL2. Если возникнут дополнительные вопросы или проблемы с установкой, не стесняйтесь обращаться за помощью – сообщество разработчиков всегда готово помочь новичкам. Удачи с вашим проектом!