WSL2: Проблема с установкой нового ядра

Вопрос или проблема

Предварительно скажу: у меня не так много опыта работы в среде 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 выполните следующие шаги:

  1. Проверьте версию Windows:
    Убедитесь, что у вас установлена Windows 11, так как поддержка GPU для WSL2 возможна только в этой версии. Если у вас Windows 10, вы можете испытывать ограниченные возможности GPU.

  2. Установите последние драйверы AMD:
    Убедитесь, что у вас установлены последние драйверы для вашей видеокарты AMD на Windows. Вы можете загрузить их с официального сайта AMD.

  3. Создайте подходящее окружение Python:
    Microsoft рекомендует использовать Conda для создания изолированных сред Python. Для этого вы можете установить Anaconda или Miniconda.

  4. Установите необходимые зависимости:
    Вы можете установить зависимости, необходимые для работы PyTorch, выполнив следующие команды в терминале:

    sudo apt-get update
    sudo apt-get install libblas3 libomp5 liblapack3
  5. Установите PyTorch с поддержкой DirectML:
    Используйте следующую команду для установки PyTorch с поддержкой DirectML, которая позволяет выполнять вычисления на GPU:

    pip install pytorch-directml

Заключение

Теперь вы должны быть готовы использовать PyTorch на вашем GPU AMD через WSL2. Если возникнут дополнительные вопросы или проблемы с установкой, не стесняйтесь обращаться за помощью – сообщество разработчиков всегда готово помочь новичкам. Удачи с вашим проектом!

Оцените материал
Добавить комментарий

Капча загружается...