本项目配置了 Cloud Native Buildpacks (CNB) 支持 GPU 加速的机器学习和深度学习应用。
project.toml - CNB 构建配置,包含 GPU 环境变量和构建包配置requirements.txt - Python 依赖,包含 GPU 版本的 PyTorch 和 TensorFlowProcfile - 定义运行时进程Dockerfile.gpu - 支持 GPU 的 Docker 镜像build.sh - CNB 构建脚本app.py - 示例应用,包含 GPU 检测和测试功能worker.py - 后台工作进程(可选)# 安装 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/
# 使用构建脚本
./build.sh
# 或者手动构建
pack build my-gpu-app \
--builder heroku/buildpacks:20 \
--env BP_GPU_SUPPORT=true
# 使用 Docker 运行(需要 nvidia-docker)
docker run --gpus all -p 8080:8080 my-gpu-app
# 或者直接运行 Python 应用
python app.py
项目配置了以下 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 支持:
http://localhost:8080/ - 主页http://localhost:8080/gpu-info - GPU 信息 API或者直接运行测试:
python app.py
这将显示:
--gpus all 参数来访问 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_CONFXLA_PYTHON_CLIENT_PREALLOCATE=falseTF_FORCE_GPU_ALLOW_GROWTH=true