WSL2:安装新内核时出现问题

WSL2:安装新内核时出现问题

我会先说:我在 Linux 环境方面没有很多经验。

我正在尝试在运行 Ubuntu 的 WSL2 上安装 ROCm。我将在课程中使用 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

我该如何继续?

答案1

我发现这个帖子这表明问题可能是 WSL 不允许您安装模块。

嘿,这就是我的答案!记住:

  • 我这样开头:

    “虽然我没有任何 AMD GPU 系统可供尝试(我也不确定 ROCm 是否适用于 WSL2)……”

  • 它没有赞成票,没有被接受,也没有任何评论让我们知道它是否有帮助。

所以……不要相信它是可靠的!甚至可以随意投反对票!很难说我自己的答案,但回想起来,它可能是不是准确的。我将添加一个链接到这个答案但是,以便它重定向到最新信息。以下信息是否现在正确的要么不,我需要你帮我!

我将在课程中使用 PyTorch,并且想使用 GPU 进行计算。

好的,那是我要解决的问题,而不是如何构建具有 ROCm 支持的内核(因为我不再认为这会有帮助)。

目前,我仍然没有 AMD GPU 来直接测试这一点,但至少我现在已经在 WSL2 下的 nVideo 2070 上完成了一些 GPU 计算工作。

所以这是我的最新的思考,查看过去的问题、你的问题和其他一些信息:

  • WSL2 下可能不需要 ROCm。 WSL2 使用以下方式通过直通系统使 GPU 可供 Linux 使用:视窗(非 Linux)驱动程序。如果您查看/usr/lib/wsl,您会发现两个目录已安装到您的 WSL2 实例中 -../drivers../lib。它们通过(也注入)添加到库缓存中/etc/ld.so.conf/ld.wsl.conf

    它是这些使您能够访问 GPU 的库和驱动程序。

  • 当我去年看另一个问题时,我没有意识到ROCm是LinuxGPU 计算的等效库。如果它确实作为模块安装,那么它在 WSL2 下不太可能有用,因为它无法直接访问所需的 GPU。现在回想起来,以我当时所知道的知识,我应该能够弄清楚这一点。

所以呢您需要在 AMD GPU 上的 WSL2 下使用 Pytorch 吗?再次,在这里猜测一下,但是......

  • 这个文档似乎表明您需要 Windows 11。虽然我认为大多数 GPU 计算支持在 Windows 10 中可用,但这可能是需要 Windows 11 的一个领域。您没有提到您的 Windows 版本,所以我不确定这对你来说是否可能。

  • 最新的 AMD 驱动程序视窗。去年左右的大部分事情都应该足够了。

  • 合适的Python环境。微软推荐康达。至少我最终自己将 Docker 用于 TensorFlow。

  • 依赖项是libblas3 libomp5 liblapack3

  • 进而pip install pytorch-directml

老实说,应该就是这样。根据这个文档, AMD 支持带有 DirectML 的 PyTorch。

在 WSL2 下的 nVidia 上运行 TensorFlow 时,我不需要任何额外的本机驱动程序/模块。我做过必须/usr/lib/wsl/lib向 Docker 提供目录,但这只是因为我需要为 TensorFlow 运行特定的旧 Python 版本,而最简单的方法是通过 Docker。

相关内容