gpu-burn编译与OCI-image构建

gpu-burn 容器 OCI 镜像构建 CMD CUDA 13.0.0:
make IMAGE_NAME=local_repo/gpu-burn:cuda-13.0.0-ubuntu22.04-multi-arch CUDA_VERSION=13.0.0 IMAGE_DISTRO=ubuntu22.04 image

原始 Dockerfile 中需要修改的内容:
(1)修改引用的构建的 CUDA 的原始镜像的拉取地址为正确的拉取地址,或者改成本地已经拉去的地址
(2)修改构建的 CUDA 版本的环境变量名
(3)修改构建的 容器镜像发行版的名称
(4)注释掉原有的 ARG COMPUTE=75 参数,值改为空
(5)增加如下的编译参数:

Dockerfile 内容示例:

ARG CUDA_VERSION=13.0.0
ARG IMAGE_DISTRO=ubuntu22.04

FROM nvcr.io/nvidia/cuda:${CUDA_VERSION}-devel-${IMAGE_DISTRO} AS builder

ARG COMPUTE=

ARG NVCCFLAGS="-gencode=arch=compute_75,code=sm_75 \
 -gencode=arch=compute_80,code=sm_80 \
 -gencode=arch=compute_86,code=sm_86 \
 -gencode=arch=compute_89,code=sm_89 \
 -gencode=arch=compute_90,code=sm_90 \
 -gencode=arch=compute_100,code=sm_100 \
 -gencode=arch=compute_103,code=sm_103 \
 -gencode=arch=compute_120,code=sm_120"

WORKDIR /build

COPY compare.cu gpu_burn-drv.cpp Makefile /build/

RUN make COMPUTE=${COMPUTE} NVCCFLAGS="${NVCCFLAGS}"

FROM nvcr.io/nvidia/cuda:${CUDA_VERSION}-runtime-${IMAGE_DISTRO}

COPY --from=builder /build/gpu_burn /app/
COPY --from=builder /build/compare.fatbin /app/

WORKDIR /app

#ENTRYPOINT ["./gpu_burn"]
CMD ["./gpu_burn"]

构建示例 CUDA 12.4:

/bin/cp -fa ./Dockerfile.cuda12.4 ./Dockerfile

make IMAGE_NAME=local_repo/gpu-burn:cuda-12.4.0-centos7-multi-sm-arch CUDA_VERSION=12.4.0 IMAGE_DISTRO=centos7 image
docker build --build-arg COMPUTE=75 --build-arg CUDA_VERSION=12.4.0 --build-arg IMAGE_DISTRO=centos7 -t local_repo/gpu-burn:cuda-12.4.0-centos7-multi-sm-arch .
[+] Building 4.1s (14/14) FINISHED                                                                                                                       docker:default
 => [internal] load build definition from Dockerfile                                                                                                               0.0s
 => => transferring dockerfile: 712B                                                                                                                               0.0s
 => [internal] load metadata for nvcr.io/nvidia/cuda:12.4.0-runtime-centos7                                                                                        0.0s
 => [internal] load metadata for nvcr.io/nvidia/cuda:12.4.0-devel-centos7                                                                                          0.0s
 => [internal] load .dockerignore                                                                                                                                  0.0s
 => => transferring context: 2B                                                                                                                                    0.0s
 => [builder 1/4] FROM nvcr.io/nvidia/cuda:12.4.0-devel-centos7                                                                                                    0.0s
 => [stage-1 1/4] FROM nvcr.io/nvidia/cuda:12.4.0-runtime-centos7                                                                                                  0.0s
 => [internal] load build context                                                                                                                                  0.0s
 => => transferring context: 97B                                                                                                                                   0.0s
 => CACHED [builder 2/4] WORKDIR /build                                                                                                                            0.0s
 => CACHED [builder 3/4] COPY compare.cu gpu_burn-drv.cpp Makefile /build/                                                                                         0.0s
 => [builder 4/4] RUN make COMPUTE=75 NVCCFLAGS="-gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -gen  3.9s
 => CACHED [stage-1 2/4] COPY --from=builder /build/gpu_burn /app/                                                                                                 0.0s 
 => [stage-1 3/4] COPY --from=builder /build/compare.fatbin /app/                                                                                                  0.0s 
 => [stage-1 4/4] WORKDIR /app                                                                                                                                     0.0s 
 => exporting to image                                                                                                                                             0.0s 
 => => exporting layers                                                                                                                                            0.0s 
 => => writing image sha256:ac26d542fb4d3afba4a1e0337dbec7054133533eb9ae90a9e3faa8e0e4555c05                                                                       0.0s 
 => => naming to docker.io/local_repo/gpu-burn:cuda-12.4.0-centos7-multi-sm-arch

构建示例 CUDA 12.8:

/bin/cp -fa ./Dockerfile.cuda12.8 ./Dockerfile

make IMAGE_NAME=local_repo/gpu-burn:cuda-12.8.0-ubuntu22.04-multi-sm-arch CUDA_VERSION=12.8.0 IMAGE_DISTRO=ubuntu22.04 image
docker build --build-arg COMPUTE=75 --build-arg CUDA_VERSION=12.8.0 --build-arg IMAGE_DISTRO=ubuntu22.04 -t local_repo/gpu-burn:cuda-12.8.0-ubuntu22.04-multi-sm-arch .
[+] Building 5.1s (14/14) FINISHED                                                                                                                       docker:default
 => [internal] load build definition from Dockerfile                                                                                                               0.0s
 => => transferring dockerfile: 805B                                                                                                                               0.0s
 => [internal] load metadata for nvcr.io/nvidia/cuda:12.8.0-runtime-ubuntu22.04                                                                                    0.0s
 => [internal] load metadata for nvcr.io/nvidia/cuda:12.8.0-devel-ubuntu22.04                                                                                      0.0s
 => [internal] load .dockerignore                                                                                                                                  0.0s
 => => transferring context: 2B                                                                                                                                    0.0s
 => [builder 1/4] FROM nvcr.io/nvidia/cuda:12.8.0-devel-ubuntu22.04                                                                                                0.0s
 => [stage-1 1/4] FROM nvcr.io/nvidia/cuda:12.8.0-runtime-ubuntu22.04                                                                                              0.0s
 => [internal] load build context                                                                                                                                  0.0s
 => => transferring context: 97B                                                                                                                                   0.0s
 => CACHED [builder 2/4] WORKDIR /build                                                                                                                            0.0s
 => CACHED [builder 3/4] COPY compare.cu gpu_burn-drv.cpp Makefile /build/                                                                                         0.0s
 => [builder 4/4] RUN make COMPUTE=75 NVCCFLAGS="-gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -gen  5.0s
 => CACHED [stage-1 2/4] COPY --from=builder /build/gpu_burn /app/                                                                                                 0.0s 
 => CACHED [stage-1 3/4] COPY --from=builder /build/compare.fatbin /app/                                                                                           0.0s 
 => CACHED [stage-1 4/4] WORKDIR /app                                                                                                                              0.0s 
 => exporting to image                                                                                                                                             0.0s 
 => => exporting layers                                                                                                                                            0.0s 
 => => writing image sha256:3aea8ae72c879dfd3f0e4cd846a2d0f08c0e2b2317e61d0be7c9f7fdb5d40a82                                                                       0.0s 
 => => naming to docker.io/local_repo/gpu-burn:cuda-12.8.0-ubuntu22.04-multi-sm-arch

构建示例 CUDA 13.0:

make IMAGE_NAME=local_repo/gpu-burn:cuda-13.0.0-ubuntu22.04-multi-arch CUDA_VERSION=13.0.0 IMAGE_DISTRO=ubuntu22.04 image

docker build --build-arg COMPUTE=75 --build-arg CUDA_VERSION=13.0.0 --build-arg IMAGE_DISTRO=ubuntu22.04 -t local_repo/gpu-burn:cuda-13.0.0-ubuntu22.04-multi-arch .
[+] Building 11.3s (14/14) FINISHED                                                                                                                      docker:default
 => [internal] load build definition from Dockerfile                                                                                                               0.0s
 => => transferring dockerfile: 845B                                                                                                                               0.0s
 => [internal] load metadata for nvcr.io/nvidia/cuda:13.0.0-runtime-ubuntu22.04                                                                                    0.0s
 => [internal] load metadata for nvcr.io/nvidia/cuda:13.0.0-devel-ubuntu22.04                                                                                      0.0s
 => [internal] load .dockerignore                                                                                                                                  0.0s
 => => transferring context: 2B                                                                                                                                    0.0s
 => [builder 1/4] FROM nvcr.io/nvidia/cuda:13.0.0-devel-ubuntu22.04                                                                                                0.0s
 => [internal] load build context                                                                                                                                  0.0s
 => => transferring context: 97B                                                                                                                                   0.0s
 => CACHED [stage-1 1/4] FROM nvcr.io/nvidia/cuda:13.0.0-runtime-ubuntu22.04                                                                                       0.0s
 => CACHED [builder 2/4] WORKDIR /build                                                                                                                            0.0s
 => CACHED [builder 3/4] COPY compare.cu gpu_burn-drv.cpp Makefile /build/                                                                                         0.0s
 => [builder 4/4] RUN make COMPUTE=75 NVCCFLAGS="-gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_80,code=sm_80 -gencode=arch=compute_86,code=sm_86 -ge  11.0s
 => [stage-1 2/4] COPY --from=builder /build/gpu_burn /app/                                                                                                        0.0s 
 => [stage-1 3/4] COPY --from=builder /build/compare.fatbin /app/                                                                                                  0.0s 
 => [stage-1 4/4] WORKDIR /app                                                                                                                                     0.0s 
 => exporting to image                                                                                                                                             0.1s 
 => => exporting layers                                                                                                                                            0.0s 
 => => writing image sha256:1b3fcf59b434d0d28ad1d122efc4964519c8bd361e7c31465398f50be99f8fb5                                                                       0.0s 
 => => naming to docker.io/local_repo/gpu-burn:cuda-13.0.0-ubuntu22.04-multi-arch

支持的硬件架构说明

SM 代号 典型 GPU 与架构
SM_75 RTX 20XX 系列 GPU and (Turing)
SM_80 A100/A800/A10/A40
SM_86 RTX 30 系列 GPU (Ampere)
SM_89 RTX 40 系列 GPU and AdaLovelace (L40/L40S/L4)
SM_90 H100/H200/H800/H20 (Hopper)
SM_100 B100 B200
SM_103 B300
SM_120 RTX 50XX 系列 and Blackwell RTX PRO 6000/6000D
SM_70 Volta GPU
SM_61 Pascal GTX 10XX/TITAN XP,Titan Xp, Tesla P40, Tesla P4
SM_60 Quadro GP100, Tesla P100
posted @ 2026-08-12 20:37  微软其实巨硬  阅读(0)  评论(0)    收藏  举报