由于MedicalSeg项目在Windows下跑的十分不顺利,于是我尝试使用WSL2去运行它,但期间踩了很多坑,发出来记录一下。
如何配置WSL2这里就不细讲了,有兴趣的可以自己查一下,这里主要讲安装并运行PaddlePaddle-GPU。
首先去paddlepaddle的官网安装选择合适的linux版本安装,网址:安装
安装完成后依次输入python, import paddle, paddle.utils.run_check(),发现报错。
经查询发现是cudnn配置问题。PaddlePaddle不像Pytorch,需要自行配置cudnn。去英伟达官网,下载相应版本的linux x86_64版本,链接:https://developer.nvidia.com/rdp/cudnn-archive
下载解压完成后,有lib和include两个文件夹,分别放在/usr/local/cuda-12.0/lib64和/usr/local/cuda-12.0/include下,其中cuda-12.0改为你cuda相应的版本号。
记得给文件提权,否则代码没法访问。sudo chmod a+r /usr/local/cuda-12.0/lib64 和 sudo chmod a+r /usr/local/cuda-12.0/include。
再次依次输入python, import paddle, paddle.utils.run_check(),发现报错。
从图中我们可以发现,它可以正常检测到cudnn,说明其已经配置好了,那么现在报错是什么原因呢?我查了半天,最终发现paddle没有找到libcuda.so文件,因为在WSL2中,该文件在/usr/lib/wsl/lib路径下。
知道了问题,解决起来就很简单了,在bashrc中最后一行添上export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH,然后source ~/.bashrc,输入python, import paddle, paddle.utils.run_check(),成功。
至此,我们可以开心地用WSL2炼丹了。