From 3d1007bbfa06626792814147357ecf1cff133a8e Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Mon, 11 May 2026 14:45:31 +0800 Subject: [PATCH 1/3] feat: add paddlepaddle 3.2.2 container image for OC9 --- frameworks/paddle/3.2.2/Dockerfile | 28 ++++++++++++++++ frameworks/paddle/3.2.2/README.md | 52 ++++++++++++++++++++++++++++++ frameworks/paddle/3.2.2/build.conf | 4 +++ frameworks/paddle/3.2.2/test.sh | 43 ++++++++++++++++++++++++ 4 files changed, 127 insertions(+) create mode 100644 frameworks/paddle/3.2.2/Dockerfile create mode 100644 frameworks/paddle/3.2.2/README.md create mode 100644 frameworks/paddle/3.2.2/build.conf create mode 100755 frameworks/paddle/3.2.2/test.sh diff --git a/frameworks/paddle/3.2.2/Dockerfile b/frameworks/paddle/3.2.2/Dockerfile new file mode 100644 index 0000000..1c00252 --- /dev/null +++ b/frameworks/paddle/3.2.2/Dockerfile @@ -0,0 +1,28 @@ +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.2.2 (GPU) on OpenCloudOS 9" + +# Install Python 3.11 +RUN dnf install -y \ + python3.11 \ + python3.11-pip \ + && 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.2.2 \ + -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"] diff --git a/frameworks/paddle/3.2.2/README.md b/frameworks/paddle/3.2.2/README.md new file mode 100644 index 0000000..642bafc --- /dev/null +++ b/frameworks/paddle/3.2.2/README.md @@ -0,0 +1,52 @@ +# PaddlePaddle on OpenCloudOS 9 + +## 基本信息 +- **框架版本**:v3.2.2 +- **基础镜像**: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.2.2 . +``` + +## 使用示例 + +```bash +# 验证 PaddlePaddle 版本 +docker run --rm --gpus all oc9-paddle:3.2.2 python3 -c "import paddle; print(paddle.__version__)" + +# 验证 GPU 可用性 +docker run --rm --gpus all oc9-paddle:3.2.2 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.2.2 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.2.2/build.conf b/frameworks/paddle/3.2.2/build.conf new file mode 100644 index 0000000..44eec34 --- /dev/null +++ b/frameworks/paddle/3.2.2/build.conf @@ -0,0 +1,4 @@ +# paddlepaddle 3.2.2 on OpenCloudOS 9 (GPU) +IMAGE_NAME=oc9-paddle +IMAGE_TAG=3.2.2 +GPU_TEST=false diff --git a/frameworks/paddle/3.2.2/test.sh b/frameworks/paddle/3.2.2/test.sh new file mode 100755 index 0000000..b2e799d --- /dev/null +++ b/frameworks/paddle/3.2.2/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 ===" -- Gitee From fd327d1861614eaa92c90c0f92646946274ec8c6 Mon Sep 17 00:00:00 2001 From: samblade <812101+samblade@user.noreply.gitee.com> Date: Mon, 11 May 2026 07:00:06 +0000 Subject: [PATCH 2/3] update frameworks/paddle/3.2.2/README.md. Signed-off-by: samblade <812101+samblade@user.noreply.gitee.com> --- frameworks/paddle/3.2.2/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/paddle/3.2.2/README.md b/frameworks/paddle/3.2.2/README.md index 642bafc..9bed14e 100644 --- a/frameworks/paddle/3.2.2/README.md +++ b/frameworks/paddle/3.2.2/README.md @@ -39,7 +39,7 @@ print(f'Result: {y}') ```bash # 执行测试脚本(需要 GPU 环境) -bash test.sh oc9-paddle:3.3.0 +bash test.sh oc9-paddle:3.2.2 ``` 测试脚本会验证以下内容: -- Gitee From 36a9ab92cfd2c0b3b30215387eb30be58e2292ed Mon Sep 17 00:00:00 2001 From: samblade <812101+samblade@user.noreply.gitee.com> Date: Mon, 11 May 2026 08:39:35 +0000 Subject: [PATCH 3/3] update frameworks/paddle/3.2.2/Dockerfile. Signed-off-by: samblade <812101+samblade@user.noreply.gitee.com> --- frameworks/paddle/3.2.2/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frameworks/paddle/3.2.2/Dockerfile b/frameworks/paddle/3.2.2/Dockerfile index 1c00252..4a26a94 100644 --- a/frameworks/paddle/3.2.2/Dockerfile +++ b/frameworks/paddle/3.2.2/Dockerfile @@ -4,10 +4,11 @@ LABEL maintainer="OpenCloudOS Community" LABEL org.opencontainers.image.source="https://gitee.com/OpenCloudOS/ai-agent-container" LABEL org.opencontainers.image.description="PaddlePaddle 3.2.2 (GPU) on OpenCloudOS 9" -# Install Python 3.11 +# 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 @@ -25,4 +26,4 @@ ENV NVIDIA_VISIBLE_DEVICES=all RUN echo $(date +"%Y-%m-%dT%H:%M:%S%z") > /opencloudos_build_date.txt -CMD ["python3.11"] +CMD ["python3.11"] \ No newline at end of file -- Gitee