V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
James369
V2EX  ›  程序员

有 v 友用 wsl 来做 3d 图形或 AI 训练的吗?

  •  
  •   James369 · 2021-12-25 10:28:57 +08:00 · 4874 次点击
    这是一个创建于 1098 天前的主题,其中的信息可能已经有所发展或是发生改变。

    windows 还是挺有意思的,搞了一个 linux 子系统在里面,以前以为只是个单独的虚拟机,用了一段时间感觉还不错。与 windows 结合的比较紧密,包括磁盘的映射,服务的穿透等,还是比较丝滑的,基本感觉不到是 2 个系统的割裂存在。

    所以想进一步挖掘下,能否用来搞 3d 图形开发 /应用,甚至利用多 GPU/Cuda 来跑机器学习训练?另外,应该用 wsl1 好还是 wsl2 更好?

    第 1 条附言  ·  2021-12-26 00:13:12 +08:00
    诶,既然 docker 也支持 GPU/cuda ,那么基于 docker 的方式岂不是比 wsl2 更加轻量?
    准备明天玩玩试试。。
    24 条回复    2021-12-29 20:50:01 +08:00
    Saxton
        1
    Saxton  
       2021-12-25 10:43:36 +08:00
    wsl2 无脑冲就完事了
    thinkershare
        2
    thinkershare  
       2021-12-25 10:48:38 +08:00
    有的, 我长时间使用 WSL2, 已经用了一年了, 没啥问题, 图像程序也没啥问题
    James369
        3
    James369  
    OP
       2021-12-25 10:59:55 +08:00
    @thinkershare 准备改变一下工作方式,以前都是 linux 当宿主机再跑 win 虚拟机,哈
    James369
        4
    James369  
    OP
       2021-12-25 11:39:17 +08:00
    就是 GPU 要从宿主机穿进虚拟机,不知道性能损失怎么样?,buffer 不知道拷贝了多少次
    padeoe
        5
    padeoe  
       2021-12-25 12:02:43 +08:00
    现在还是测试版吧,在里面装了 nvidia-docker 跑 torch 程序,吃掉巨量内存还卡着不动,同样的容器 linux 就没问题,所以是 wsl2 的 bug ,放弃了,哪天稳定版了再考虑
    ch2
        6
    ch2  
       2021-12-25 12:04:14 +08:00
    你说的都是 2 代专属的
    interim
        7
    interim  
       2021-12-25 12:17:39 +08:00
    需要安装测试版驱动,5 开头的驱动版本,支持 gpu 直通
    wwqgtxx
        8
    wwqgtxx  
       2021-12-25 12:26:23 +08:00
    @chnyuwen 如果是 wsl2 跑 cuda 的话,R495 驱动就已经支持了,配合 win10 21h2 或者 win11 即可,至于完整的 gpu passthrough 好像也没见到又这方面的新闻吧
    leaves98
        9
    leaves98  
       2021-12-25 14:17:12 +08:00   ❤️ 1
    可以的,与原生差距不大了,越跑满差距越小。
    https://developer.nvidia.com/blog/leveling-up-cuda-performance-on-wsl2-with-new-enhancements/
    nightwitch
        10
    nightwitch  
       2021-12-25 14:56:16 +08:00
    都可以用,都用的不开心。

    3D 图形开发,Linux 下只有 OpenGL 和 Vulkan 可以用,DX 是没有的。
    机器 /深度学习 Windows 有显存上的限制,可用的显存比 Linux 上要小,本来显存对于训练就很吃紧,windows 再预留 20%没得玩了
    whywaoxaks
        11
    whywaoxaks  
       2021-12-25 14:57:50 +08:00
    装 docker 就给我劝退了,为啥必须得在 win 下装,不能直接在 wsl 里装。。
    lysS
        12
    lysS  
       2021-12-25 15:16:59 +08:00
    磁盘 io 好像资源 75%的性能,cpu ,gpu 优化得很好
    lysS
        13
    lysS  
       2021-12-25 15:17:45 +08:00
    @whywaoxaks 可以直接在 wsl 里装,只不过没有 systemctl ,得用 service 启动
    CrazyRundong
        14
    CrazyRundong  
       2021-12-25 16:10:26 +08:00
    wsl2 可以用 cuda ,日常轻量 debug 还行,真要训练也就图一乐
    LeeReamond
        15
    LeeReamond  
       2021-12-25 17:16:01 +08:00
    有个疑问谁能给我解答一下,虚拟机不是装不上显卡驱动的吗。。
    momocraft
        16
    momocraft  
       2021-12-25 17:26:08 +08:00
    我 wsl2 才开始用 不知道 wsl1
    opengl 直接可以用
    CUDA 不支持 wsl2 和 tf 的较新版本
    sujin190
        17
    sujin190  
       2021-12-25 22:35:41 +08:00
    @LeeReamond #15 win11 的 wsl 已经可以装了,主机和 wsl 都能同时识别出显卡来了,tensorflow 跑起来很正常
    ByteCat
        18
    ByteCat  
       2021-12-26 02:44:55 +08:00
    跑 CUDA 炼丹没问题,见 https://www.imbytecat.com/arch-linux-for-wsl2-bbac09e473044bf7934357267bbcb4d1
    运行 GUI 程序也没问题,就是缩放之后有点糊
    ywy12345
        19
    ywy12345  
       2021-12-26 14:05:16 +08:00 via iPhone
    docker 也是虚拟机,为啥比 wsl2 轻量?
    James369
        20
    James369  
    OP
       2021-12-26 17:40:02 +08:00
    @ywy12345 确实,安装 docker desktop 之后发现,win10 上的 docker 其实 backend 后端就是基于 wsl2 的。
    不过发现还是挺绕的,就是 hyper-v ,wsl2 ,ubuntu ,docker 之间的关系。

    基本环境如下:
    1. win10 启用 wsl2 ,wsl2 安装 ubuntu 子系统。
    2. win10 安装 docker desktop.

    奇怪现象 1:
    ubuntu 里面没有安装 docker ,却可以使用 docker 命令:并且结果和 win10 在 powershell 上输入 docker 命令一样的结果。(后来发现原来是 win10 的 wsl 挂载到了 ubuntu 里面:即: /usr/bin/docker 软链到 /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker ,互相嵌套。当然前提是要在 win10 上先要启动 docker )

    奇怪的现象 2:
    打开 Hyper-V 管理器,查看虚拟机列表,竟然是空的。(那么 wsl2 ,ubuntu ,docker 都不算虚拟机?)

    还有很多值得研究的东西。。
    wwqgtxx
        21
    wwqgtxx  
       2021-12-26 22:32:07 +08:00   ❤️ 1
    @James369 因为 WSL2 的虚拟机属于 windows-hypervisor-platform
    https://docs.microsoft.com/en-us/virtualization/api/hypervisor-platform/hypervisor-platform
    本质上并不是一个 Hyper-V 的虚拟机
    Coelacanth
        22
    Coelacanth  
       2021-12-29 08:51:45 +08:00
    训练跑得还行,不过不是很确定跟 linux 原版上跑得效率相比较如何。
    UchihaJay
        23
    UchihaJay  
       2021-12-29 13:59:36 +08:00
    我也很好奇,纠结点主要有
    1. systemctl 支持不友好。
    2. 磁盘性能,数据全放 C 盘?
    3. 显存能用 100%?
    4. 会不会出现一些奇葩的问题
    wwqgtxx
        24
    wwqgtxx  
       2021-12-29 20:50:01 +08:00
    @UchihaJay 直到现在 WSL2 也没支持 systemd 吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2053 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:35 · PVG 08:35 · LAX 16:35 · JFK 19:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.