logo
0
0
WeChat Login

CNB GPU 支持配置

本项目配置了 Cloud Native Buildpacks (CNB) 支持 GPU 加速的机器学习和深度学习应用。

文件说明

核心配置文件

  • project.toml - CNB 构建配置,包含 GPU 环境变量和构建包配置
  • requirements.txt - Python 依赖,包含 GPU 版本的 PyTorch 和 TensorFlow
  • Procfile - 定义运行时进程
  • Dockerfile.gpu - 支持 GPU 的 Docker 镜像
  • build.sh - CNB 构建脚本

应用文件

  • app.py - 示例应用,包含 GPU 检测和测试功能
  • worker.py - 后台工作进程(可选)

快速开始

1. 安装必要的工具

# 安装 pack CLI curl -fsSL https://buildpacks.io/buildpack.sh | sh -s -- --version latest # 或者手动下载安装 wget https://github.com/buildpacks/pack/releases/download/v0.33.2/pack-v0.33.2-linux.tgz tar -xzf pack-v0.33.2-linux.tgz sudo mv pack /usr/local/bin/

2. 构建 GPU 应用

# 使用构建脚本 ./build.sh # 或者手动构建 pack build my-gpu-app \ --builder heroku/buildpacks:20 \ --env BP_GPU_SUPPORT=true

3. 运行应用

# 使用 Docker 运行(需要 nvidia-docker) docker run --gpus all -p 8080:8080 my-gpu-app # 或者直接运行 Python 应用 python app.py

GPU 环境变量

项目配置了以下 GPU 相关环境变量:

  • BP_GPU_SUPPORT=true - 启用 GPU 支持
  • CUDA_VERSION=11.8 - CUDA 版本
  • NVIDIA_VISIBLE_DEVICES=all - 可见所有 GPU 设备
  • NVIDIA_DRIVER_CAPABILITIES=compute,utility - GPU 驱动能力
  • CUDA_HOME=/usr/local/cuda - CUDA 安装路径
  • LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH - CUDA 库路径
  • XLA_PYTHON_CLIENT_PREALLOCATE=false - 禁用 XLA 预分配
  • TF_FORCE_GPU_ALLOW_GROWTH=true - TensorFlow GPU 内存增长
  • PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512 - PyTorch GPU 内存配置

测试 GPU 支持

访问应用的不同端点来测试 GPU 支持:

  • http://localhost:8080/ - 主页
  • http://localhost:8080/gpu-info - GPU 信息 API

或者直接运行测试:

python app.py

这将显示:

  • PyTorch CUDA 支持情况
  • TensorFlow GPU 设备信息
  • NVIDIA ML 设备信息
  • 简单的 GPU 性能测试

支持的库

  • PyTorch (CUDA 11.8)
  • TensorFlow GPU
  • XGBoost
  • LightGBM
  • scikit-learn
  • JupyterLab
  • NVIDIA ML (pynvml)

注意事项

  1. 确保宿主机安装了 NVIDIA 驱动和 Docker
  2. 需要安装 nvidia-container-toolkit
  3. 构建时会自动下载 GPU 版本的库,可能需要较长时间
  4. 运行时需要 --gpus all 参数来访问 GPU

故障排除

GPU 不可用

检查 NVIDIA 驱动:

nvidia-smi

检查 Docker GPU 支持:

docker run --rm --gpus all nvidia/cuda:11.8-base-ubuntu20.04 nvidia-smi

构建失败

检查 pack CLI 版本:

pack --version

检查项目配置:

cat project.toml

内存不足

调整 GPU 内存配置:

  • 修改 PYTORCH_CUDA_ALLOC_CONF
  • 设置 XLA_PYTHON_CLIENT_PREALLOCATE=false
  • 使用 TF_FORCE_GPU_ALLOW_GROWTH=true

About

No description, topics, or website provided.
Language
Python62.2%
HTML33.4%
Shell0.1%
Dockerfile0%
Others4.3%