Tag: Docker

1 Posts

thumbnail
基于 WSL2、Docker 的 CUDA 开发环境
基于 WSL2、Docker 的 CUDA 开发环境 在 Windows 上部署的 Docker Linux 开发环境,支持调用 CUDA 与显示 GUI,且 Visual Studio Code 的 Remote 能自动识别 Container。 Requirements Windows 10/11 ≥ Build 18362 WSL2 Kernel ≥ 5.10.43.3 Windows NVIDIA GPU Driver ≥ 495 Docker Desktop ≥ 3.1.0 / Docker ≥ 19.03 Visual Studio Code with Extension: Dev Containers CUDA Docs: CUDA on WSL User Guide 不需要任何配置,WSL2 内的发行版即可调用 CUDA。 性能损耗参见官方测试:Leveling up CUDA Performance on WSL2 with New Enhancements Docker Docs: Docker Desktop WSL 2 backend Get started with Docker remote containers on WSL 2 Introducing the Docker Desktop WSL 2 Backend 可以使用 Docker Desktop,也可以在 WSL2 内的 Linux 发行版上使用 Docker 标准的安装脚本,官方建议使用 Docker Desktop。 Docker Desktop 安装与脚本安装的架构有较大区别,会创建两个 WSL2 发行版 docker-desktop-data 和 docker-desktop 用来实际存储程序与数据。安装后的 Docker 是独立于其它 Linux 发行版的,能够被其它的发行版访问与调用,数据将不会存储在调用方的存储空间内。其它发行版对 Docker 的调用与安装在自身内时一致。 不需要依照 NVIDIA 的文档安装额外的 nvidia-docker2、nvidia-container-toolkit 包,Docker 创建 Container 时支持参数 --gpus all,启用后 Container 能够访问 CUDA。 GUI 方案 1:WSLg 直接调用 WSLg 提供的 X Server (XWayland),将 Socket 挂载给 Container: docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY debian 方案 2:VcXsrv 在 Windows 端安装 VcXsrv 作为 X Server,使用环境变量指定 Container 使用 Host 的 X Server。 VcXsrv 启动后需要勾选 Disable access control,创建 Container 时的参数:…