ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

machine-learning-for-trading 如何用 Docker 配置 NVIDIA GPU 并验证 CUDA 可用

machine-learning-for-trading 如何用 Docker 配置 NVIDIA GPU 并验证 CUDA 可用 machine-learning-for-trading 如何用 Docker 配置 NVIDIA GPU 并验证 CUDA 可用【免费下载链接】machine-learning-for-tradingCode for Machine Learning for Trading, 3rd edition — from data sourcing to live execution.项目地址: https://gitcode.com/GitHub_Trending/ma/machine-learning-for-tradingmachine-learning-for-tradingML4T 第三版中 Ch05、Ch10、Ch13、Ch14、Ch21 等深度学习章节支持 GPU 加速。默认 Docker 路径拉取的ml4t镜像本身已内置 PyTorchCUDA 12.8但容器默认看不到宿主机显卡要跑 GPU 版 notebook需要按 docs/installation.md 的 GPU 章节配置 NVIDIA GPU 直通再用一条命令确认容器内torch.cuda.is_available()返回True。适用的前提是文档明确列出的三项Linux x86_64原生或 Windows 11WSL2macOS 不支持 GPU 路径平台支持表中标注为-NVIDIA GPUGTX 1060 或更高NVIDIA Driver 525对应 CUDA 12.x。如果这三项不满足GPU 配置无从谈起GPU 不可用时GPU 密集型 notebook 都带 CPU fallback只是参数会减少。Ubuntu安装 nvidia-container-toolkit在已装好 Docker Engine 的 Ubuntu/Debian 上Docker 本身的安装与docker用户组配置见 docs/installation.md 的 Ubuntu / Linux 小节执行以下命令。这几步会写入 GPG 密钥环、向/etc/apt/sources.list.d/添加 NVIDIA 仓库、安装nvidia-container-toolkit包并用nvidia-ctk把 Docker 注册为 NVIDIA runtime最后一条会重启 Docker 守护进程sudo 操作当前运行的容器会短暂中断这是文档要求的固定序列按原样执行curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \ sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed s#deb https://#deb [signed-by/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt update sudo apt install -y nvidia-container-toolkit sudo nvidia-ctk runtime configure --runtimedocker sudo systemctl restart docker完成后宿主机上已有的 NVIDIA 驱动会被 nvidia-container-toolkit 接入 Docker runtime容器内即可申请 GPU 设备。Windows 11WSL2无需额外配置文档说明Windows 上装好 NVIDIA Driver 525、并使用 WSL2 后端的 Docker DesktopGPU passthrough 自动生效不需要手动装 nvidia-container-toolkit。WSL2 与 Docker Desktop 的前置安装步骤含重启与wsl --list --verbose验证在 docs/installation.md 的 Windows 11 (WSL2) 小节注意所有docker命令都要在 WSL 的 Ubuntu 终端里执行不要在 PowerShell 中执行。用 ml4t-gpu 服务验证 CUDA仓库根目录的 docker-compose.yml 中ml4t-gpu服务与ml4t服务使用同一个镜像ml4t/ml4t:latest即 Quick Start 里docker compose pull ml4t拉下的镜像不需要单独再拉区别是它在deploy.resources.reservations.devices下声明了driver: nvidia、count: all、capabilities: [gpu]的资源预留并挂在 compose profilegpu后面。所以配置 GPU不需要改任何文件用--profile gpu选择该服务即可。先跑文档给出的最小验证命令确认 GPU 对容器可见docker compose --profile gpu run --rm ml4t-gpu python -c \ import torch; print(fCUDA: {torch.cuda.is_available()})文档预期的输出是CUDA: True看到CUDA: True说明宿主机 GPU 已经成功传入容器、容器内的 PyTorch 能识别 CUDA。之后就可以用同一条路径跑 GPU notebook例如 Ch13 的核心架构 notebook该.py文件位于仓库13_dl_time_series/目录docker compose --profile gpu run --rm ml4t-gpu python 13_dl_time_series/01_core_architectures.py如果想常驻一个带 GPU 的 Jupyter Lab 而不是每次run --rmcompose 文件里ml4t-gpu服务的命令就是 Jupyter Lab端口映射为127.0.0.1:8889:8888即docker compose --profile gpu up ml4t-gpu后访问 http://localhost:8889ml4t服务占用的是 8888。用 verify_installation.py 查看 GPU 状态行仓库自带的安装验证脚本 scripts/verify_installation.py 在 Runtime 分类中会单独输出一行CUDA (GPU)这是文档 Quick Start 第 4 步使用的统一验证入口docker compose run --rm ml4t python scripts/verify_installation.py。该行的含义由脚本源码决定检测到 GPUPASS详情格式为GPU 名称 (显存 GB) - CUDA 版本例如会打印设备名、总显存和torch.version.cuda没检测到 GPUSKIP详情为 No GPU detected (CPU-only mode)——这表示环境本身可用只是当前运行方式没有挂 GPU运行时抛异常FAIL。注意脚本中的 SKIP 不算失败验证脚本的退出码只由必需项非 Optional 分类的 FAIL 决定。也就是说在ml4t无 GPU 服务里跑它看到SKIP是正常的要确认 GPU 直通成功仍以ml4t-gpu服务内那条CUDA: True命令为准。可选分支py312-gpu 与 rapids 镜像py312-gpu有六个 notebook 因依赖只能跑在ml4t-py312镜像Python 3.12amd64 only上其中需要 GPU 的六个是 Ch0501_timegan、03_sigcwgan_signatures、07_dp_ganCh1003_sentiment_evolutionCh1210_shap_nlp_sentimentCh1406_conditional_autoencoder。在有 NVIDIA GPU 的机器上用独立服务py312-gpucompose 中同样声明了 nvidia 设备预留count: 1运行文档示例docker compose --profile py312-gpu run --rm py312-gpu \ python 05_synthetic_data/03_sigcwgan_signatures.py该服务仅限 Linux 与 Windows WSL2和ml4t-gpu的适用平台一致。rapids 镜像Ch12 的 GBM GPU 基准RAPIDS cuML、LightGBM CUDA、CatBoost GPU使用单独的rapids镜像必须本地构建无 Docker Hub 预构建版amd64 NVIDIA GPU约 15 GB见 envs/README.mddocker compose --profile rapids build rapids docker compose --profile rapids run --rm rapids python 12_gradient_boosting/02_gbm_comparison.py该镜像基于nvcr.io/nvidia/rapidsai/base:25.04-cuda12.8-py3.12并自行编译 CUDA 版 LightGBM构建耗时明显长于 pull 预构建镜像只建议在确实要做 Ch12 对比时执行。边界与限制macOSIntel 与 Apple Silicon都没有 GPU 路径平台表中 GPU 列一律为-GPU 直通的前提全部在宿主机驱动 525、nvidia-container-toolkit原生 Linux 手动装WSL2 自动容器内不需要装任何 CUDA 组件PyTorch 及其 CUDA 12.8 运行时随镜像提供验证只覆盖容器能看到 GPU 且 PyTorch 可用torch.cuda.is_available()为True、verify_installation.py的CUDA (GPU)行状态文档没有定义更细粒度的 GPU 性能指标或阈值notebook 全部带 CPU fallbackGPU 配置失败不会阻塞阅读其他章节只是深度学习章节跑在 CPU 上。【免费下载链接】machine-learning-for-tradingCode for Machine Learning for Trading, 3rd edition — from data sourcing to live execution.项目地址: https://gitcode.com/GitHub_Trending/ma/machine-learning-for-trading创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进