From f870eb588a9d1d4ce086a34cc33a754d2ee75b0a Mon Sep 17 00:00:00 2001 From: Cory Latschkowski Date: Thu, 28 Mar 2024 19:21:59 -0500 Subject: [PATCH] update: all the things --- .github/workflows/build-s2i-cuda-11.8.0.yaml | 2 +- .github/workflows/build-udi-cuda-11.8.0.yaml | 2 +- .github/workflows/build-udi-cuda-12.x.yaml | 2 +- .spellcheck.yaml | 22 ++ .wordlist-md | 180 ++++++++++++ .yamllint | 24 ++ Makefile | 84 ++++++ Makefile.venv | 274 ++++++++++++++++++ .../overlays/mig-mixed/kustomization.yaml | 2 +- containers/s2i-cuda/common | 1 - containers/udi-cuda/README.md | 8 +- dictionary.dic | Bin 0 -> 5312 bytes notebooks/00-test-gpu-tensorflow.ipynb | 2 +- requirements.txt | 2 + 14 files changed, 595 insertions(+), 10 deletions(-) create mode 100644 .spellcheck.yaml create mode 100644 .wordlist-md create mode 100644 .yamllint create mode 100644 Makefile create mode 100644 Makefile.venv delete mode 160000 containers/s2i-cuda/common create mode 100644 dictionary.dic create mode 100644 requirements.txt diff --git a/.github/workflows/build-s2i-cuda-11.8.0.yaml b/.github/workflows/build-s2i-cuda-11.8.0.yaml index b81767b..6b06475 100644 --- a/.github/workflows/build-s2i-cuda-11.8.0.yaml +++ b/.github/workflows/build-s2i-cuda-11.8.0.yaml @@ -68,7 +68,7 @@ jobs: # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta - uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0 + uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} diff --git a/.github/workflows/build-udi-cuda-11.8.0.yaml b/.github/workflows/build-udi-cuda-11.8.0.yaml index 537e006..ebdd64c 100644 --- a/.github/workflows/build-udi-cuda-11.8.0.yaml +++ b/.github/workflows/build-udi-cuda-11.8.0.yaml @@ -66,7 +66,7 @@ jobs: # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta - uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0 + uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} diff --git a/.github/workflows/build-udi-cuda-12.x.yaml b/.github/workflows/build-udi-cuda-12.x.yaml index 9ce2e5a..b1d0333 100644 --- a/.github/workflows/build-udi-cuda-12.x.yaml +++ b/.github/workflows/build-udi-cuda-12.x.yaml @@ -66,7 +66,7 @@ jobs: # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta - uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0 + uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} diff --git a/.spellcheck.yaml b/.spellcheck.yaml new file mode 100644 index 0000000..a8258fa --- /dev/null +++ b/.spellcheck.yaml @@ -0,0 +1,22 @@ +matrix: + - name: Markdown + aspell: + lang: en + # ignore-case: true + dictionary: + encoding: utf-8 + wordlists: + - .wordlist-md + pipeline: + - pyspelling.filters.markdown: + - pyspelling.filters.html: + comments: false + attributes: + - title + - alt + ignores: + - code + - pre + sources: + - '**/*.md|!venv/**' + default_encoding: utf-8 diff --git a/.wordlist-md b/.wordlist-md new file mode 100644 index 0000000..8258a84 --- /dev/null +++ b/.wordlist-md @@ -0,0 +1,180 @@ +acac +Acyclic +allocatable +amd +api +APIs +apiVersion +arg +ArgoCD +artifactory +ARTIFACTORY +autoscaler +autoscaling +Autoscaling +aws +bd +bde +beaecd +bfa +bkoz +buildkit +Buildkit +cd +centos +cff +che +CheCluster +ci +CICD +config +CONFIG +CRD +cuda +Cuda +CUDA +CudaGL +CUDAGL +cudart +cudgl +cudnn +cuDNN +CUDNN +CVE +CVEs +dacaea +DCGM +debian +dev +Dev +devel +devfile +Devfile +devspaces +DevSpaces +devworkspace +dfea +distro +distros +DL +dn +Dockerfile +Dockerfiles +DockerHub +efa +Entrypoint +EOL +eustace +forseable +gb +ghcr +Gi +github +gitlab +Gitlab +gitops +GitOps +Globals +goto +GPL +gpu +GPUs +html +https +Infiniband +init +Init +io +jq +jsonpath +jupyter +Kitmaker +kubernetes +kustomization +Kustomization +kustomize +Kustomize +LD +le +libcudnn +libnccl +linux +md +mig +mins +MLOps +na +nccl +NCCL +nfd +NFD +ngc +NGC +NICs +nodeFeatureDiscovery +NodeResourceTopology +NUMA +nvcr +nvidia +OAuth +oc +ocp +OCP +OPENGL +openshift +Openshift +OpenShift +OpenSource +os +overidden +packagin +PCI +podman +ppc +py +pyenv +pytest +pytorch +Quickstart +rc +readme +Readme +README +readmes +redhat +redist +repo +Repo +repos +Repos +RHDP +rhel +rockylinux +runtimes +scalable +sclorg +sepecified +sha +ssa +subkeys +sunsetted +svc +sw +tensorflow +th +TLS +TODO +tolerations +traefik +txz +ubi +ubuntu +udi +UDI +unselect +urm +vCPU +vscode +WIP +workspaces +yaml diff --git a/.yamllint b/.yamllint new file mode 100644 index 0000000..ed48218 --- /dev/null +++ b/.yamllint @@ -0,0 +1,24 @@ +extends: default + +rules: + document-start: disable + line-length: disable + comments-indentation: disable + new-line-at-end-of-file: disable + indentation: + indent-sequences: whatever + ignore: kludgeops/ + braces: + min-spaces-inside: 0 + max-spaces-inside: 1 + truthy: + ignore: .github/workflows/ + trailing-spaces: + ignore: | + # components/operators/openshift-gitops-operator/instance/overlays/default/patch-resource-customizations.yaml + empty-lines: + ignore: | + components/operators/ack-controllers/base/adoptedresources-crd.yaml + +ignore: + - "scratch/*" diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ebfd829 --- /dev/null +++ b/Makefile @@ -0,0 +1,84 @@ +# see https://github.com/mvanholsteijn/docker-makefile/blob/master/Makefile + +CONTAINER_CMD=podman +CONTAINER_BUILD_CONTEXT=. +CONTAINER_FILE_PATH=Dockerfile + +RUSER=redhat-na-ssa +REGISTRY=ghcr.io +VERSION=latest + +SHELL=/bin/bash + + +.PHONY: build + + +build: lint pre-build build-s2i-cuda-11 build-udi-cuda-11 build-udi-cuda-12 post-build + + +lint: venv lint-yaml lint-spellcheck + + +pre-build: + + +post-build: + + +main-build: + + +build-s2i-cuda-11: + cd containers/s2i-cuda/core; \ + $(CONTAINER_CMD) build \ + -t $(REGISTRY)/$(RUSER)/udi-cuda:11.8.0-cudnn8-runtime-ubi8 \ + --build-arg IMAGE_NAME=docker.io/nvidia/cuda:11.8.0-cudnn8-runtime-ubi8 \ + $(CONTAINER_BUILD_CONTEXT) -f $(CONTAINER_FILE_PATH).rhel8 + +build-udi-cuda-11: + cd containers/udi-cuda/ubi8; \ + $(CONTAINER_CMD) build \ + -t $(REGISTRY)/$(RUSER)/udi-cuda:11.8.0-cudnn8-runtime-ubi8 \ + --build-arg IMAGE_NAME=docker.io/nvidia/cuda:11.8.0-cudnn8-runtime-ubi8 \ + $(CONTAINER_BUILD_CONTEXT) -f $(CONTAINER_FILE_PATH) + + cd containers/udi-cuda/ubi8; \ + $(CONTAINER_CMD) build \ + -t $(REGISTRY)/$(RUSER)/udi-cuda:11.8.0-cudnn8-devel-ubi8 \ + --build-arg IMAGE_NAME=docker.io/nvidia/cuda:11.8.0-cudnn8-devel-ubi8 \ + $(CONTAINER_BUILD_CONTEXT) -f $(CONTAINER_FILE_PATH) + +build-udi-cuda-12: + cd containers/udi-cuda/ubi8; \ + $(CONTAINER_CMD) build \ + -t $(REGISTRY)/$(RUSER)/udi-cuda:12.3.2-cudnn9-runtime-ubi8 \ + --build-arg IMAGE_NAME=docker.io/nvidia/cuda:12.3.2-cudnn9-runtime-ubi8 \ + $(CONTAINER_BUILD_CONTEXT) -f $(CONTAINER_FILE_PATH) + + cd containers/udi-cuda/ubi8; \ + $(CONTAINER_CMD) build \ + -t $(REGISTRY)/$(RUSER)/udi-cuda:12.3.2-cudnn9-devel-ubi8 \ + --build-arg IMAGE_NAME=docker.io/nvidia/cuda:12.3.2-cudnn9-devel-ubi8 \ + $(CONTAINER_BUILD_CONTEXT) -f $(CONTAINER_FILE_PATH) + + +push: + $(CONTAINER_CMD) push $(REGISTRY)/$(RUSER)/udi-cuda:$(VERSION) + $(CONTAINER_CMD) push $(REGISTRY)/$(RUSER)/udi-cuda:$(VERSION) + $(CONTAINER_CMD) push $(REGISTRY)/$(RUSER)/s2i-cuda:$(VERSION) + +lint-yaml: + $(VENV)/yamllint -c .yamllint . + +lint-spellcheck: + $(VENV)/pyspelling -c .spellcheck.yaml + +include Makefile.venv +Makefile.venv: + curl \ + -o Makefile.fetched \ + -L "https://github.com/sio/Makefile.venv/raw/v2022.07.20/Makefile.venv" + echo "147b164f0cbbbe4a2740dcca6c9adb6e9d8d15b895be3998697aa6a821a277d8 *Makefile.fetched" \ + | sha256sum --check - \ + && mv Makefile.fetched Makefile.venv diff --git a/Makefile.venv b/Makefile.venv new file mode 100644 index 0000000..c79b9bb --- /dev/null +++ b/Makefile.venv @@ -0,0 +1,274 @@ +# +# SEAMLESSLY MANAGE PYTHON VIRTUAL ENVIRONMENT WITH A MAKEFILE +# +# https://github.com/sio/Makefile.venv v2022.07.20 +# +# +# Insert `include Makefile.venv` at the bottom of your Makefile to enable these +# rules. +# +# When writing your Makefile use '$(VENV)/python' to refer to the Python +# interpreter within virtual environment and '$(VENV)/executablename' for any +# other executable in venv. +# +# This Makefile provides the following targets: +# venv +# Use this as a dependency for any target that requires virtual +# environment to be created and configured +# python, ipython +# Use these to launch interactive Python shell within virtual environment +# shell, bash, zsh +# Launch interactive command line shell. "shell" target launches the +# default shell Makefile executes its rules in (usually /bin/sh). +# "bash" and "zsh" can be used to refer to the specific desired shell. +# show-venv +# Show versions of Python and pip, and the path to the virtual environment +# clean-venv +# Remove virtual environment +# $(VENV)/executable_name +# Install `executable_name` with pip. Only packages with names matching +# the name of the corresponding executable are supported. +# Use this as a lightweight mechanism for development dependencies +# tracking. E.g. for one-off tools that are not required in every +# developer's environment, therefore are not included into +# requirements.txt or setup.py. +# Note: +# Rules using such target or dependency MUST be defined below +# `include` directive to make use of correct $(VENV) value. +# Example: +# codestyle: $(VENV)/pyflakes +# $(VENV)/pyflakes . +# See `ipython` target below for another example. +# +# This Makefile can be configured via following variables: +# PY +# Command name for system Python interpreter. It is used only initially to +# create the virtual environment +# Default: python3 +# REQUIREMENTS_TXT +# Space separated list of paths to requirements.txt files. +# Paths are resolved relative to current working directory. +# Default: requirements.txt +# +# Non-existent files are treated as hard dependencies, +# recipes for creating such files must be provided by the main Makefile. +# Providing empty value (REQUIREMENTS_TXT=) turns off processing of +# requirements.txt even when the file exists. +# SETUP_PY +# Space separated list of paths to setup.py files. +# Corresponding packages will be installed into venv in editable mode +# along with all their dependencies +# Default: setup.py +# +# Non-existent and empty values are treated in the same way as for REQUIREMENTS_TXT. +# WORKDIR +# Parent directory for the virtual environment. +# Default: current working directory. +# VENVDIR +# Python virtual environment directory. +# Default: $(WORKDIR)/.venv +# +# This Makefile was written for GNU Make and may not work with other make +# implementations. +# +# +# Copyright (c) 2019-2020 Vitaly Potyarkin +# +# Licensed under the Apache License, Version 2.0 +# +# + + +# +# Configuration variables +# + +WORKDIR?=. +VENVDIR?=$(WORKDIR)/.venv +REQUIREMENTS_TXT?=$(wildcard requirements.txt) # Multiple paths are supported (space separated) +SETUP_PY?=$(wildcard setup.py) # Multiple paths are supported (space separated) +SETUP_CFG?=$(foreach s,$(SETUP_PY),$(wildcard $(patsubst %setup.py,%setup.cfg,$(s)))) +MARKER=.initialized-with-Makefile.venv + + +# +# Python interpreter detection +# + +_PY_AUTODETECT_MSG=Detected Python interpreter: $(PY). Use PY environment variable to override + +ifeq (ok,$(shell test -e /dev/null 2>&1 && echo ok)) +NULL_STDERR=2>/dev/null +else +NULL_STDERR=2>NUL +endif + +ifndef PY +_PY_OPTION:=python3 +ifeq (ok,$(shell $(_PY_OPTION) -c "print('ok')" $(NULL_STDERR))) +PY=$(_PY_OPTION) +endif +endif + +ifndef PY +_PY_OPTION:=$(VENVDIR)/bin/python +ifeq (ok,$(shell $(_PY_OPTION) -c "print('ok')" $(NULL_STDERR))) +PY=$(_PY_OPTION) +$(info $(_PY_AUTODETECT_MSG)) +endif +endif + +ifndef PY +_PY_OPTION:=$(subst /,\,$(VENVDIR)/Scripts/python) +ifeq (ok,$(shell $(_PY_OPTION) -c "print('ok')" $(NULL_STDERR))) +PY=$(_PY_OPTION) +$(info $(_PY_AUTODETECT_MSG)) +endif +endif + +ifndef PY +_PY_OPTION:=py -3 +ifeq (ok,$(shell $(_PY_OPTION) -c "print('ok')" $(NULL_STDERR))) +PY=$(_PY_OPTION) +$(info $(_PY_AUTODETECT_MSG)) +endif +endif + +ifndef PY +_PY_OPTION:=python +ifeq (ok,$(shell $(_PY_OPTION) -c "print('ok')" $(NULL_STDERR))) +PY=$(_PY_OPTION) +$(info $(_PY_AUTODETECT_MSG)) +endif +endif + +ifndef PY +define _PY_AUTODETECT_ERR +Could not detect Python interpreter automatically. +Please specify path to interpreter via PY environment variable. +endef +$(error $(_PY_AUTODETECT_ERR)) +endif + + +# +# Internal variable resolution +# + +VENV=$(VENVDIR)/bin +EXE= +# Detect windows +ifeq (win32,$(shell $(PY) -c "import __future__, sys; print(sys.platform)")) +VENV=$(VENVDIR)/Scripts +EXE=.exe +endif + +touch=touch $(1) +ifeq (,$(shell command -v touch $(NULL_STDERR))) +# https://ss64.com/nt/touch.html +touch=type nul >> $(subst /,\,$(1)) && copy /y /b $(subst /,\,$(1))+,, $(subst /,\,$(1)) +endif + +RM?=rm -f +ifeq (,$(shell command -v $(firstword $(RM)) $(NULL_STDERR))) +RMDIR:=rd /s /q +else +RMDIR:=$(RM) -r +endif + + +# +# Virtual environment +# + +.PHONY: venv +venv: $(VENV)/$(MARKER) + +.PHONY: clean-venv +clean-venv: + -$(RMDIR) "$(VENVDIR)" + +.PHONY: show-venv +show-venv: venv + @$(VENV)/python -c "import sys; print('Python ' + sys.version.replace('\n',''))" + @$(VENV)/pip --version + @echo venv: $(VENVDIR) + +.PHONY: debug-venv +debug-venv: + @echo "PATH (Shell)=$$PATH" + @$(MAKE) --version + $(info PATH (GNU Make)="$(PATH)") + $(info SHELL="$(SHELL)") + $(info PY="$(PY)") + $(info REQUIREMENTS_TXT="$(REQUIREMENTS_TXT)") + $(info SETUP_PY="$(SETUP_PY)") + $(info SETUP_CFG="$(SETUP_CFG)") + $(info VENVDIR="$(VENVDIR)") + $(info VENVDEPENDS="$(VENVDEPENDS)") + $(info WORKDIR="$(WORKDIR)") + + +# +# Dependencies +# + +ifneq ($(strip $(REQUIREMENTS_TXT)),) +VENVDEPENDS+=$(REQUIREMENTS_TXT) +endif + +ifneq ($(strip $(SETUP_PY)),) +VENVDEPENDS+=$(SETUP_PY) +endif +ifneq ($(strip $(SETUP_CFG)),) +VENVDEPENDS+=$(SETUP_CFG) +endif + +$(VENV): + $(PY) -m venv $(VENVDIR) + $(VENV)/python -m pip install --upgrade pip setuptools wheel + +$(VENV)/$(MARKER): $(VENVDEPENDS) | $(VENV) +ifneq ($(strip $(REQUIREMENTS_TXT)),) + $(VENV)/pip install $(foreach path,$(REQUIREMENTS_TXT),-r $(path)) +endif +ifneq ($(strip $(SETUP_PY)),) + $(VENV)/pip install $(foreach path,$(SETUP_PY),-e $(dir $(path))) +endif + $(call touch,$(VENV)/$(MARKER)) + + +# +# Interactive shells +# + +.PHONY: python +python: venv + exec $(VENV)/python + +.PHONY: ipython +ipython: $(VENV)/ipython + exec $(VENV)/ipython + +.PHONY: shell +shell: venv + . $(VENV)/activate && exec $(notdir $(SHELL)) + +.PHONY: bash zsh +bash zsh: venv + . $(VENV)/activate && exec $@ + + +# +# Commandline tools (wildcard rule, executable name must match package name) +# + +ifneq ($(EXE),) +$(VENV)/%: $(VENV)/%$(EXE) ; +.PHONY: $(VENV)/% +.PRECIOUS: $(VENV)/%$(EXE) +endif + +$(VENV)/%$(EXE): $(VENV)/$(MARKER) + $(VENV)/pip install --upgrade $* + $(call touch,$@) diff --git a/components/operators/gpu-operator-certified/instance/overlays/mig-mixed/kustomization.yaml b/components/operators/gpu-operator-certified/instance/overlays/mig-mixed/kustomization.yaml index 24ad359..5abb963 100644 --- a/components/operators/gpu-operator-certified/instance/overlays/mig-mixed/kustomization.yaml +++ b/components/operators/gpu-operator-certified/instance/overlays/mig-mixed/kustomization.yaml @@ -11,4 +11,4 @@ patches: patch: |- - op: add path: /spec/mig/strategy - value: mixed \ No newline at end of file + value: mixed diff --git a/containers/s2i-cuda/common b/containers/s2i-cuda/common deleted file mode 160000 index c5d8cea..0000000 --- a/containers/s2i-cuda/common +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c5d8cea9e87098e4966d101cb7033aa5ae8a318e diff --git a/containers/udi-cuda/README.md b/containers/udi-cuda/README.md index cd2839c..cfeede3 100644 --- a/containers/udi-cuda/README.md +++ b/containers/udi-cuda/README.md @@ -23,13 +23,13 @@ podman build . \ # local build - runtime podman build . \ - -t udi-cuda:12.2.0-runtime-ubi8 \ - --build-arg IMAGE_NAME=docker.io/nvidia/cuda:12.2.0-runtime-ubi8 + -t udi-cuda:12.3.2-cudnn9-runtime-ubi8 \ + --build-arg IMAGE_NAME=docker.io/nvidia/cuda:12.3.2-cudnn9-runtime-ubi8 # local build - devel podman build . \ - -t udi-cuda:12.2.0-devel-ubi8 \ - --build-arg IMAGE_NAME=docker.io/nvidia/cuda:12.2.0-devel-ubi8 + -t udi-cuda:12.3.2-cudnn9-devel-ubi8 \ + --build-arg IMAGE_NAME=docker.io/nvidia/cuda:12.3.2-cudnn9-devel-ubi8 ``` ## Links diff --git a/dictionary.dic b/dictionary.dic new file mode 100644 index 0000000000000000000000000000000000000000..aafc7d461c14b99b8dcac82f0cab4b56ef49f1d8 GIT binary patch literal 5312 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 F{{VmUQqBMX literal 0 HcmV?d00001 diff --git a/notebooks/00-test-gpu-tensorflow.ipynb b/notebooks/00-test-gpu-tensorflow.ipynb index 7f00a5b..052eb29 100644 --- a/notebooks/00-test-gpu-tensorflow.ipynb +++ b/notebooks/00-test-gpu-tensorflow.ipynb @@ -21,7 +21,7 @@ "outputs": [], "source": [ "! nvidia-smi\n", - "! pip install tensorflow nvidia-cudnn-cu11" + "! pip install tensorflow[and-cuda]" ] }, { diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..d449a3d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +yamllint +pyspelling