From ee17b5870ea2d3ae7afdd47d2aedda05af7910c9 Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman <the@jeffreyfreeman.me> Date: Wed, 30 Sep 2020 19:22:33 -0400 Subject: [PATCH] Initial version of repo, compiles image for amdgpu and nvidia varients. --- .gitlab-ci.yml | 53 ++++++++++++++++++----------------------------- CHANGELOG.md | 2 ++ README.md | 10 +++++++++ amdgpu/Dockerfile | 53 ++++++++++++++++++++++++++++++++++------------- nvidia/Dockerfile | 30 +++++++++++++++++++-------- 5 files changed, 92 insertions(+), 56 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 06e104b..4d12f91 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,59 +1,46 @@ -rev-git: -extends: .build-docker -only: - variables: [ $CI_COMMIT_REF_NAME == "develop" ] -variables: - REV: "git" - -rev-latest: -extends: .build-docker -only: - variables: [ $CI_COMMIT_REF_NAME == "master" ] -variables: - REV: "latest" - -rev-branch: -extends: .build-docker -only: - variables: [ $CI_COMMIT_REF_NAME =~ /[0-9]*.*/ ] -variables: - REV: "${CI_COMMIT_REF_NAME}" - -.build-docker: image: docker:stable services: - - docker:stable-dind + - docker:stable-dind variables: - REPOSITORY: "aparapi/aparapi" - VERSION: "2.0.0" + REPOSITORY: "aparapi/aparapi" + VERSION: "2.0.0" before_script: - - docker login -u "${DOCKER_USER}" -p "${DOCKER_TOKEN}" + - echo "${DOCKER_TOKEN}" | docker login --username "${DOCKER_USER}" --password-stdin stages: - - opencl + - opencl .opencl_template: &opencl_definition stage: opencl script: + - if [ $CI_COMMIT_REF_NAME == "develop" ]; then + REV = "git"; + elif [ $CI_COMMIT_REF_NAME == "master" ]; then + REV = "latest"; + else + REV = "$CI_COMMIT_REF_NAME"; + fi - docker pull "${REPOSITORY}-nvidia:${REV}" || true - docker build --network=host --pull -t "${REPOSITORY}-nvidia:${REV}" --cache-from "${REPOSITORY}-nvidia:${REV}" - --build-arg "aparapi-ver=${VERSION}" + --build-arg "aparapiver=${VERSION}" "nvidia/" - docker pull "${REPOSITORY}-amdgpu:${REV}" || true - docker build --network=host --pull -t "${REPOSITORY}-amdgpu:${REV}" --cache-from "${REPOSITORY}-amdgpu:${REV}" - --build-arg "aparapi-ver=${VERSION}" + --build-arg "aparapiver=${VERSION}" "amdgpu/" - docker push "${REPOSITORY}-nvidia" - docker push "${REPOSITORY}-amdgpu" - only - -master - -develop - -tags + only: + - master + - develop + - tags + tags: + - general opencl: <<: *opencl_definition diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d8d758..2fbd6b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ # Aparapi Docker Image Changelog +# 2.0.0-1 +* Initial version of the docker images for amdgpu and nvidia. diff --git a/README.md b/README.md index b2d6d0e..2be887a 100644 --- a/README.md +++ b/README.md @@ -39,3 +39,13 @@ following command. git clone http://git.qoto.org/aparapi/aparapi-docker.git ``` + +## Building + + + +```bash +docker build -t <image name> --build-arg "aparapiver=<aparapi Version>" amdgpu/ +docker build -t <image name> --build-arg "aparapiver=<aparapi Version>" nvidia/ + +``` diff --git a/amdgpu/Dockerfile b/amdgpu/Dockerfile index 42f55da..6646be0 100644 --- a/amdgpu/Dockerfile +++ b/amdgpu/Dockerfile @@ -1,23 +1,48 @@ -ARG aparapi-ver - -FROM maven:3.6.3-openjdk-14 +FROM ubuntu:20.04 LABEL maintainer "Jeffrey Phillips Freeman <the@jeffreyfreeman.me>" -ENV AMDGPUDRIVERFILE="amdgpu-pro-17.40-492261.tar.xz" -ENV AMDGPUDIRNAME="amdgpu-pro-17.40-492261" +#ENV AMDGPUDRIVERFILE="amdgpu-pro-17.40-492261.tar.xz" +#ENV AMDGPUDIRNAME="amdgpu-pro-17.40-492261" + +ENV AMDGPUDIRNAME="amdgpu-pro-20.20-1098277-ubuntu-20.04" +ENV AMDGPUDRIVERFILE="${AMDGPUDIRNAME}.tar.xz" WORKDIR /tmp -RUN dpkg --add-architecture i386 && \ - apt-get update && apt-get -y dist-upgrade && \ - apt-get -y --no-install-recommends install ca-certificates curl xz-utils -# only used to speedup build -#COPY $AMDGPUDRIVERFILE /tmp/ -RUN curl -O https://download.b2go.cloud/AMD-GPU-PRO/$AMDGPUDRIVERFILE && \ +RUN apt-get update && \ + apt-get -y dist-upgrade && \ + rm -rf /var/lib/{cache,log} + +RUN apt-get update && \ + apt-get -y --no-install-recommends install \ + maven \ + openjdk-14-jre \ + openjdk-14-jdk && \ + rm -rf /var/lib/{cache,log} + +RUN apt-get update && \ + apt-get -y --no-install-recommends install \ + ca-certificates \ + wget \ + xz-utils && \ + wget --referer https://www.amd.com/en/support/kb/release-notes/rn-amdgpu-unified-linux-20-30 https://drivers.amd.com/drivers/linux/${AMDGPUDRIVERFILE} &&\ tar -xvf $AMDGPUDRIVERFILE && rm $AMDGPUDRIVERFILE && \ ./$AMDGPUDIRNAME/amdgpu-pro-install -y --compute && \ rm -rf $AMDGPUDIRNAME && \ - apt-get -y remove ca-certificates curl xz-utils && \ - apt-get -y autoremove && apt-get clean autoclean && \ - rm -rf /var/lib/{apt,dpkg,cache,log} + apt-get install -y opencl-amdgpu-pro && \ + apt-get -y autoremove && \ + apt-get clean autoclean && \ + rm -rf /var/lib/{apt,cache,log} + +ARG aparapiver +RUN mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get -DrepoUrl="https://repo1.maven.org/maven2/" -Dartifact=com.aparapi:aparapi:${aparapiver} + +#RUN dpkg --add-architecture i386 && \ +# apt-get update && apt-get -y dist-upgrade && \ +# apt-get -y --no-install-recommends install ca-certificates curl xz-utils + +# only used to speedup build +#COPY $AMDGPUDRIVERFILE /tmp/ +# curl -O https://download.b2go.cloud/AMD-GPU-PRO/$AMDGPUDRIVERFILE && \ +# apt-get -y remove ca-certificates wget xz-utils && \ diff --git a/nvidia/Dockerfile b/nvidia/Dockerfile index 24af500..2be126c 100644 --- a/nvidia/Dockerfile +++ b/nvidia/Dockerfile @@ -1,20 +1,32 @@ -ARG aparapi-ver - -FROM maven:3.6.3-openjdk-14 +FROM ubuntu:20.04 LABEL maintainer "Jeffrey Phillips Freeman <the@jeffreyfreeman.me>" RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - ocl-icd-libopencl1 \ - ocl-icd-opencl-dev \ - clinfo && \ - rm -rf /var/lib/apt/lists/* + apt-get -y dist-upgrade && \ + rm -rf /var/lib/{cache,log} + +RUN apt-get update && \ + apt-get -y --no-install-recommends install \ + maven \ + openjdk-14-jre \ + openjdk-14-jdk && \ + rm -rf /var/lib/{cache,log} + +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + ocl-icd-libopencl1 \ + ocl-icd-opencl-dev \ + clinfo && \ + apt-get -y autoremove && \ + apt-get clean autoclean && \ + rm -rf /var/lib/{apt,cache,log} RUN mkdir -p /etc/OpenCL/vendors && \ echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd -RUN mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get -DrepoUrl="https://repo1.maven.org/maven2/" -Dartifact=com.aparapi:aparapi:${aparapi-ver} +ARG aparapiver +RUN mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get -DrepoUrl="https://repo1.maven.org/maven2/" -Dartifact="com.aparapi:aparapi:${aparapiver}" # nvidia-container-runtime ENV NVIDIA_VISIBLE_DEVICES all -- GitLab