From a4495a0c875afa0bace6d7b6593bb35e27604c0e Mon Sep 17 00:00:00 2001 From: Icey <1790571317@qq.com> Date: Tue, 17 Jun 2025 08:03:11 +0000 Subject: [PATCH 1/9] Add cuda docker image --- .../22.03-lts/Dockerfile | 98 ++++++++++++++++++ AI/cuda/doc/image-info.yml | 70 +++++++++++++ AI/cuda/doc/picture/logo.png | Bin 0 -> 8995 bytes AI/cuda/meta.yml | 2 + 4 files changed, 170 insertions(+) create mode 100644 AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile create mode 100644 AI/cuda/doc/image-info.yml create mode 100644 AI/cuda/doc/picture/logo.png create mode 100644 AI/cuda/meta.yml diff --git a/AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile b/AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile new file mode 100644 index 0000000..3ca3649 --- /dev/null +++ b/AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile @@ -0,0 +1,98 @@ +ARG BASE=openeuler/openeuler:22.03 +ARG PY_VERSION=3.10.12 +ARG PY_MAJOR_VERSION=3.10 +ARG TORCH_VERSION=2.3.0 + +# Stage 1: Install Python +FROM ${BASE} AS python-installer + +ARG PY_VERSION +ARG PY_MAJOR_VERSION + +# Python Environment variables +ENV PATH=${PY_HOME}/bin:${PATH} + +RUN yum update -y && \ + yum install -y \ + gcc \ + gcc-c++ \ + make \ + cmake \ + curl \ + zlib-devel \ + bzip2-devel \ + openssl-devel \ + ncurses-devel \ + sqlite-devel \ + readline-devel \ + tk-devel \ + gdbm-devel \ + libpcap-devel \ + xz-devel \ + libev-devel \ + expat-devel \ + libffi-devel \ + systemtap-sdt-devel \ + && yum clean all \ + && rm -rf /var/cache/yum \ + && rm -rf /tmp/* + +# Install Python +RUN PY_INSTALLER_DIR=Python-${PY_VERSION} && \ + PY_HOME=/usr/local/python${PY_VERSION} && \ + curl -fsSL https://repo.huaweicloud.com/python/${PY_VERSION}/${PY_INSTALLER_DIR}.tgz -o /tmp/${PY_INSTALLER_DIR}.tgz && \ + tar -xf /tmp/${PY_INSTALLER_DIR}.tgz -C /tmp && \ + cd /tmp/${PY_INSTALLER_DIR} && \ + mkdir -p ${PY_HOME}/lib && \ + ./configure --enable-shared --enable-shared LDFLAGS="-Wl,-rpath ${PY_HOME}/lib" --prefix=${PY_HOME} && \ + make -j $(nproc) && \ + make altinstall && \ + ln -sf ${PY_HOME}/bin/python${PY_MAJOR_VERSION} ${PY_HOME}/bin/python3 && \ + ln -sf ${PY_HOME}/bin/pip${PY_MAJOR_VERSION} ${PY_HOME}/bin/pip3 && \ + ln -sf ${PY_HOME}/bin/python3 ${PY_HOME}/bin/python && \ + ln -sf ${PY_HOME}/bin/pip3 ${PY_HOME}/bin/pip && \ + rm -rf /tmp/* + +# Stage 2: Install CUDA and torch +FROM ${BASE} AS cuda-installer + +ARG TARGETPLATFORM +ARG PY_VERSION +ARG PY_MAJOR_VERSION +ARG TORCH_VERSION + +ENV PATH=${PY_HOME}/bin:${PATH} +ENV PATH=${PATH}:/usr/local/cuda-11.8/bin +ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-11.8/lib64 + +COPY --from=python-installer ${PY_HOME} ${PY_HOME} + +RUN yum update -y && \ + yum install -y \ + wget \ + gcc \ + make \ + xz-devel \ + && yum clean all \ + && rm -rf /var/cache/yum + +RUN \ + wget --quiet https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run -O ~/cuda_11.8.0_520.61.05_linux.run && \ + chmod +x ~/cuda_11.8.0_520.61.05_linux.run && \ + ~/cuda_11.8.0_520.61.05_linux.run --toolkit --silent && \ + rm -f ~/cuda_11.8.0_520.61.05_linux.run + +RUN ARCH=$(case "${TARGETPLATFORM}" in \ + "linux/amd64") echo "x86_64" ;; \ + "linux/arm64") echo "aarch64" ;; \ + *) echo "Unsupported TARGETPLATFORM: ${TARGETPLATFORM}" && exit 1 ;; \ + esac) && \ + mkdir -p /tmp/cudnn && \ + wget https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-${ARCH}/cudnn-linux-${ARCH}-8.9.1.23_cuda11-archive.tar.xz -O /tmp/cudnn.tar.xz && \ + tar -xvf /tmp/cudnn.tar.xz -C /tmp/cudnn --strip-components=1 && \ + cp /tmp/cudnn/include/cudnn.h /usr/local/cuda-11.8/include && \ + cp /tmp/cudnn/lib/libcudnn* /usr/local/cuda-11.8/lib64 && \ + chmod a+r /usr/local/cuda-11.8/include/cudnn.h /usr/local/cuda-11.8/lib64/libcudnn* && \ + rm -rf /tmp/cudnn* + +RUN pip3 install torch==${TORCH_VERSION} --index-url https://download.pytorch.org/whl/cu118 \ No newline at end of file diff --git a/AI/cuda/doc/image-info.yml b/AI/cuda/doc/image-info.yml new file mode 100644 index 0000000..5feb542 --- /dev/null +++ b/AI/cuda/doc/image-info.yml @@ -0,0 +1,70 @@ +name: cuda +category: ai +description: CUDA(Compute Unified Device Architecture)是由NVIDIA公司开发的并行计算平台和编程模型,它允许开发者利用NVIDIA GPU进行通用计算以加速应用程序。通过CUDA,开发者可以显著提升科学计算、机器学习等领域应用的性能。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + CUDA镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tag | Currently | Architectures | + |----------|-------------|------------------| + |[cuda11.8.0-torch2.3.0-python3.10-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile)| CUDA 11.8.0 on openEuler 22.03-LTS | arm64 | + +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/cuda:{Tag} + ``` + +usage: | + - 启动容器 + ``` + docker run \ + --name my-cuda \ + --device ${device} \ + --device /dev/davinci_manager \ + --device /dev/devmm_svm \ + --device /dev/hisi_hdc \ + -v /usr/local/dcmi:/usr/local/dcmi \ + -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ + -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ + -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \ + -v /etc/ascend_install.info:/etc/ascend_install.info \ + -it openeuler/cuda:{Tag} bash + ``` + 用户可根据自身需求选择对应版本的`{Tag}`、对应的NPU设备`{device}`以及容器启动的其他参数配置。 + + - 参数说明 + | 配置项 | 描述 | + |--|--| + | `--name my-cann` | 容器名称。| + | `--device /dev/davinci1` | NPU设备,X是芯片物理ID号,例如davinci1。 | + | `--device /dev/davinci_manager` | davinci相关的管理设备。 | + | `--device /dev/devmm_svm` | 内存管理相关设备。 | + | `--device /dev/hisi_hdc` | hdc相关管理设备。 | + | `-v /usr/local/dcmi:/usr/local/dcmi` | 将宿主机dcmi的.so和接口文件目录`/usr/local/dcmi`挂载到容器中,请根据实际情况修改。 | + | `-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi` | 将宿主机`npu-smi`工具`/usr/local/bin/npu-smi`挂载到容器中,请根据实际情况修改。 | + | `-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/` | 将宿主机目录`/usr/local/Ascend/driver/lib64/driver`挂载到容器中。请根据driver的驱动.so所在路径修改。 | + | `-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info` | 将宿主机版本信息文件`/usr/local/Ascend/driver/version.info`挂载到容器中,请根据实际情况修改。 | + | `-v /etc/ascend_install.info:/etc/ascend_install.info` |将宿主机安装信息文件`/etc/ascend_install.info`挂载到容器中。 | + | `-it` | 以交互模式启动容器。 | + | `openeuler/cuda:{Tag}` | 指定要运行的镜像为 `openeuler/cuda`,其中` {Tag}` 是需要替换的镜像标签。 | + + - 容器测试 + + 查看运行日志 + ``` + docker logs -f my-cuda + ``` + + 使用shell交互 + ``` + docker exec -it my-cuda /bin/bash + ``` + +license: Apache-2.0 license +similar_packages: + - CANN: CANN是华为针对AI场景推出的异构计算架构,对上支持多种AI框架,对下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。 diff --git a/AI/cuda/doc/picture/logo.png b/AI/cuda/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..14534f63fa19bd2af2082ee20b6a87783923ec7f GIT binary patch literal 8995 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 literal 0 HcmV?d00001 diff --git a/AI/cuda/meta.yml b/AI/cuda/meta.yml new file mode 100644 index 0000000..c1e74fa --- /dev/null +++ b/AI/cuda/meta.yml @@ -0,0 +1,2 @@ +11.8.0-torch2.3.0-python3.10-oe2203lts: + path: 11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile \ No newline at end of file -- Gitee From 462d734cc67f8f0a95728dc7eb176451a0266391 Mon Sep 17 00:00:00 2001 From: Icey <1790571317@qq.com> Date: Tue, 17 Jun 2025 08:19:23 +0000 Subject: [PATCH 2/9] fix --- AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile b/AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile index 3ca3649..fda0c95 100644 --- a/AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile +++ b/AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile @@ -60,6 +60,7 @@ ARG TARGETPLATFORM ARG PY_VERSION ARG PY_MAJOR_VERSION ARG TORCH_VERSION +ARG PY_HOME=/usr/local/python${PY_VERSION} ENV PATH=${PY_HOME}/bin:${PATH} ENV PATH=${PATH}:/usr/local/cuda-11.8/bin -- Gitee From 8eb6b76dd6ee879853123e602d7e16cc547179fd Mon Sep 17 00:00:00 2001 From: Icey <1790571317@qq.com> Date: Tue, 17 Jun 2025 08:28:35 +0000 Subject: [PATCH 3/9] fix --- .../22.03-lts/Dockerfile | 6 +----- AI/cuda/doc/image-info.yml | 10 +++++++++- AI/cuda/meta.yml | 4 ++-- 3 files changed, 12 insertions(+), 8 deletions(-) rename AI/cuda/{11.8.0-torch2.3.0-python3.10 => 11.8.0-python3.10}/22.03-lts/Dockerfile (94%) diff --git a/AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile b/AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile similarity index 94% rename from AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile rename to AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile index fda0c95..25f0f69 100644 --- a/AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile +++ b/AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile @@ -1,7 +1,6 @@ ARG BASE=openeuler/openeuler:22.03 ARG PY_VERSION=3.10.12 ARG PY_MAJOR_VERSION=3.10 -ARG TORCH_VERSION=2.3.0 # Stage 1: Install Python FROM ${BASE} AS python-installer @@ -53,13 +52,12 @@ RUN PY_INSTALLER_DIR=Python-${PY_VERSION} && \ ln -sf ${PY_HOME}/bin/pip3 ${PY_HOME}/bin/pip && \ rm -rf /tmp/* -# Stage 2: Install CUDA and torch +# Stage 2: Install CUDA FROM ${BASE} AS cuda-installer ARG TARGETPLATFORM ARG PY_VERSION ARG PY_MAJOR_VERSION -ARG TORCH_VERSION ARG PY_HOME=/usr/local/python${PY_VERSION} ENV PATH=${PY_HOME}/bin:${PATH} @@ -95,5 +93,3 @@ RUN ARCH=$(case "${TARGETPLATFORM}" in \ cp /tmp/cudnn/lib/libcudnn* /usr/local/cuda-11.8/lib64 && \ chmod a+r /usr/local/cuda-11.8/include/cudnn.h /usr/local/cuda-11.8/lib64/libcudnn* && \ rm -rf /tmp/cudnn* - -RUN pip3 install torch==${TORCH_VERSION} --index-url https://download.pytorch.org/whl/cu118 \ No newline at end of file diff --git a/AI/cuda/doc/image-info.yml b/AI/cuda/doc/image-info.yml index 5feb542..c5dc532 100644 --- a/AI/cuda/doc/image-info.yml +++ b/AI/cuda/doc/image-info.yml @@ -11,7 +11,7 @@ tags: | | Tag | Currently | Architectures | |----------|-------------|------------------| - |[cuda11.8.0-torch2.3.0-python3.10-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cuda/11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile)| CUDA 11.8.0 on openEuler 22.03-LTS | arm64 | + |[cuda11.8.0-python3.10-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile)| CUDA 11.8.0 on openEuler 22.03-LTS | amd64, arm64 | download: | 拉取镜像到本地 @@ -68,3 +68,11 @@ usage: | license: Apache-2.0 license similar_packages: - CANN: CANN是华为针对AI场景推出的异构计算架构,对上支持多种AI框架,对下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。 +dependency: + - nvcc + - libcudart.so + - libcublas.so + - libcufft.so + - libcurand.so + - libcusparse.so + diff --git a/AI/cuda/meta.yml b/AI/cuda/meta.yml index c1e74fa..ae98f54 100644 --- a/AI/cuda/meta.yml +++ b/AI/cuda/meta.yml @@ -1,2 +1,2 @@ -11.8.0-torch2.3.0-python3.10-oe2203lts: - path: 11.8.0-torch2.3.0-python3.10/22.03-lts/Dockerfile \ No newline at end of file +11.8.0-python3.10-oe2203lts: + path: 11.8.0-python3.10/22.03-lts/Dockerfile \ No newline at end of file -- Gitee From 881b404c4e4423e6df2e1eddfc7100886bd89347 Mon Sep 17 00:00:00 2001 From: Icey <1790571317@qq.com> Date: Tue, 17 Jun 2025 08:45:22 +0000 Subject: [PATCH 4/9] fix --- AI/cuda/README.md | 78 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 AI/cuda/README.md diff --git a/AI/cuda/README.md b/AI/cuda/README.md new file mode 100644 index 0000000..aee4ecb --- /dev/null +++ b/AI/cuda/README.md @@ -0,0 +1,78 @@ +# Quick reference + +- The official CUDA docker image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). + +# CUDA | openEuler +Current CUDA docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. + +AI-oriented heterogeneous compute architecture provides hierarchical APIs to help you quickly build AI applications and services based on the Ascend platform. + +Learn more about on [CUDA Document](https://docs.nvidia.com/cuda/). + +# Supported tags and respective Dockerfile links +The tag of each `cuda` docker image is consist of the complete software stack version. The details are as follows +| Tag | Currently | Architectures | +|----------|-------------|------------------| +|[11.8.0-python3.10-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile)| CUDA 11.8.0 with Python 3.10 on openEuler 22.03-LTS | arm64,amd64 | + +# Usage +In this usage, users can select the corresponding `{Tag}` and `container startup options` based on their requirements. + +- Pull the `openeuler/cudas` image from docker + + ```bash + docker pull openeuler/cuda:{Tag} + ``` + +- Start a cann instance + + ```bash + docker run \ + --name my-cuda \ + --device /dev/davinci1 \ + --device /dev/davinci_manager \ + --device /dev/devmm_svm \ + --device /dev/hisi_hdc \ + -v /usr/local/dcmi:/usr/local/dcmi \ + -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ + -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ + -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \ + -v /etc/ascend_install.info:/etc/ascend_install.info \ + -it openeuler/cuda:{Tag} bash + ``` + +- Container startup options + + | Option | Description | + |--|--| + | `--name my-cuda` | Names the container `my-cuda`. | + | `--device /dev/davinciX` | NPU device, where `X` is the physical ID number of the chip, e.g., davinci1. | + | `--device /dev/davinci_manager` | Davinci-related management device. | + | `--device /dev/devmm_svm` | Memory management-related device. | + | `--device /dev/hisi_hdc` | HDC-related management device. | + | `-v /usr/local/dcmi:/usr/local/dcmi` | Mounts the host's DCMI .so and interface file directory /usr/local/dcmi to the container. Please modify according to actual situation. | + | `-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi` | Mount the host npu-smi tool "/usr/local/bin/npu-smi" into the container. Please modify it according to the actual situation. | + | `-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/` | Mounts the host directory /usr/local/Ascend/driver/lib64/driver to the container. Please modify according to the path where the driver's .so files are located. | + | `-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info` | Mounts the host's version information file /usr/local/Ascend/driver/version.info to the container. Please modify according to actual situation. | + | `-v /etc/ascend_install.info:/etc/ascend_install.info` | Mounts the host's installation information file /etc/ascend_install.info to the container. | + | `-it` | Starts the container in interactive mode with a terminal (bash). | + | `openeuler/cuda:{Tag}` | Specifies the Docker image to run, replace `{Tag}` with the specific version or tag of the `openeuler/cuda` image you want to use. | + +- View container running logs + + ```bash + docker logs -f my-cuda + ``` + +- To get an interactive shell + + ```bash + docker exec -it my-cuda /bin/bash + ``` + +# Question and answering +If you have any questions or want to use some special features, please submit an issue or a pull request on [openeuler-docker-images](https://gitee.com/openeuler/openeuler-docker-images). \ No newline at end of file -- Gitee From 3c85a5a7219ae87eefe61a1bd50eaf4d0adca2e8 Mon Sep 17 00:00:00 2001 From: Icey <1790571317@qq.com> Date: Tue, 17 Jun 2025 12:28:43 +0000 Subject: [PATCH 5/9] fix --- AI/cuda/doc/image-info.yml | 20 ++------------------ AI/image-list.yml | 1 + 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/AI/cuda/doc/image-info.yml b/AI/cuda/doc/image-info.yml index c5dc532..95e9f68 100644 --- a/AI/cuda/doc/image-info.yml +++ b/AI/cuda/doc/image-info.yml @@ -24,15 +24,7 @@ usage: | ``` docker run \ --name my-cuda \ - --device ${device} \ - --device /dev/davinci_manager \ - --device /dev/devmm_svm \ - --device /dev/hisi_hdc \ - -v /usr/local/dcmi:/usr/local/dcmi \ - -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ - -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ - -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \ - -v /etc/ascend_install.info:/etc/ascend_install.info \ + --gpus all \ -it openeuler/cuda:{Tag} bash ``` 用户可根据自身需求选择对应版本的`{Tag}`、对应的NPU设备`{device}`以及容器启动的其他参数配置。 @@ -41,15 +33,7 @@ usage: | | 配置项 | 描述 | |--|--| | `--name my-cann` | 容器名称。| - | `--device /dev/davinci1` | NPU设备,X是芯片物理ID号,例如davinci1。 | - | `--device /dev/davinci_manager` | davinci相关的管理设备。 | - | `--device /dev/devmm_svm` | 内存管理相关设备。 | - | `--device /dev/hisi_hdc` | hdc相关管理设备。 | - | `-v /usr/local/dcmi:/usr/local/dcmi` | 将宿主机dcmi的.so和接口文件目录`/usr/local/dcmi`挂载到容器中,请根据实际情况修改。 | - | `-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi` | 将宿主机`npu-smi`工具`/usr/local/bin/npu-smi`挂载到容器中,请根据实际情况修改。 | - | `-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/` | 将宿主机目录`/usr/local/Ascend/driver/lib64/driver`挂载到容器中。请根据driver的驱动.so所在路径修改。 | - | `-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info` | 将宿主机版本信息文件`/usr/local/Ascend/driver/version.info`挂载到容器中,请根据实际情况修改。 | - | `-v /etc/ascend_install.info:/etc/ascend_install.info` |将宿主机安装信息文件`/etc/ascend_install.info`挂载到容器中。 | + | `--gpus all` | 指定容器可以访问所有GPU设备 | | `-it` | 以交互模式启动容器。 | | `openeuler/cuda:{Tag}` | 指定要运行的镜像为 `openeuler/cuda`,其中` {Tag}` 是需要替换的镜像标签。 | diff --git a/AI/image-list.yml b/AI/image-list.yml index ac2fc0d..fed6f44 100644 --- a/AI/image-list.yml +++ b/AI/image-list.yml @@ -69,3 +69,4 @@ images: text2sql-ui: opea/text2sql-ui text2image: opea/text2image text2image-ui: opea/text2image-ui + cuda: cuda -- Gitee From 1f20a55700cc9dc376e46cf1d80570e2c1972187 Mon Sep 17 00:00:00 2001 From: Icey <1790571317@qq.com> Date: Tue, 17 Jun 2025 12:34:47 +0000 Subject: [PATCH 6/9] fix --- AI/cuda/README.md | 22 +++------------------- AI/cuda/doc/image-info.yml | 2 +- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/AI/cuda/README.md b/AI/cuda/README.md index aee4ecb..9e92dbf 100644 --- a/AI/cuda/README.md +++ b/AI/cuda/README.md @@ -9,7 +9,7 @@ # CUDA | openEuler Current CUDA docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. -AI-oriented heterogeneous compute architecture provides hierarchical APIs to help you quickly build AI applications and services based on the Ascend platform. +A heterogeneous computing platform for general-purpose parallel computing that provides layered APIs and high-level libraries to help you quickly build high-performance computing applications and AI services based on NVIDIA GPUs. Learn more about on [CUDA Document](https://docs.nvidia.com/cuda/). @@ -33,15 +33,7 @@ In this usage, users can select the corresponding `{Tag}` and `container startup ```bash docker run \ --name my-cuda \ - --device /dev/davinci1 \ - --device /dev/davinci_manager \ - --device /dev/devmm_svm \ - --device /dev/hisi_hdc \ - -v /usr/local/dcmi:/usr/local/dcmi \ - -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ - -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ - -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \ - -v /etc/ascend_install.info:/etc/ascend_install.info \ + --gpus all \ -it openeuler/cuda:{Tag} bash ``` @@ -50,15 +42,7 @@ In this usage, users can select the corresponding `{Tag}` and `container startup | Option | Description | |--|--| | `--name my-cuda` | Names the container `my-cuda`. | - | `--device /dev/davinciX` | NPU device, where `X` is the physical ID number of the chip, e.g., davinci1. | - | `--device /dev/davinci_manager` | Davinci-related management device. | - | `--device /dev/devmm_svm` | Memory management-related device. | - | `--device /dev/hisi_hdc` | HDC-related management device. | - | `-v /usr/local/dcmi:/usr/local/dcmi` | Mounts the host's DCMI .so and interface file directory /usr/local/dcmi to the container. Please modify according to actual situation. | - | `-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi` | Mount the host npu-smi tool "/usr/local/bin/npu-smi" into the container. Please modify it according to the actual situation. | - | `-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/` | Mounts the host directory /usr/local/Ascend/driver/lib64/driver to the container. Please modify according to the path where the driver's .so files are located. | - | `-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info` | Mounts the host's version information file /usr/local/Ascend/driver/version.info to the container. Please modify according to actual situation. | - | `-v /etc/ascend_install.info:/etc/ascend_install.info` | Mounts the host's installation information file /etc/ascend_install.info to the container. | + | `--gpus all` | The specified container can access all GPU devices, you can also specify a specific GPU, such as --gpus '"device=0,1"' | | `-it` | Starts the container in interactive mode with a terminal (bash). | | `openeuler/cuda:{Tag}` | Specifies the Docker image to run, replace `{Tag}` with the specific version or tag of the `openeuler/cuda` image you want to use. | diff --git a/AI/cuda/doc/image-info.yml b/AI/cuda/doc/image-info.yml index 95e9f68..bc75921 100644 --- a/AI/cuda/doc/image-info.yml +++ b/AI/cuda/doc/image-info.yml @@ -33,7 +33,7 @@ usage: | | 配置项 | 描述 | |--|--| | `--name my-cann` | 容器名称。| - | `--gpus all` | 指定容器可以访问所有GPU设备 | + | `--gpus all` | 指定容器可以访问所有GPU设备,也可指定具体的GPU,如 --gpus '"device=0,1"' | | `-it` | 以交互模式启动容器。 | | `openeuler/cuda:{Tag}` | 指定要运行的镜像为 `openeuler/cuda`,其中` {Tag}` 是需要替换的镜像标签。 | -- Gitee From 6488a4c3f92cb240e8cda8721ac07782cc23ce70 Mon Sep 17 00:00:00 2001 From: Icey <1790571317@qq.com> Date: Wed, 18 Jun 2025 01:54:11 +0000 Subject: [PATCH 7/9] fix --- AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile b/AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile index 25f0f69..fbad39a 100644 --- a/AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile +++ b/AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile @@ -76,7 +76,12 @@ RUN yum update -y && \ && rm -rf /var/cache/yum RUN \ - wget --quiet https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run -O ~/cuda_11.8.0_520.61.05_linux.run && \ + if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then \ + CUDA_URL="https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux_sbsa.run"; \ + else \ + CUDA_URL="https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run"; \ + fi && \ + wget --quiet ${CUDA_URL} -O ~/cuda_11.8.0_520.61.05_linux.run && \ chmod +x ~/cuda_11.8.0_520.61.05_linux.run && \ ~/cuda_11.8.0_520.61.05_linux.run --toolkit --silent && \ rm -f ~/cuda_11.8.0_520.61.05_linux.run -- Gitee From 81b2014254b2c2efa10397cebb27c84fee3ed022 Mon Sep 17 00:00:00 2001 From: Icey <1790571317@qq.com> Date: Wed, 18 Jun 2025 02:43:31 +0000 Subject: [PATCH 8/9] fix --- .../22.03-lts/Dockerfile | 71 ++----------------- AI/cuda/doc/image-info.yml | 2 +- AI/cuda/meta.yml | 4 +- 3 files changed, 9 insertions(+), 68 deletions(-) rename AI/cuda/{11.8.0-python3.10 => 11.8.0-cudnn8.9.0}/22.03-lts/Dockerfile (37%) diff --git a/AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile b/AI/cuda/11.8.0-cudnn8.9.0/22.03-lts/Dockerfile similarity index 37% rename from AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile rename to AI/cuda/11.8.0-cudnn8.9.0/22.03-lts/Dockerfile index fbad39a..e2f29ea 100644 --- a/AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile +++ b/AI/cuda/11.8.0-cudnn8.9.0/22.03-lts/Dockerfile @@ -1,71 +1,12 @@ ARG BASE=openeuler/openeuler:22.03 -ARG PY_VERSION=3.10.12 -ARG PY_MAJOR_VERSION=3.10 -# Stage 1: Install Python -FROM ${BASE} AS python-installer - -ARG PY_VERSION -ARG PY_MAJOR_VERSION - -# Python Environment variables -ENV PATH=${PY_HOME}/bin:${PATH} - -RUN yum update -y && \ - yum install -y \ - gcc \ - gcc-c++ \ - make \ - cmake \ - curl \ - zlib-devel \ - bzip2-devel \ - openssl-devel \ - ncurses-devel \ - sqlite-devel \ - readline-devel \ - tk-devel \ - gdbm-devel \ - libpcap-devel \ - xz-devel \ - libev-devel \ - expat-devel \ - libffi-devel \ - systemtap-sdt-devel \ - && yum clean all \ - && rm -rf /var/cache/yum \ - && rm -rf /tmp/* - -# Install Python -RUN PY_INSTALLER_DIR=Python-${PY_VERSION} && \ - PY_HOME=/usr/local/python${PY_VERSION} && \ - curl -fsSL https://repo.huaweicloud.com/python/${PY_VERSION}/${PY_INSTALLER_DIR}.tgz -o /tmp/${PY_INSTALLER_DIR}.tgz && \ - tar -xf /tmp/${PY_INSTALLER_DIR}.tgz -C /tmp && \ - cd /tmp/${PY_INSTALLER_DIR} && \ - mkdir -p ${PY_HOME}/lib && \ - ./configure --enable-shared --enable-shared LDFLAGS="-Wl,-rpath ${PY_HOME}/lib" --prefix=${PY_HOME} && \ - make -j $(nproc) && \ - make altinstall && \ - ln -sf ${PY_HOME}/bin/python${PY_MAJOR_VERSION} ${PY_HOME}/bin/python3 && \ - ln -sf ${PY_HOME}/bin/pip${PY_MAJOR_VERSION} ${PY_HOME}/bin/pip3 && \ - ln -sf ${PY_HOME}/bin/python3 ${PY_HOME}/bin/python && \ - ln -sf ${PY_HOME}/bin/pip3 ${PY_HOME}/bin/pip && \ - rm -rf /tmp/* - -# Stage 2: Install CUDA FROM ${BASE} AS cuda-installer ARG TARGETPLATFORM -ARG PY_VERSION -ARG PY_MAJOR_VERSION -ARG PY_HOME=/usr/local/python${PY_VERSION} -ENV PATH=${PY_HOME}/bin:${PATH} ENV PATH=${PATH}:/usr/local/cuda-11.8/bin ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-11.8/lib64 -COPY --from=python-installer ${PY_HOME} ${PY_HOME} - RUN yum update -y && \ yum install -y \ wget \ @@ -86,13 +27,13 @@ RUN \ ~/cuda_11.8.0_520.61.05_linux.run --toolkit --silent && \ rm -f ~/cuda_11.8.0_520.61.05_linux.run -RUN ARCH=$(case "${TARGETPLATFORM}" in \ - "linux/amd64") echo "x86_64" ;; \ - "linux/arm64") echo "aarch64" ;; \ - *) echo "Unsupported TARGETPLATFORM: ${TARGETPLATFORM}" && exit 1 ;; \ - esac) && \ +RUN if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then \ + CUDNN_URL="https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-sbsa/cudnn-linux-sbsa-8.9.0.131_cuda11-archive.tar.xz"; \ + else \ + CUDNN_URL="https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.9.0.131_cuda11-archive.tar.xz"; \ + fi && \ mkdir -p /tmp/cudnn && \ - wget https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-${ARCH}/cudnn-linux-${ARCH}-8.9.1.23_cuda11-archive.tar.xz -O /tmp/cudnn.tar.xz && \ + wget --quiet ${CUDNN_URL} -O /tmp/cudnn.tar.xz && \ tar -xvf /tmp/cudnn.tar.xz -C /tmp/cudnn --strip-components=1 && \ cp /tmp/cudnn/include/cudnn.h /usr/local/cuda-11.8/include && \ cp /tmp/cudnn/lib/libcudnn* /usr/local/cuda-11.8/lib64 && \ diff --git a/AI/cuda/doc/image-info.yml b/AI/cuda/doc/image-info.yml index bc75921..e95603e 100644 --- a/AI/cuda/doc/image-info.yml +++ b/AI/cuda/doc/image-info.yml @@ -11,7 +11,7 @@ tags: | | Tag | Currently | Architectures | |----------|-------------|------------------| - |[cuda11.8.0-python3.10-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile)| CUDA 11.8.0 on openEuler 22.03-LTS | amd64, arm64 | + |[cuda11.8.0-cudnn8.9.0-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cuda/11.8.0-cudnn8.9.0/22.03-lts/Dockerfile)| CUDA 11.8.0 on openEuler 22.03-LTS | amd64, arm64 | download: | 拉取镜像到本地 diff --git a/AI/cuda/meta.yml b/AI/cuda/meta.yml index ae98f54..1efed1e 100644 --- a/AI/cuda/meta.yml +++ b/AI/cuda/meta.yml @@ -1,2 +1,2 @@ -11.8.0-python3.10-oe2203lts: - path: 11.8.0-python3.10/22.03-lts/Dockerfile \ No newline at end of file +11.8.0-cudnn8.9.0-oe2203lts: + path: 11.8.0-cudnn8.9.0/22.03-lts/Dockerfile \ No newline at end of file -- Gitee From dd3307a0100691e113af618cc74a65a01516a7c9 Mon Sep 17 00:00:00 2001 From: Icey <1790571317@qq.com> Date: Wed, 18 Jun 2025 02:45:49 +0000 Subject: [PATCH 9/9] fix --- AI/cuda/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AI/cuda/README.md b/AI/cuda/README.md index 9e92dbf..8cfcfd3 100644 --- a/AI/cuda/README.md +++ b/AI/cuda/README.md @@ -17,7 +17,7 @@ Learn more about on [CUDA Document](https://docs.nvidia.com/cuda/). The tag of each `cuda` docker image is consist of the complete software stack version. The details are as follows | Tag | Currently | Architectures | |----------|-------------|------------------| -|[11.8.0-python3.10-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cuda/11.8.0-python3.10/22.03-lts/Dockerfile)| CUDA 11.8.0 with Python 3.10 on openEuler 22.03-LTS | arm64,amd64 | +|[11.8.0-cudnn8.9.0-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/AI/cuda/11.8.0-cudnn8.9.0/22.03-lts/Dockerfile)| CUDA 11.8.0 with cudnn 8.9.0 on openEuler 22.03-LTS | arm64,amd64 | # Usage In this usage, users can select the corresponding `{Tag}` and `container startup options` based on their requirements. -- Gitee