diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile new file mode 100644 index 0000000..d580a16 --- /dev/null +++ b/dockerfiles/Dockerfile @@ -0,0 +1,94 @@ +# Copyright (C) 2024-2025 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +ARG CENTOS_VERSION=10 +FROM quay.io/centos/centos:stream${CENTOS_VERSION}-minimal AS gosu + +USER 0 + +ARG GOSU_VERSION=1.19 +ENV GOSU_VERSION=${GOSU_VERSION} +RUN microdnf update -y && \ + microdnf install -y wget && \ + microdnf clean all && rm -rf /var/cache/dnf +RUN set -eux; \ + rpmArch="$(rpm --query --queryformat='%{ARCH}' rpm)"; \ + case "$rpmArch" in \ + aarch64) dpkgArch='arm64' ;; \ + armv[67]*) dpkgArch='armhf' ;; \ + i[3456]86) dpkgArch='i386' ;; \ + ppc64le) dpkgArch='ppc64el' ;; \ + riscv64 | s390x) dpkgArch="$rpmArch" ;; \ + x86_64) dpkgArch='amd64' ;; \ + *) echo >&2 "error: unknown/unsupported architecture '$rpmArch'"; exit 1 ;; \ + esac; \ + wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$dpkgArch"; \ + chmod +x /usr/local/bin/gosu && \ + rm -rf /var/cache/dnf /tmp/* + +FROM quay.io/centos/centos:${CENTOS_VERSION} AS base + +ARG CENTOS_VERSION +ARG PYTHON_VERSION=3.12 +ARG WORKSPACE=/workspace + +USER 0 + +COPY --from=gosu /usr/local/bin/gosu /usr/local/bin/gosu + +# Install the EPEL repo and enable CRB +ARG EPEL_REPO=https://dl.fedoraproject.org/pub/epel/epel-release-latest-${CENTOS_VERSION}.noarch.rpm +RUN dnf -y install 'dnf-command(config-manager)' && \ + dnf -y config-manager --set-enabled crb && \ + dnf -y install ${EPEL_REPO} && \ + /usr/bin/crb enable && \ + dnf -y update + +# Install base software +RUN dnf -y update && \ + dnf -y install clang cmake git glibc-langpack-en libxml2-devel \ + lld llvm llvm-libs libomp libomp-devel ninja-build openblas openblas-devel \ + python${PYTHON_VERSION}-devel python${PYTHON_VERSION}-pip zlib-devel && \ + dnf clean all && rm -rf /var/cache/dnf + +# Create the /workspace directory and set permissions +WORKDIR $WORKSPACE +RUN python${PYTHON_VERSION} -m pip install uv && \ + uv venv --python ${PYTHON_VERSION} --seed $WORKSPACE && \ + echo "unset BASH_ENV PROMPT_COMMAND ENV" >> ${WORKSPACE}/bin/activate && \ + chmod -R 777 $WORKSPACE + +ENV BASH_ENV=${WORKSPACE}/bin/activate \ + ENV=${WORKSPACE}/bin/activate \ + LANG=en_US.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=${WORKSPACE}/bin:$PATH \ + PIP_PREFIX=$WORKSPACE \ + PROMPT_COMMAND=". ${WORKSPACE}/bin/activate" \ + PYTHON_VERSION=$PYTHON_VERSION \ + PYTHONUNBUFFERED=1 \ + PYTHONPATH=${WORKSPACE}/lib/python${PYTHON_VERSION}/site-packages \ + TRITON_HOME=$WORKSPACE \ + CENTOS_VERSION=$CENTOS_VERSION \ + UV_HTTP_TIMEOUT=60 \ + WORKSPACE=$WORKSPACE \ + XDG_CACHE_HOME=$WORKSPACE + +COPY scripts/ldpretend.sh ${WORKSPACE}/ldpretend.sh +COPY scripts/install_software.sh ${WORKSPACE}/install_software.sh +COPY scripts/setup*.sh ${WORKSPACE}/ + +COPY hack/triton-gpu-check.py triton-gpu-check.py diff --git a/dockerfiles/Dockerfile.cpu b/dockerfiles/Dockerfile.cpu new file mode 100644 index 0000000..ad13ff0 --- /dev/null +++ b/dockerfiles/Dockerfile.cpu @@ -0,0 +1,27 @@ +# Copyright (C) 2024-2025 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +ARG BASE_IMAGE_NAME=base +ARG BASE_IMAGE_TAG=centos10 +FROM quay.io/triton-dev-containers/${BASE_IMAGE_NAME}:${BASE_IMAGE_TAG} + +ENV TRITON_CPU_BACKEND=1 + +COPY hack/triton-gpu-check.py triton-gpu-check.py + +COPY scripts/entrypoint.sh /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] +CMD ["tail", "-f", "/dev/null"] diff --git a/dockerfiles/Dockerfile.cuda b/dockerfiles/Dockerfile.cuda new file mode 100644 index 0000000..6449db2 --- /dev/null +++ b/dockerfiles/Dockerfile.cuda @@ -0,0 +1,35 @@ +# Copyright (C) 2024-2025 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +ARG BASE_IMAGE_NAME=base +ARG BASE_IMAGE_TAG=centos10 +FROM quay.io/triton-dev-containers/${BASE_IMAGE_NAME}:${BASE_IMAGE_TAG} + +ARG CUDA_VERSION=13-0 + +# Update and install base cuda dependencies +RUN dnf -y update && \ + dnf -y install libglvnd-opengl libxkbfile \ + qt5-qtwayland xcb-util-cursor && \ + dnf clean all && rm -rf /var/cache/dnf + +ENV CUDA_VERSION=$CUDA_VERSION + +COPY examples/flash_attention_demo.ipynb flash_attention_demo.ipynb + +COPY scripts/entrypoint.sh /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] +CMD ["tail", "-f", "/dev/null"] diff --git a/dockerfiles/Dockerfile.gosu b/dockerfiles/Dockerfile.gosu deleted file mode 100644 index dbee94b..0000000 --- a/dockerfiles/Dockerfile.gosu +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright (C) 2024-2025 Red Hat, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 - -FROM registry.access.redhat.com/ubi9/ubi-minimal:latest - -ENV GOSU_VERSION=1.17 -RUN microdnf update -y && \ - microdnf install -y wget && \ - microdnf clean all && rm -rf /var/cache/dnf -RUN set -eux; \ - rpmArch="$(rpm --query --queryformat='%{ARCH}' rpm)"; \ - case "$rpmArch" in \ - aarch64) dpkgArch='arm64' ;; \ - armv[67]*) dpkgArch='armhf' ;; \ - i[3456]86) dpkgArch='i386' ;; \ - ppc64le) dpkgArch='ppc64el' ;; \ - riscv64 | s390x) dpkgArch="$rpmArch" ;; \ - x86_64) dpkgArch='amd64' ;; \ - *) echo >&2 "error: unknown/unsupported architecture '$rpmArch'"; exit 1 ;; \ - esac; \ - wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ - chmod +x /usr/local/bin/gosu && \ - rm -rf /var/cache/dnf /tmp/* diff --git a/dockerfiles/Dockerfile.llvm b/dockerfiles/Dockerfile.llvm deleted file mode 100644 index a06573b..0000000 --- a/dockerfiles/Dockerfile.llvm +++ /dev/null @@ -1,72 +0,0 @@ -ARG CUSTOM_LLVM -ARG TRITON_CPU_BACKEND=0 -ARG LLVM_TAG - -FROM registry.access.redhat.com/ubi9/python-312:latest -ARG CUSTOM_LLVM -ARG TRITON_CPU_BACKEND=0 -ARG LLVM_TAG -USER 0 - -# Conditionally execute the build based on CUSTOM_LLVM -RUN if [ "$CUSTOM_LLVM" = "true" ]; then \ - dnf update -y && \ - dnf -y install clang rpm-build git ninja-build cmake lld && \ - dnf clean all && rm -rf /var/cache/dnf && \ - python3 -m pip install --upgrade pip && \ - python3 -m pip install --upgrade cmake ninja sccache pybind11 && \ - if [ ! -d "/llvm-project" ]; then \ - git clone https://github.com/llvm/llvm-project /llvm-project; \ - else \ - cd /llvm-project && git fetch origin; \ - fi && \ - cd /llvm-project && \ - python3 -m pip install -r mlir/python/requirements.txt && \ - REPO="triton"; \ - PROJECTS="mlir;llvm;lld"; \ - if [ "$TRITON_CPU_BACKEND" = "1" ]; then REPO="triton-cpu"; fi; \ - COMMIT="${LLVM_TAG:-$(curl -s https://raw.githubusercontent.com/triton-lang/$REPO/refs/heads/main/cmake/llvm-hash.txt)}" && \ - CURRENT_COMMIT=$(git rev-parse HEAD) && \ - if [ "$CURRENT_COMMIT" != "$COMMIT" ] || [ ! -f "/install/bin/llvm-config" ] || [ ! -d "/install/lib" ]; then \ - echo "LLVM commit mismatch or missing install. Rebuilding..."; \ - git checkout $COMMIT && \ - mkdir -p build && cd build && \ - cmake -G Ninja -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_ENABLE_ASSERTIONS=ON ../llvm \ - -DCMAKE_INSTALL_PREFIX=/install \ - -DMLIR_ENABLE_BINDINGS_PYTHON=ON \ - -DLLVM_TARGETS_TO_BUILD="host;NVPTX;AMDGPU" \ - -DLLVM_ENABLE_PROJECTS=$PROJECTS \ - -DLLVM_ENABLE_LIBCXX:BOOL=OFF \ - -DLLVM_ENABLE_ZLIB:BOOL=ON \ - -DLLVM_ENABLE_FFI:BOOL=ON \ - -DLLVM_ENABLE_RTTI:BOOL=ON \ - -DLLVM_BUILD_RUNTIME:BOOL=ON \ - -DLLVM_BUILD_TOOLS:BOOL=OFF \ - -DLLVM_INCLUDE_TOOLS:BOOL=ON \ - -DLLVM_INCLUDE_TESTS:BOOL=OFF \ - -DLLVM_BUILD_TESTS:BOOL=OFF \ - -DLLVM_INSTALL_GTEST:BOOL=OFF \ - -DLLVM_LIT_ARGS=-v \ - -DLLVM_INCLUDE_EXAMPLES:BOOL=OFF \ - -DLLVM_BUILD_EXAMPLES:BOOL=OFF \ - -DLLVM_INCLUDE_UTILS:BOOL=OFF \ - -DLLVM_INSTALL_UTILS:BOOL=OFF \ - -DLLVM_INCLUDE_DOCS:BOOL=OFF \ - -DLLVM_BUILD_DOCS:BOOL=OFF \ - -DLLVM_ENABLE_SPHINX:BOOL=OFF \ - -DLLVM_ENABLE_DOXYGEN:BOOL=OFF \ - -DLLVM_UNREACHABLE_OPTIMIZE:BOOL=OFF \ - -DLLVM_BUILD_LLVM_DYLIB:BOOL=OFF \ - -DLLVM_LINK_LLVM_DYLIB:BOOL=OFF \ - -DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \ - -DLLVM_INCLUDE_BENCHMARKS=OFF \ - -DMLIR_ENABLE_EXECUTION_ENGINE:bool=OFF && \ - ninja install; \ - else \ - echo "LLVM is already up-to-date. Skipping rebuild."; \ - fi \ - else \ - echo "Skipping LLVM build because CUSTOM_LLVM is not true"; \ - mkdir -p /install; \ - fi diff --git a/dockerfiles/Dockerfile.rocm b/dockerfiles/Dockerfile.rocm new file mode 100644 index 0000000..92767e8 --- /dev/null +++ b/dockerfiles/Dockerfile.rocm @@ -0,0 +1,48 @@ +# Copyright (C) 2024-2025 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 + + +ARG BASE_IMAGE_NAME=base +ARG BASE_IMAGE_TAG=centos10 +FROM quay.io/triton-dev-containers/${BASE_IMAGE_NAME}:${BASE_IMAGE_TAG} + +ARG ROCM_VERSION=6.4.4 +ARG AMDGPU_INSTALL_URL=https://repo.radeon.com/amdgpu-install/${ROCM_VERSION}/rhel + +# Install the AMD ROCm Repo and GPG key +RUN source /etc/os-release && \ + if [ "$VERSION_ID" = "10.0" ]; then RHEL_VERSION=${VERSION_ID%.*}; else RHEL_VERSION=${VERSION_ID}; fi; \ + AMDGPU_INSTALL_RPM=$(curl -s ${AMDGPU_INSTALL_URL}/${RHEL_VERSION}/ | grep href | sed -e 's/.*href="//' -e 's/".*//' |grep "amdgpu-install-${ROCM_VERSION%.*}.*${PLATFORM_ID#*:}.noarch.rpm") && \ + dnf -y install ${AMDGPU_INSTALL_URL}/${RHEL_VERSION}/${AMDGPU_INSTALL_RPM} + +# Install the ROCm rpms +RUN dnf -y install --nodocs --setopt=install_weak_deps=False \ + amd-smi-lib rocminfo && \ + dnf clean all && rm -rf /var/cache/yum + +# Set environment variables for ROCm +ENV ROCM_VERSION=$ROCM_VERSION \ + ROCM_PATH=/opt/rocm \ + LD_LIBRARY_PATH=/usr/lib64:/usr/lib:/opt/rocm/lib:/opt/rocm/llvm/lib \ + PATH=/opt/rocm/bin:/opt/rocm/llvm/bin:$PATH + +COPY hack/triton-gpu-check.py triton-gpu-check.py +COPY examples/triton-vector-add-rocm.py triton-vector-add-rocm.py +COPY examples/flash_attention_demo.ipynb flash_attention_demo.ipynb + +COPY scripts/entrypoint.sh /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] +CMD ["tail", "-f", "/dev/null"] diff --git a/dockerfiles/Dockerfile.triton b/dockerfiles/Dockerfile.triton deleted file mode 100644 index 721f24c..0000000 --- a/dockerfiles/Dockerfile.triton +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright (C) 2024-2025 Red Hat, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -ARG CUSTOM_LLVM=false - -FROM registry.access.redhat.com/ubi9/python-312 AS base -ARG CUSTOM_LLVM - -# NOTE: Requires host build system to have a valid Red Hat Subscription if true -ARG NSIGHT_GUI=false - -USER 0 - -RUN dnf -y update && \ - dnf -y install clang cmake lld ninja-build openblas openblas-devel \ - llvm llvm-libs libomp libomp-devel sudo && \ - dnf clean all - -# Stage for llvm-local-true -FROM base AS llvm-local-true -COPY --from=quay.io/triton-dev-containers/llvm:latest /install /llvm-project/install - -# Stage for llvm-local-false -FROM base AS llvm-local-false -ENV TRITON_OFFLINE_BUILD=NO - -# Use intermediate stage selection -FROM llvm-local-${CUSTOM_LLVM} AS final - -# Create the /workspace directory and set permissions -RUN mkdir -p /workspace && \ - python -m venv /workspace && \ - echo "unset BASH_ENV PROMPT_COMMAND ENV" >> /workspace/bin/activate && \ - chmod -R 777 /workspace - -# Create a symlink to the installed version of CUDA -RUN ln -sf /usr/local/cuda-${CUDA_VERSION/-/.} /usr/local/cuda - -ENV BASH_ENV=/workspace/bin/activate \ - ENV=/workspace/bin/activate \ - PROMPT_COMMAND=". /workspace/bin/activate" \ - PYTHON_VERSION=3.12 \ - PATH=/workspace/bin:$PATH \ - PYTHONUNBUFFERED=1 \ - PIP_PREFIX=/workspace \ - PYTHONPATH=/workspace/lib/python$PYTHON_VERSION/site-packages \ - XDG_CACHE_HOME=/workspace \ - TRITON_CACHE_DIR=/workspace/.triton/cache \ - TRITON_HOME=/workspace/ - -WORKDIR /workspace -RUN echo 'export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc -RUN echo "export MAX_JOBS=$(nproc --all)" >> "${HOME}"/.bashrc -COPY --from=quay.io/triton-dev-containers/gosu /usr/local/bin/gosu /usr/local/bin/gosu -COPY dockerfiles/user.sh user.sh -COPY dockerfiles/entrypoint.sh /entrypoint.sh -COPY hack/triton-gpu-check.py triton-gpu-check.py -COPY examples/flash_attention_demo.ipynb flash_attention_demo.ipynb -ENTRYPOINT ["/entrypoint.sh"] -CMD ["tail", "-f", "/dev/null"] diff --git a/dockerfiles/Dockerfile.triton-amd b/dockerfiles/Dockerfile.triton-amd deleted file mode 100644 index d573ad6..0000000 --- a/dockerfiles/Dockerfile.triton-amd +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright (C) 2024-2025 Red Hat, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 - -ARG CUSTOM_LLVM=false -ARG ROCM_VERSION=6.2 - -# Base Stage with ROCm Installation -FROM registry.access.redhat.com/ubi9/python-312 AS base -ARG ROCM_VERSION=6.2 -USER 0 - -# Install the ROCm rpms -RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \ - echo "name=ROCm" >> /etc/yum.repos.d/rocm.repo && \ - echo "baseurl=https://repo.radeon.com/rocm/rhel9/$ROCM_VERSION/main" >> /etc/yum.repos.d/rocm.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/rocm.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/rocm.repo && \ - dnf install -y llvm clang clang-libs lld && \ - dnf install -y --nodocs --setopt=install_weak_deps=False \ - amd-smi-lib \ - amd-smi \ - miopen-hip \ - rocm-core \ - rocm-hip-libraries \ - rocminfo && \ - dnf clean all && rm -rf /var/cache/yum - -# Set environment variables for ROCm -ENV LC_ALL=C.UTF-8 \ -LANG=C.UTF-8 \ -ROCM_PATH=/opt/rocm \ -LD_LIBRARY_PATH=/usr/lib64:/usr/lib:/opt/rocm/lib:/opt/rocm/llvm/lib \ -PATH=/opt/rocm/bin:/opt/rocm/llvm/bin:$PATH - -# LLVM Integration Stages -FROM base AS llvm-local-true -COPY --from=quay.io/triton-dev-containers/llvm:latest /install /llvm-project/install - -FROM base AS llvm-local-false -ENV TRITON_OFFLINE_BUILD=NO - -# Final Stage -FROM llvm-local-${CUSTOM_LLVM} AS final -ARG ROCM_VERSION=6.2 - -# Create the /workspace directory and set permissions -RUN mkdir -p /workspace && \ - python -m venv /workspace && \ - echo "unset BASH_ENV PROMPT_COMMAND ENV" >> /workspace/bin/activate && \ - chmod -R 777 /workspace - -ENV BASH_ENV=/workspace/bin/activate \ - ENV=/workspace/bin/activate \ - PROMPT_COMMAND=". /workspace/bin/activate" \ - PYTHON_VERSION=3.11 \ - PATH=/workspace/bin:$PATH \ - PYTHONUNBUFFERED=1 \ - AMD=true \ - ROCM_VERSION=$ROCM_VERSION \ - PIP_PREFIX=/workspace \ - PYTHONPATH=/workspace/lib/python$PYTHON_VERSION/site-packages \ - XDG_CACHE_HOME=/workspace \ - TRITON_CACHE_DIR=/workspace/.triton/cache \ - TRITON_HOME=/workspace/ - -WORKDIR /workspace -RUN echo 'export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc -RUN echo "export MAX_JOBS=$(nproc --all)" >> "${HOME}"/.bashrc -COPY --from=quay.io/triton-dev-containers/gosu /usr/local/bin/gosu /usr/local/bin/gosu -COPY dockerfiles/user.sh user.sh -COPY dockerfiles/entrypoint.sh /entrypoint.sh -COPY hack/triton-gpu-check.py triton-gpu-check.py -COPY examples/triton-vector-add-rocm.py triton-vector-add-rocm.py -COPY examples/flash_attention_demo.ipynb flash_attention_demo.ipynb -ENTRYPOINT ["/entrypoint.sh"] -CMD ["tail", "-f", "/dev/null"] diff --git a/dockerfiles/Dockerfile.triton-cpu b/dockerfiles/Dockerfile.triton-cpu deleted file mode 100644 index 06db847..0000000 --- a/dockerfiles/Dockerfile.triton-cpu +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright (C) 2024-2025 Red Hat, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 - -ARG CUSTOM_LLVM=false - -FROM registry.access.redhat.com/ubi9/python-312 AS base -ARG CUSTOM_LLVM - -USER 0 - -RUN dnf update -y && \ - dnf -y install clang cmake lld ninja-build \ - openblas openblas-devel llvm llvm-libs libomp libomp-devel && \ - dnf clean all && rm -rf /var/cache/dnf - -# Stage for llvm-local-true -FROM base AS llvm-local-true -COPY --from=quay.io/triton-dev-containers/llvm:cpu-latest /install /llvm-project/install - -# Stage for llvm-local-false -FROM base AS llvm-local-false -ENV TRITON_OFFLINE_BUILD=NO - -# Use intermediate stage selection -FROM llvm-local-${CUSTOM_LLVM} AS final - -# Create the /workspace directory and set permissions -RUN mkdir -p /workspace && \ - python -m venv /workspace && \ - echo "unset BASH_ENV PROMPT_COMMAND ENV" >> /workspace/bin/activate && \ - chmod -R 777 /workspace -ENV BASH_ENV=/workspace/bin/activate \ - ENV=/workspace/bin/activate \ - PROMPT_COMMAND=". /workspace/bin/activate" \ - PYTHON_VERSION=3.12 \ - PATH=/workspace/bin:$PATH \ - PYTHONUNBUFFERED=1 \ - TRITON_CPU_BACKEND=1 \ - PIP_PREFIX=/workspace \ - PYTHONPATH=/workspace/lib/python$PYTHON_VERSION/site-packages \ - XDG_CACHE_HOME=/workspace \ - TRITON_CACHE_DIR=/workspace/.triton/cache \ - TRITON_HOME=/workspace/ - -WORKDIR /workspace -RUN echo 'export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc -RUN echo "export MAX_JOBS=$(nproc --all)" >> "${HOME}"/.bashrc -COPY --from=quay.io/triton-dev-containers/gosu /usr/local/bin/gosu /usr/local/bin/gosu -COPY dockerfiles/user.sh user.sh -COPY dockerfiles/entrypoint.sh /entrypoint.sh -COPY hack/triton-gpu-check.py triton-gpu-check.py -ENTRYPOINT ["/entrypoint.sh"] -CMD ["tail", "-f", "/dev/null"]