diff --git a/frameworks/paddle/3.3.0/Dockerfile b/frameworks/paddle/3.3.0/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..7445890b10d5e95bbfc79058600e6b890d981657 --- /dev/null +++ b/frameworks/paddle/3.3.0/Dockerfile @@ -0,0 +1,29 @@ +FROM opencloudos/opencloudos9-cuda-devel:12.8 + +LABEL maintainer="OpenCloudOS Community" +LABEL org.opencontainers.image.source="https://gitee.com/OpenCloudOS/ai-agent-container" +LABEL org.opencontainers.image.description="PaddlePaddle 3.3.0 (GPU) on OpenCloudOS 9" + +# Install Python 3.11 and build tools +RUN dnf install -y \ + python3.11 \ + python3.11-pip \ + ccache \ + && dnf clean all \ + && rm -rf /var/cache/yum/* \ + && ln -sf /usr/bin/python3.11 /usr/bin/python3 + +# Install PaddlePaddle GPU (CUDA 12.6) from official index +# PaddlePaddle ships its own CUDA runtime, compatible with CUDA 12.8 base image +RUN pip3.11 install --no-cache-dir uv \ + && uv pip install --no-cache-dir \ + paddlepaddle-gpu==3.3.0 \ + -i https://www.paddlepaddle.org.cn/packages/stable/cu126/ \ + --system + +# Set GPU environment +ENV NVIDIA_VISIBLE_DEVICES=all + +RUN echo $(date +"%Y-%m-%dT%H:%M:%S%z") > /opencloudos_build_date.txt + +CMD ["python3.11"] \ No newline at end of file diff --git a/frameworks/paddle/3.3.0/README.md b/frameworks/paddle/3.3.0/README.md new file mode 100644 index 0000000000000000000000000000000000000000..234fb4adc74e838a4f9f12d484e578c3b1665d6e --- /dev/null +++ b/frameworks/paddle/3.3.0/README.md @@ -0,0 +1,52 @@ +# PaddlePaddle on OpenCloudOS 9 + +## 基本信息 +- **框架版本**:v3.3.0 +- **基础镜像**:opencloudos/opencloudos9-cuda-devel:12.8 +- **Python 版本**:3.11 +- **CUDA 版本**:12.6(PaddlePaddle 内置 CUDA 运行时) +- **GPU 驱动要求**:>= 550.54.14 + +## 构建 + +```bash +docker build -t oc9-paddle:3.3.0 . +``` + +## 使用示例 + +```bash +# 验证 PaddlePaddle 版本 +docker run --rm --gpus all oc9-paddle:3.3.0 python3 -c "import paddle; print(paddle.__version__)" + +# 验证 GPU 可用性 +docker run --rm --gpus all oc9-paddle:3.3.0 python3 -c " +import paddle +print(f'GPU available: {paddle.device.is_compiled_with_cuda()}') +print(f'GPU count: {paddle.device.cuda.device_count()}') +" + +# GPU 矩阵运算示例 +docker run --rm --gpus all oc9-paddle:3.3.0 python3 -c " +import paddle +x = paddle.to_tensor([[1.0, 2.0], [3.0, 4.0]], place=paddle.CUDAPlace(0)) +y = paddle.matmul(x, x) +print(f'Result: {y}') +" +``` + +## 测试验证 + +```bash +# 执行测试脚本(需要 GPU 环境) +bash test.sh oc9-paddle:3.3.0 +``` + +测试脚本会验证以下内容: +- PaddlePaddle 是否正常导入 +- GPU 是否可用 +- GPU 上的张量计算是否正确 + +## 已知问题 +- PaddlePaddle GPU 版本自带 CUDA 12.6 运行时,与基础镜像的 CUDA 12.8 不冲突。 +- 首次运行时 PaddlePaddle 可能需要下载额外的库文件,建议保证网络连通。 diff --git a/frameworks/paddle/3.3.0/build.conf b/frameworks/paddle/3.3.0/build.conf new file mode 100644 index 0000000000000000000000000000000000000000..9812bad6783a4d4a985c64a16fd90fcc5facd735 --- /dev/null +++ b/frameworks/paddle/3.3.0/build.conf @@ -0,0 +1,4 @@ +# paddlepaddle 3.3.0 on OpenCloudOS 9 (GPU) +IMAGE_NAME=oc9-paddle +IMAGE_TAG=3.3.0 +GPU_TEST=false diff --git a/frameworks/paddle/3.3.0/test.sh b/frameworks/paddle/3.3.0/test.sh new file mode 100755 index 0000000000000000000000000000000000000000..b2e799d747313265b0acc2d7aec59beb975a5980 --- /dev/null +++ b/frameworks/paddle/3.3.0/test.sh @@ -0,0 +1,43 @@ +#!/bin/bash +set -e + +IMAGE="${1:?ERROR: Missing image argument. Usage: bash test.sh }" + +echo "=== PaddlePaddle GPU Image Test ===" + +# 1. Verify PaddlePaddle import +echo -n "Check paddle import... " +docker run --rm --gpus all "$IMAGE" python3 -c " +import paddle +print(f'PaddlePaddle version: {paddle.__version__}') +" && echo "PASS" || { echo "FAIL"; exit 1; } + +# 2. Verify GPU availability +echo -n "Check GPU availability... " +docker run --rm --gpus all "$IMAGE" python3 -c " +import paddle +assert paddle.device.is_compiled_with_cuda(), 'PaddlePaddle not compiled with CUDA' +gpu_count = paddle.device.cuda.device_count() +assert gpu_count > 0, 'No GPU detected' +print(f'GPU count: {gpu_count}') +print(f'GPU place: {paddle.CUDAPlace(0)}') +" && echo "PASS" || { echo "FAIL"; exit 1; } + +# 3. Verify core functionality (simple tensor computation on GPU) +echo -n "Check core functionality... " +docker run --rm --gpus all "$IMAGE" python3 -c " +import paddle + +# Create tensor on GPU +x = paddle.to_tensor([[1.0, 2.0], [3.0, 4.0]], place=paddle.CUDAPlace(0)) +y = paddle.to_tensor([[5.0, 6.0], [7.0, 8.0]], place=paddle.CUDAPlace(0)) + +# Matrix multiplication +z = paddle.matmul(x, y) +expected = paddle.to_tensor([[19.0, 22.0], [43.0, 50.0]], place=paddle.CUDAPlace(0)) +assert paddle.allclose(z, expected), f'Matrix multiplication result mismatch: {z}' + +print('Core functionality OK') +" && echo "PASS" || { echo "FAIL"; exit 1; } + +echo "=== All tests passed ==="