mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-15 05:09:44 +08:00
* test(e2e): add GPU workload image artifacts Closes #1476 Define local GPU workload image sources for smoke-pass, smoke-fail, and cuda-basic validation, plus a mise build task that tags images with the source revision and records the latest local image refs. Signed-off-by: Evan Lezar <elezar@nvidia.com> * test(e2e): add workload manifest build flow Signed-off-by: Evan Lezar <elezar@nvidia.com> * test(e2e): fix gpu workload README lint Signed-off-by: Evan Lezar <elezar@nvidia.com> * test(e2e): address gpu workload review feedback Signed-off-by: Evan Lezar <elezar@nvidia.com> --------- Signed-off-by: Evan Lezar <elezar@nvidia.com>
73 lines
2.9 KiB
Docker
73 lines
2.9 KiB
Docker
# syntax=docker/dockerfile:1
|
|
|
|
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
ARG CUDA_BUILD_IMAGE=nvcr.io/nvidia/cuda:12.8.1-base-ubuntu22.04
|
|
ARG OPENSHELL_SANDBOX_BASE_IMAGE=ghcr.io/nvidia/openshell-community/sandboxes/base:latest
|
|
|
|
FROM ${CUDA_BUILD_IMAGE} AS builder
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
ARG CUDA_SAMPLES_REF=v12.8
|
|
ARG CUDA_SAMPLES_REPO=https://github.com/NVIDIA/cuda-samples
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
ca-certificates \
|
|
cmake \
|
|
cuda-nvcc-12-8 \
|
|
curl \
|
|
g++ \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /build/cuda-samples
|
|
|
|
RUN set -eux; \
|
|
curl -fsSL "${CUDA_SAMPLES_REPO}/archive/refs/tags/${CUDA_SAMPLES_REF}.tar.gz" \
|
|
-o /tmp/cuda-samples.tar.gz; \
|
|
tar -xzf /tmp/cuda-samples.tar.gz \
|
|
--strip-components=1 \
|
|
--wildcards \
|
|
'*/Common/*' \
|
|
'*/cmake/*' \
|
|
'*/Samples/0_Introduction/vectorAdd/*' \
|
|
'*/Samples/1_Utilities/deviceQuery/*' \
|
|
'*/LICENSE'; \
|
|
sed -i 's/CUDA::cudart/CUDA::cudart_static/g' \
|
|
Samples/1_Utilities/deviceQuery/CMakeLists.txt; \
|
|
cmake -S Samples/1_Utilities/deviceQuery -B /tmp/build-device-query \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_CUDA_RUNTIME_LIBRARY=Static; \
|
|
cmake --build /tmp/build-device-query --parallel; \
|
|
cmake -S Samples/0_Introduction/vectorAdd -B /tmp/build-vector-add \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_CUDA_RUNTIME_LIBRARY=Static; \
|
|
cmake --build /tmp/build-vector-add --parallel; \
|
|
mkdir -p /opt/openshell-gpu-workload; \
|
|
cp /tmp/build-device-query/deviceQuery /opt/openshell-gpu-workload/deviceQuery; \
|
|
cp /tmp/build-vector-add/vectorAdd /opt/openshell-gpu-workload/vectorAdd; \
|
|
cp LICENSE /opt/openshell-gpu-workload/cuda-samples.LICENSE; \
|
|
rm -f /tmp/cuda-samples.tar.gz
|
|
|
|
FROM ${OPENSHELL_SANDBOX_BASE_IMAGE}
|
|
|
|
ARG CUDA_SAMPLES_REF=v12.8
|
|
|
|
LABEL com.nvidia.openshell.gpu-workload.name="cuda-basic" \
|
|
com.nvidia.openshell.gpu-workload.cuda-samples-ref="${CUDA_SAMPLES_REF}"
|
|
|
|
USER root
|
|
RUN mkdir -p /usr/local/lib/openshell-gpu-workload \
|
|
/usr/local/share/doc/openshell-gpu-workload
|
|
COPY --from=builder /opt/openshell-gpu-workload/deviceQuery /usr/local/lib/openshell-gpu-workload/deviceQuery
|
|
COPY --from=builder /opt/openshell-gpu-workload/vectorAdd /usr/local/lib/openshell-gpu-workload/vectorAdd
|
|
COPY --from=builder /opt/openshell-gpu-workload/cuda-samples.LICENSE /usr/local/share/doc/openshell-gpu-workload/cuda-samples.LICENSE
|
|
COPY workload.sh /usr/local/bin/openshell-gpu-workload
|
|
RUN chmod 0755 /usr/local/bin/openshell-gpu-workload \
|
|
/usr/local/lib/openshell-gpu-workload/deviceQuery \
|
|
/usr/local/lib/openshell-gpu-workload/vectorAdd
|
|
|
|
USER sandbox
|
|
ENTRYPOINT ["/usr/local/bin/openshell-gpu-workload"]
|