WSL2和CUDA踩坑
 
WSL2里可以直接跑cuda了, 目前(2020年10月) 功能可用, 但bug很多, 不够完善
 
 
1. 安装
    主要参考: https://docs.nvidia.com/cuda/wsl-user-guide/index.html
    
    注意:
        1. 目前需要加入windows体验计划, 并选dev通道, 更新到开发版的windows
        2. 开启hyper-v/wsl/虚拟化平台等windows的功能并安好wsl, 可能需要wsl --update更新内核
        3. 只要在windows上安装这一个驱动就可以了 https://developer.nvidia.com/cuda/wsl/download 在WSL2里是不需要安驱动的.
   4. 在wsl里安cuda的话是用: cuda-toolkit-11-1 
Do not choose the , , or  meta-packages under WSL 2 since these packages will result in an attempt to install the Linux NVIDIA driver under WSL 2.
 
2. 常见问题
 
    1. DNS有问题
        在/etc/resolv.conf 里加自已的dns可暂时解决
        永久解决要新建/etc/wsl.conf文件内容如下:
    [network]
    generateResolvConf = false
   删掉 原来的 /etc/resolv.conf (这是个链接) 换成好用的dns设置
 
    2. 太占C盘空间
        最简单的移动方法, 找到wsl2的ext4.vhdx文件在哪:  
        一般在类似这种地方:  C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState
        把ext4.vhdx移到其它盘, 再作一个SymbolLink就可以了 New-Item -ItemType SymbolicLink -Path . -Name ext4.vhdx -Target $newLocation
 
    3. wsl读写速度慢
        和wsl1不同现在的/mnt/下的碰盘访问走的是网络, 在读写大量小文件时慢的怀疑人生. 尽量用本地的盘吧
 
    4. wsl扩容
        wsl2默认只有256G的大小, 可以直接用hyper-v中的磁盘工具给ext4.vhdx扩容. 再到wsl里重新给/划空间
           sudo resize2fs /dev/sdb <sizeInMegabytes>G
 
    5. wsl2和代理工具Proxifer互相冲突 [ 参考的对象类型不支持尝试的操作 The attempted operation is not supported for the type of object referenced ].
 
 
 
 
10-24 22:45