Skip to content

Extended Gemm interface to support mixed precision operations #1322

Extended Gemm interface to support mixed precision operations

Extended Gemm interface to support mixed precision operations #1322

Workflow file for this run

name: Build and Test
on:
# Run only on pushes to master to avoid triggering too many builds
# Individual branches can be run manually if desired.
push:
branches: [ master ]
#Run on any pull request, regardless of target branch.
pull_request:
# This allows manual triggering of the workflow through the Actions tab
workflow_dispatch:
jobs:
# This step checks whether we should skip the job
# This prevents running duplicate jobs on merge and should
# cancel outdated builds on pull requests.
skip-check:
continue-on-error: true
runs-on: ubuntu-22.04
# Map a step output to a job output
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@master
with:
concurrent_skipping: 'never'
skip_after_successful_duplicate: 'true'
# Skip builds for changes to documentation
paths_ignore: '["**/README.md", "**/doc/**"]'
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'
# Main job, builds the dockerfile in the repo and uses that to run
# the tests.
Build-and-Test:
needs: skip-check
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- impl: "DPCPP"
cxx_compiler: "/tmp/dpcpp/bin/clang++"
cc_compiler: "/tmp/dpcpp/bin/clang"
target: "opencl"
steps:
- uses: actions/checkout@v3.5.3
- name: Push Event Environment Vars
if: github.event_name == 'push'
run: |
echo "GIT_SLUG=${GITHUB_REPOSITORY}" >> $GITHUB_ENV
echo "GIT_BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: PR Event Environment Vars
if: github.event_name == 'pull_request'
run: |
echo "GIT_SLUG=${{github.event.pull_request.head.repo.full_name}}" >> $GITHUB_ENV
echo "GIT_BRANCH=${{ github.event.pull_request.head.ref }}" >> $GITHUB_ENV
- name: Build the Docker image
env:
C_COMPILER: ${{matrix.cc_compiler}}
CXX_COMPILER: ${{matrix.cxx_compiler}}
IMPL: ${{matrix.impl}}
COMMAND: "build-test"
run: docker build --build-arg c_compiler=${C_COMPILER}
--build-arg cxx_compiler=${CXX_COMPILER}
--build-arg git_branch=${GIT_BRANCH}
--build-arg git_slug=${GIT_SLUG}
--build-arg impl=${IMPL}
--build-arg command=${COMMAND}
-t portblas .
- name: Run the Docker image
run: docker run -t portblas
# Builds the dockerfile in the repo and uses that to build auto-tuner.
Build-Auto-Tuner:
needs: skip-check
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
include:
- impl: "DPCPP"
cxx_compiler: "/tmp/dpcpp/bin/clang++"
cc_compiler: "/tmp/dpcpp/bin/clang"
steps:
- uses: actions/checkout@v3.5.3
- name: Push Event Environment Vars
if: github.event_name == 'push'
run: |
echo "GIT_SLUG=${GITHUB_REPOSITORY}" >> $GITHUB_ENV
echo "GIT_BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: PR Event Environment Vars
if: github.event_name == 'pull_request'
run: |
echo "GIT_SLUG=${{github.event.pull_request.head.repo.full_name}}" >> $GITHUB_ENV
echo "GIT_BRANCH=${{ github.event.pull_request.head.ref }}" >> $GITHUB_ENV
- name: Build the Docker image
env:
C_COMPILER: ${{matrix.cc_compiler}}
CXX_COMPILER: ${{matrix.cxx_compiler}}
IMPL: ${{matrix.impl}}
COMMAND: "auto-tuner"
run: docker build --build-arg c_compiler=${C_COMPILER}
--build-arg cxx_compiler=${CXX_COMPILER}
--build-arg git_branch=${GIT_BRANCH}
--build-arg git_slug=${GIT_SLUG}
--build-arg impl=${IMPL}
--build-arg command=${COMMAND}
-t portblas .
- name: Run the Docker image
run: docker run -t portblas