FROM ubuntu:16.04

# Needed for add-apt-repository
RUN apt-get update && apt-get install -y --no-install-recommends \
    software-properties-common

# Ubuntu 16.04 does not have a python package new enough for gem5, use a PPA
RUN add-apt-repository ppa:deadsnakes/ppa && apt-get update

# Should be minimal needed packages
RUN apt-get update && apt-get install -y --no-install-recommends \
    findutils \
    file \
    libunwind8 \
    libunwind-dev \
    pkg-config \
    build-essential \
    gcc-multilib \
    g++-multilib \
    git \
    ca-certificates \
    m4 \
    zlib1g \
    zlib1g-dev \
    libprotobuf-dev \
    protobuf-compiler \
    libprotoc-dev \
    libgoogle-perftools-dev \
    python-yaml \
    python3.9 \
    python3.9-dev \
    python3.9-distutils \
    wget \
    libpci3 \
    libelf1 \
    libelf-dev \
    cmake \
    openssl \
    libssl-dev \
    libboost-filesystem-dev \
    libboost-system-dev \
    libboost-dev \
    libpng12-dev \
    gdb

# Use python 3.9 by default
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1

# Setuptools is needed for cmake for ROCm build. Install using pip.
# Instructions to install PIP from https://pypi.org/project/pip/
RUN wget https://bootstrap.pypa.io/get-pip.py -qO get-pip.py
RUN python3 get-pip.py
RUN pip install -U setuptools scons==3.1.2 six

ARG gem5_dist=http://dist.gem5.org/dist/develop

# Install ROCm 1.6 binaries
RUN wget -qO- ${gem5_dist}/apt_1.6.4.tar.bz2 \
    | tar -xjv \
    && cd apt_1.6.4/pool/main/ \
    && dpkg -i h/hsakmt-roct-dev/* \
    && dpkg -i h/hsa-ext-rocr-dev/* \
    && dpkg -i h/hsa-rocr-dev/* \
    && dpkg -i r/rocm-utils/* \
    && dpkg -i h/hcc/* \
    && dpkg -i r/rocm-opencl/* \
    && dpkg -i r/rocm-opencl-dev/* \
    && dpkg -i h/hip_base/* \
    && dpkg -i h/hip_hcc/*

# Get ROCm libraries we need to compile from source (and ROCm-profiler)
RUN git clone --single-branch https://github.com/ROCmSoftwarePlatform/hipBLAS/ && \
    git clone --single-branch https://github.com/ROCmSoftwarePlatform/rocBLAS/ && \
    git clone --single-branch https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/ && \
    git clone --single-branch https://github.com/ROCmSoftwarePlatform/MIOpen/ && \
    git clone --single-branch https://github.com/RadeonOpenCompute/rocm-cmake/ && \
    git clone --single-branch https://github.com/rocmarchive/ROCm-Profiler.git

# Apply patches to various repos
RUN mkdir -p /patch && cd /patch && \
    wget ${gem5_dist}/rocm_patches/hipBLAS.patch && \
    wget ${gem5_dist}/rocm_patches/miopen-conv.patch && \
    wget ${gem5_dist}/rocm_patches/rocBLAS.patch

RUN git -C /hipBLAS/ checkout ee57787e && git -C /hipBLAS/ apply /patch/hipBLAS.patch && \
    git -C /rocBLAS/ checkout cbff4b4e && git -C /rocBLAS/ apply /patch/rocBLAS.patch && \
    git -C /rocm-cmake/ checkout 12670acb && \
    git -C /MIOpenGEMM/ checkout 9547fb9e && \
    git -C /MIOpen/ checkout 01d6ca55c && git -C /MIOpen/ apply /patch/miopen-conv.patch

ENV ROCM_PATH /opt/rocm
ENV HCC_HOME ${ROCM_PATH}/hcc
ENV HSA_PATH ${ROCM_PATH}/hsa
ENV HIP_PATH ${ROCM_PATH}/hip
ENV HIP_PLATFORM hcc
ENV PATH ${ROCM_PATH}/bin:${HCC_HOME}/bin:${HSA_PATH}/bin:${HIP_PATH}/bin:${PATH}
ENV HCC_AMDGPU_TARGET gfx801

# Create build dirs for machine learning ROCm installs
RUN mkdir -p /rocBLAS/build && \
    mkdir -p /hipBLAS/build && \
    mkdir -p /rocm-cmake/build && \
    mkdir -p /MIOpenGEMM/build && \
    mkdir -p /MIOpen/build

# Do the builds, empty build dir to trim image size
WORKDIR /rocBLAS/build
RUN CXX=/opt/rocm/bin/hcc cmake -DCMAKE_CXX_FLAGS="--amdgpu-target=gfx801" .. && \
    make -j$(nproc) && make install && rm -rf *

WORKDIR /hipBLAS/build
RUN CXX=/opt/rocm/bin/hcc cmake -DCMAKE_CXX_FLAGS="--amdgpu-target=gfx801" .. && \
    make -j$(nproc) && make install && rm -rf *

WORKDIR /rocm-cmake/build
RUN cmake .. && cmake --build . --target install && rm -rf *

WORKDIR /MIOpenGEMM/build
RUN cmake .. && make miopengemm && make install && rm -rf *

# Should link this in as a volume if at all possible
RUN mkdir -p /.cache/miopen && chmod 777 /.cache/miopen

# Un-set default c++ version for MIOpen compilation
# As MIOpen 1.7 requires c++14 or higher
RUN sed -i 's/INTERFACE_COMPILE_OPTIONS "-std=c++amp;-fPIC;-gline-tables-only"/#&/' /opt/rocm/hcc-1.0/lib/cmake/hcc/hcc-targets.cmake && \
    sed -i 's/INTERFACE_COMPILE_OPTIONS "-hc"/#&/' /opt/rocm/hcc-1.0/lib/cmake/hcc/hcc-targets.cmake

WORKDIR /MIOpen
# Half is required; This is the version that MIOpen would download
RUN wget https://github.com/pfultz2/half/archive/1.12.0.tar.gz && \
    tar -xzf 1.12.0.tar.gz

WORKDIR /MIOpen/build
RUN CXX=/opt/rocm/hcc/bin/hcc cmake \
    -DCMAKE_BUILD_TYPE=Debug \
    -DCMAKE_INSTALL_PREFIX=/opt/rocm \
    -DMIOPEN_BACKEND=HIP \
    -DCMAKE_PREFIX_PATH="/opt/rocm/hip;/opt/rocm/hcc;/opt/rocm/rocdl;/opt/rocm/miopengemm;/opt/rocm/hsa" \
    -DMIOPEN_CACHE_DIR=/.cache/miopen \
    -DMIOPEN_AMDGCN_ASSEMBLER_PATH=/opt/rocm/opencl/bin \
    -DHALF_INCLUDE_DIR=/MIOpen/half-1.12.0/include \
    -DCMAKE_CXX_FLAGS="-isystem /usr/include/x86_64-linux-gnu -DDGPU" .. && \
    make -j$(nproc) && make install && rm -rf *

# Re-set defaults
RUN sed -i 's/#\(INTERFACE_COMPILE_OPTIONS "-std=c++amp;-fPIC;-gline-tables-only"\)/\1/' /opt/rocm/hcc-1.0/lib/cmake/hcc/hcc-targets.cmake && \
    sed -i 's/#\(INTERFACE_COMPILE_OPTIONS "-hc"\)/\1/' /opt/rocm/hcc-1.0/lib/cmake/hcc/hcc-targets.cmake

# Create performance DB for gfx801.
WORKDIR /opt/rocm/miopen/share/miopen/db
RUN cp gfx803_64.cd.pdb.txt gfx801_4.cd.pdb.txt && \
    cp gfx803_64.cd.pdb.txt gfx801_8.cd.pdb.txt && \
    cp gfx803_64.cd.pdb.txt gfx801_16.cd.pdb.txt && \
    cp gfx803_64.cd.pdb.txt gfx801_32.cd.pdb.txt && \
    cp gfx803_64.cd.pdb.txt gfx801_64.cd.pdb.txt

# Install profiler from .deb file, works for 1.6.2
WORKDIR /ROCm-Profiler
RUN dpkg -i package/rocm-profiler_4.0.6036_amd64.deb

# Always use python3 and create a link to config command for gem5 to find
RUN ln -sf /usr/bin/python3 /usr/bin/python
RUN ln -sf /usr/bin/python3.9-config /usr/bin/python3-config

WORKDIR /
