Skip to content

Caching layout struct types #4348

Caching layout struct types

Caching layout struct types #4348

Workflow file for this run

#=========================== begin_copyright_notice ============================
#
# Copyright (C) 2022 Intel Corporation
#
# SPDX-License-Identifier: MIT
#
#============================ end_copyright_notice =============================
name: Build IGC
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
download-OpenCL-Clang: # openCL Clang is downloaded from intel/intel-graphics-compiler releases
if: github.repository == 'intel/intel-graphics-compiler'
runs-on: ubuntu-latest
steps:
- uses: oprypin/find-latest-tag@v1
with:
repository: intel/intel-graphics-compiler
releases-only: true
id: get-latest-IGC-release-tag
- name: caching downloaded OpenCL Clang # Downloading a new OpenCL Clang only after the new IGC is released
id: cache-igc-release
uses: actions/cache@v3
with:
path: ./igc-official-release
key: ${{ steps.get-latest-IGC-release-tag.outputs.tag }}
- name: creating a folder for downloaded deb files
if: steps.cache-igc-release.outputs.cache-hit != 'true'
run: mkdir igc-official-release
- name: download latest igc release
if: steps.cache-igc-release.outputs.cache-hit != 'true'
working-directory: ./igc-official-release
# To install openCL clang from Deb package, IGC must also be installed. Therefore, the last IGC release is also downloaded.
run: curl -s https://api.github.com/repos/intel/intel-graphics-compiler/releases/latest | grep browser_download_url | egrep 'opencl_|core_' | cut -d '"' -f 4 | wget -qi -
- name: checking if downloaded deb files are here
run: ls ./igc-official-release
build-SPIRV-LLVM-Translator:
if: github.repository == 'intel/intel-graphics-compiler'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ubuntu_version: [ '20.04', '22.04' ]
llvm_ver: [ 14 ]
include:
- ubuntu_version: '22.04'
llvm_ver: 15
experimental: true
steps:
- uses: actions/checkout@v3
- name: cloning SPIRV-LLVM-Translator repository
run: git clone --branch llvm_release_${{ matrix.llvm_ver }}0 https://github.com/KhronosGroup/SPIRV-LLVM-Translator
- name: getting latest commit hash from SPIRV-LLVM-Translator repository
id: SPIRV-LLVM-Translator-hash
working-directory: ./SPIRV-LLVM-Translator
run: |
SPIRV_TRANSLATOR_SHA_SHORT=$(git log -1 --pretty=format:"%h")
echo "This is SPIRV-LLVM-Translator repository latest commit hash = ${SPIRV_TRANSLATOR_SHA_SHORT}"
echo "spirv_translator_sha_short=$SPIRV_TRANSLATOR_SHA_SHORT" >> $GITHUB_OUTPUT
- name: caching SPIRV-LLVM-Translator deb files
id: cache-spirv-llvm-translator
uses: actions/cache@v3
with:
path: ./build-SPIRV-LLVM-Translator
key: ${{ steps.SPIRV-LLVM-Translator-hash.outputs.spirv_translator_sha_short }}-ubuntu${{ matrix.ubuntu_version }}-llvm${{ matrix.llvm_ver }}
- name: run Docker
if: steps.cache-spirv-llvm-translator.outputs.cache-hit != 'true'
run: |
docker run --name=buildslt \
-v $(pwd)/scripts/buildSLT.sh:/buildSLT.sh \
--env DEBIAN_FRONTEND="noninteractive" \
--env UBUNTU_VERSION=${{ matrix.ubuntu_version }} \
--env LLVM_VERSION=${{ matrix.llvm_ver }} \
ubuntu:${{ matrix.ubuntu_version }} \
sh /buildSLT.sh
- name: creating folders to store SPIRV-LLVM-Translator build outputs
if: steps.cache-spirv-llvm-translator.outputs.cache-hit != 'true'
run: mkdir build-SPIRV-LLVM-Translator && mkdir temp-SPIRV-LLVM-Translator-build
- name: copying artifact from docker to github host
if: steps.cache-spirv-llvm-translator.outputs.cache-hit != 'true'
run: sudo docker cp buildslt:/SPIRV-LLVM-Translator/build ./temp-SPIRV-LLVM-Translator-build
- name: copy deb file to main artifact folder
if: steps.cache-spirv-llvm-translator.outputs.cache-hit != 'true'
run: sudo cp ./temp-SPIRV-LLVM-Translator-build/build/*.deb ./build-SPIRV-LLVM-Translator
build-IGC:
needs: [build-SPIRV-LLVM-Translator, download-OpenCL-Clang]
if: github.repository == 'intel/intel-graphics-compiler'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ubuntu_version: [ '20.04', '22.04' ]
llvm_ver: [ 14 ]
compiler: [ gcc, clang ]
include:
- ubuntu_version: '22.04'
llvm_ver: 15
compiler: gcc
experimental: true
steps:
- uses: actions/checkout@v3
#Get OpenCL Clang
- uses: oprypin/find-latest-tag@v1
with:
repository: intel/intel-graphics-compiler
releases-only: true
id: get-latest-IGC-release-tag
- name: getting OpenCL Clang from cache from the previous job
id: cache-igc-release
uses: actions/cache@v3
with:
path: ./igc-official-release
key: ${{ steps.get-latest-IGC-release-tag.outputs.tag }}
- name: checking if deb files are here
run: ls ./igc-official-release
#Get SPIRV-LLVM-Translator
- name: cloning SPIRV-LLVM-Translator repository
run: git clone --branch llvm_release_${{ matrix.llvm_ver }}0 https://github.com/KhronosGroup/SPIRV-LLVM-Translator
- name: getting latest commit hash from SPIRV-LLVM-Translator repository
id: SPIRV-LLVM-Translator-hash
working-directory: ./SPIRV-LLVM-Translator
run: |
SPIRV_TRANSLATOR_SHA_SHORT=$(git log -1 --pretty=format:"%h")
echo "This is SPIRV-LLVM-Translator hash = ${SPIRV_TRANSLATOR_SHA_SHORT}"
echo "spirv_translator_sha_short=$SPIRV_TRANSLATOR_SHA_SHORT" >> $GITHUB_OUTPUT
- name: getting SPIRV-LLVM-Translator deb files from cache from the previous job
id: cache-spirv-llvm-translator
uses: actions/cache@v3
with:
path: ./build-SPIRV-LLVM-Translator
key: ${{ steps.SPIRV-LLVM-Translator-hash.outputs.spirv_translator_sha_short }}-ubuntu${{ matrix.ubuntu_version }}-llvm${{ matrix.llvm_ver }}
#Build IGC
- name: Checkout IGC sources
uses: actions/checkout@v3
with:
path: workspace/igc
- name: Checkout vc-intrinsics sources
uses: actions/checkout@v3
with:
repository: intel/vc-intrinsics
ref: master
path: workspace/vc-intrinsics
- name: Checkout SPIRV-Headers sources
uses: actions/checkout@v3
with:
repository: KhronosGroup/SPIRV-Headers
ref: sdk-1.3.204.1
path: workspace/SPIRV-Headers
- name: Checkout the SPIRV-Headers
uses: actions/checkout@v3
with:
repository: KhronosGroup/SPIRV-Tools
ref: sdk-1.3.204.1
path: workspace/SPIRV-Tools
- name: get short hash
id: igc-current-short-Hash
run: echo "sha_short=${GITHUB_SHA::7}" >> $GITHUB_OUTPUT
- name: run Docker
run: |
docker run --name=buildigc \
-v $(pwd)/scripts/buildIGC.sh:/buildIGC.sh \
-v $(pwd)/igc-official-release:/igc-official-release \
-v $(pwd)/build-SPIRV-LLVM-Translator:/build-SPIRV-LLVM-Translator \
-v $(pwd)/workspace:/workspace \
--env DEBIAN_FRONTEND="noninteractive" \
--env UBUNTU_VERSION=${{ matrix.ubuntu_version }} \
--env LLVM_VERSION=${{ matrix.llvm_ver }} \
--env COMPILER=${{ matrix.compiler }} \
--env IGC_SHA=${{ steps.igc-current-short-Hash.outputs.sha_short }} \
ubuntu:${{ matrix.ubuntu_version }} \
sh /buildIGC.sh
- name: creating folder to store output artifacts
run: mkdir Artifacts
- name: copying artifact from docker to github host
run: sudo docker cp buildigc:/workspace/igc/build/DEB-FILES ./Artifacts
- uses: actions/upload-artifact@v2
with:
name: IGC_Ubuntu${{ matrix.ubuntu_version }}_llvm${{ matrix.llvm_ver }}_${{ matrix.compiler }}-${{ steps.igc-current-short-Hash.outputs.sha_short }}
path: ./Artifacts/DEB-FILES/*.deb
retention-days: 7