blob: f87b15bea452261eb40573d5f7201ced07f461b5 [file] [log] [blame]
# Copyright 2022 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# This is derived from a stock manylinux2014 image, based on CentOS 7.
# It does not derive from any of our other images and contains sufficient
# software to build release packages for that OS. Note that the upstream
# images are patched regularly with backports from RedHat and have relatively
# recent dev tooling and Python versions. Bump the base hash to get Python
# and dev tooling upgrades.
#
# This line of images is EOL on June 30, 2024. Prior to that, we should upgrade
# to a newer revision. Newer manylinux images are based on Debian.
#
# Refer to: https://github.com/pypa/manylinux
FROM quay.io/pypa/manylinux2014_x86_64@sha256:9b463efac479efbcab6dec77eca28c5cfa0c5ef64f13ac184eb7117dc1f8edda
USER root
######## Pre-requisite packages ########
# Add RHEL7 CUDA repo.
RUN yum-config-manager --add-repo \
https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
RUN yum install -y \
cuda-nvcc-11-6 cuda-cudart-devel-11-6 cuda-cupti-11-6 \
java-11-openjdk-devel \
ccache \
capstone-devel libzstd-devel
######## Bazel ########
# Bazel requires Java.
ARG BAZEL_VERSION=5.1.0
RUN curl -fsSL \
https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-linux-x86_64 \
-o /usr/local/bin/bazel \
&& chmod a+x /usr/local/bin/bazel \
&& /usr/local/bin/bazel --version
# See: https://github.com/bazelbuild/bazel/issues/10327
# Note also that many things that link fine on newer OS's seem to fail based
# on missing -lm, so just adding here.
ENV BAZEL_LINKOPTS ""
ENV BAZEL_LINKLIBS "-lstdc++ -lm"
######## TBB ########
# TBB is a dependency of Tracy and there is not a packaged source for a versoin
# that is compatible with the STL shipped on this OS. So we use a script to
# fetch/build/install exactly what is needed.
COPY install_tbb_manylinux2014.sh /usr/local/bin
RUN bash /usr/local/bin/install_tbb_manylinux2014.sh
######## AMD ROCM #######
ARG ROCM_VERSION=5.2.1
ARG AMDGPU_VERSION=22.20.1
# Install the ROCm rpms
RUN yum clean all \
&& echo -e "[ROCm]\nname=ROCm\nbaseurl=https://repo.radeon.com/rocm/yum/$ROCM_VERSION/main\nenabled=1\ngpgcheck=0" >> /etc/yum.repos.d/rocm.repo \
&& echo -e "[amdgpu]\nname=amdgpu\nbaseurl=https://repo.radeon.com/amdgpu/$AMDGPU_VERSION/rhel/7.9/main/x86_64\nenabled=1\ngpgcheck=0" >> /etc/yum.repos.d/amdgpu.repo \
&& yum install -y rocm-dev