From: Kyle Roarty Date: Tue, 17 Nov 2020 18:42:19 +0000 (-0600) Subject: util: Update ROCm to 1.6.4 in gcn Dockerfile, install HIP by .deb X-Git-Tag: develop-gem5-snapshot~402 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0a494822fd90c72c0045e4a1efd666f203da2d67;p=gem5.git util: Update ROCm to 1.6.4 in gcn Dockerfile, install HIP by .deb Previously, we were using ROCm 1.6.2 as there were issues with some of the machine learning applications that weren't present on 1.6.2. However, after re-running them we've found that they, and all other applications previously tested, run to completion. Additionally, there have been patches to enable BLIT kernels which made it so we no longer need to build HIP and MIOpen differently for APU and DGPU code. This allows us to install HIP directly from the .deb packages instead of from source. Installing from the .deb packages also avoid the hipDeviceSynchronize() bug. Finally, this makes it so most GPU programs can be run as-is without modifications to remove hipMalloc/hipMemcpy calls as was done previously. Change-Id: Ic61b09ed200b19f759d891487cde874abd607537 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/37675 Reviewed-by: Bobby R. Bruce Maintainer: Bobby R. Bruce Tested-by: kokoro --- diff --git a/util/dockerfiles/gcn-gpu/Dockerfile b/util/dockerfiles/gcn-gpu/Dockerfile index e13367fcd..dad41b92c 100644 --- a/util/dockerfiles/gcn-gpu/Dockerfile +++ b/util/dockerfiles/gcn-gpu/Dockerfile @@ -54,20 +54,21 @@ 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.2.tar.bz2 \ +RUN wget -qO- ${gem5_dist}/apt_1.6.4.tar.bz2 \ | tar -xjv \ - && cd apt_1.6.2/pool/main/ \ + && 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 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/ROCm-Developer-Tools/HIP/ && \ - git clone --single-branch https://github.com/ROCmSoftwarePlatform/hipBLAS/ && \ +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/ && \ @@ -77,12 +78,10 @@ RUN git clone --single-branch https://github.com/ROCm-Developer-Tools/HIP/ && \ # Apply patches to various repos RUN mkdir -p /patch && cd /patch && \ wget ${gem5_dist}/rocm_patches/hipBLAS.patch && \ - wget ${gem5_dist}/rocm_patches/hip.patch_v2 && \ wget ${gem5_dist}/rocm_patches/miopen-conv.patch && \ wget ${gem5_dist}/rocm_patches/rocBLAS.patch -RUN git -C /HIP/ checkout 0e3d824e && git -C /HIP/ apply /patch/hip.patch_v2 && \ - git -C /hipBLAS/ checkout ee57787e && git -C /hipBLAS/ apply /patch/hipBLAS.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 && \ @@ -97,17 +96,13 @@ 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 /HIP/build && \ - mkdir -p /rocBLAS/build && \ +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 /HIP/build -RUN cmake .. && make -j$(nproc) && make install && rm -rf * - WORKDIR /rocBLAS/build RUN CXX=/opt/rocm/bin/hcc cmake -DCMAKE_CXX_FLAGS="--amdgpu-target=gfx801" .. && \ make -j$(nproc) && make install && rm -rf * @@ -144,7 +139,7 @@ RUN CXX=/opt/rocm/hcc/bin/hcc cmake \ -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" .. && \ + -DCMAKE_CXX_FLAGS="-isystem /usr/include/x86_64-linux-gnu -DDGPU" .. && \ make -j$(nproc) && make install && rm -rf * # Re-set defaults @@ -166,4 +161,5 @@ 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 /