Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Actions fix #441

Closed
wants to merge 52 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
1c394e7
Fixing LoopBuffer bug (#421)
ABenC377 Aug 2, 2024
05fdd87
Bp update (#422)
ABenC377 Aug 29, 2024
4134c3e
Group Tests (#419)
dANW34V3R Aug 29, 2024
b73c2cc
Added cstdint header to Register.hh (#427)
FinnWilkinson Sep 20, 2024
7018211
AppleClang 16 SimInfo LTO fix (#430)
FinnWilkinson Sep 20, 2024
1d9e277
Fix invalid version header destination (#434)
tom91136 Oct 31, 2024
ff665cf
Rebasing to dev
ABenC377 Nov 1, 2024
e81673f
Rebasing to dev
ABenC377 Nov 1, 2024
40e7709
Rebasing to dev
ABenC377 Nov 1, 2024
6fa281d
Addressing superficial comments on PR
ABenC377 Mar 5, 2024
31c871e
Clang format
ABenC377 Mar 11, 2024
110c1c6
Adding more detail to virtual flush and update functions re order of …
ABenC377 Apr 30, 2024
4b3617c
Moving buffer branch flush functionality from core.cc to PipelineBuff…
ABenC377 Apr 30, 2024
a55e292
Rebasing to dev
ABenC377 Nov 1, 2024
17c9baf
Rebasing to dev
ABenC377 Nov 1, 2024
508a2f4
Rebasing to dev
ABenC377 Nov 1, 2024
e0f8121
Rebasing to dev
ABenC377 Nov 1, 2024
af8d1a0
Rebasing to dev
ABenC377 Nov 1, 2024
f9089e0
Rebasing to dev
ABenC377 Nov 1, 2024
3e5b507
Rebasing to dev
ABenC377 Nov 1, 2024
0445478
Rebasing to dev
ABenC377 Nov 1, 2024
f49e538
Rebasing to dev
ABenC377 Nov 1, 2024
e688a05
Rebasing to dev
ABenC377 Nov 1, 2024
1f925ea
Rebasing to dev
ABenC377 Nov 1, 2024
52f9688
clang format
ABenC377 May 7, 2024
6a286d3
Rebasing to dev
ABenC377 Nov 1, 2024
d0cc56a
undoing last push
ABenC377 May 13, 2024
1c1b6ce
Updating haeders and comments
ABenC377 May 24, 2024
1b800c1
Rebasing to dev
ABenC377 Nov 1, 2024
3aa7ca0
replacing = with ==
ABenC377 Jun 4, 2024
e525016
Rebasing to dev
ABenC377 Nov 1, 2024
673fe87
clang format
ABenC377 Jul 18, 2024
ace2d59
Rebasing to dev
ABenC377 Nov 1, 2024
416cc20
Rebasing to dev
ABenC377 Nov 1, 2024
92e67a8
Rebasing to dev
ABenC377 Nov 1, 2024
f051277
Rebasing to dev
ABenC377 Nov 1, 2024
2a957cb
Rebasing to dev
ABenC377 Nov 1, 2024
0980811
Rebasing to dev
ABenC377 Nov 1, 2024
e5f52eb
undoing last push
ABenC377 May 13, 2024
37a1c34
Updating haeders and comments
ABenC377 May 24, 2024
e297e68
Rebasing to dev
ABenC377 Nov 1, 2024
6dfa36c
clang format
ABenC377 Jul 18, 2024
4155ffc
Rebasing to dev
ABenC377 Nov 1, 2024
601178b
Rebasing to dev
ABenC377 Nov 1, 2024
5031d15
Rebasing to dev
ABenC377 Nov 1, 2024
4ad630c
Rebasing to dev
ABenC377 Nov 1, 2024
d2a651b
Rebasing to dev
ABenC377 Nov 5, 2024
84f4c7f
CI/CD (#437)
ABenC377 Nov 6, 2024
111a48f
Rebasing
ABenC377 Nov 14, 2024
c661294
Adding Tage config file
ABenC377 Nov 14, 2024
e8683c1
Merging in dev
ABenC377 Dec 5, 2024
a597aac
Removing Ubuntu 18 -- github actions have deprecated support for old …
ABenC377 Dec 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 113 additions & 0 deletions .github/actions/select_setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
name: Setup compiler and OS combo
description: installs dependencies and correct compiler/OS versions to build and test simeng

##############################################################################
# Calls the correct setup action based on parameters passed into this action.
##############################################################################

inputs:
OS:
required: true
COMPILER:
required: true
MODE:
required: true

runs:
using: 'composite'
steps:
##########################################
# GCC jobs
##########################################

# ubuntu
- if: ${{ contains( inputs.COMPILER, 'gcc') && contains( inputs.OS, 'ubuntu') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_gcc_ubuntu
with:
OS: ${{ inputs.OS }}
gcc-version: ${{ inputs.COMPILER }}
MODE: ${{ inputs.mode }}

# rocky linux
- if: ${{ contains( inputs.COMPILER, 'gcc') && contains( inputs.OS, 'rocky') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_gcc_rocky
with:
OS: ${{ inputs.OS }}
gcc-version: ${{ inputs.COMPILER }}
MODE: ${{ inputs.mode }}

# red hat
- if: ${{ contains( inputs.COMPILER, 'gcc') && contains( inputs.OS, 'redhat') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_gcc_redhat
with:
OS: ${{ inputs.OS }}
gcc-version: ${{ inputs.COMPILER }}
MODE: ${{ inputs.mode }}

# debian
- if: ${{ contains( inputs.COMPILER, 'gcc') && contains( inputs.OS, 'debian') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_gcc_debian
with:
OS: ${{ inputs.OS }}
gcc-version: ${{ inputs.COMPILER }}
MODE: ${{ inputs.mode }}

# macos
- if: ${{ contains( inputs.COMPILER, 'gcc') && contains( inputs.OS, 'macos') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_gcc_macos
with:
OS: ${{ inputs.OS }}
gcc-version: ${{ inputs.COMPILER }}
MODE: ${{ inputs.mode }}

##########################################
# APPLE CLANG
##########################################

- if: ${{ contains( inputs.COMPILER, 'clang') && contains( inputs.OS, 'macos') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_clang_macos
with:
OS: ${{ inputs.OS }}
MODE: ${{ inputs.mode }}

##########################################
# ARM CLANG
##########################################

# ubuntu
- if: ${{ contains( inputs.COMPILER, 'armclang') && contains( inputs.OS, 'ubuntu') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_armclang_ubuntu
with:
OS: ${{ inputs.OS }}
MODE: ${{ inputs.mode }}

# debian
- if: ${{ contains( inputs.COMPILER, 'armclang') && contains( inputs.OS, 'debian') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_armclang_debian
with:
OS: ${{ inputs.OS }}
MODE: ${{ inputs.mode }}

# redhat
- if: ${{ contains( inputs.COMPILER, 'armclang') && contains( inputs.OS, 'redhat') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_armclang_redhat
with:
OS: ${{ inputs.OS }}
MODE: ${{ inputs.mode }}

# rocky
- if: ${{ contains( inputs.COMPILER, 'armclang') && contains( inputs.OS, 'rocky') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_armclang_rocky
with:
OS: ${{ inputs.OS }}
MODE: ${{ inputs.mode }}
95 changes: 95 additions & 0 deletions .github/actions/setup_armclang_debian/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: setup armclang
description: installs dependencies and correct armclang version to build and test simeng

inputs:
OS:
description: docker image name
required: true
MODE:
description: simeng-mode e.g. Release or Debug
required: true

runs:
using: 'composite'
steps:
#######################################
# Install dependencies required (cmake, etc).
#######################################
- name: Install dependencies
shell: bash
run: |
export DEBIAN_FRONTEND=noninteractive

# Update package lists
apt-get update

# Install essential packages
apt-get install -y \
python3-launchpadlib \
software-properties-common \
build-essential \
sudo \
wget \
zlib1g-dev \
python3 \
build-essential \
libssl-dev \
ninja-build \
tree \
git

# add pyparsing for benchmarking
apt-get install -y python3-pip
pip3 install pyparsing

apt-get update
apt-get upgrade -y

#######################################
# Install Cmake
#######################################
- name: Install Cmake via apt
shell: bash
run: |
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \
apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main' && \
apt update && apt install cmake -y
apt upgrade -y

#######################################
# Install ArmClang
#######################################
- name: Install armclang
shell: bash
run: |
apt-get update
apt-get upgrade -y
apt-get install environment-modules
source /etc/profile.d/modules.sh

wget https://developer.arm.com/-/cdn-downloads/permalink/Arm-Compiler-for-Linux/Version_24.04/arm-compiler-for-linux_24.04_Ubuntu-22.04_aarch64.tar
tar -xf arm-compiler-for-linux_24.04_Ubuntu-22.04_aarch64.tar

./arm-compiler-for-linux_24.04_Ubuntu-20.04/arm-compiler-for-linux_24.04_Ubuntu-20.04.sh --install-to ./armclang_compiler
export MODULEPATH=$MODULEPATH:$(pwd)/armclang_compiler/modulefiles

module avail
module load acfl/24.04
armclang -v

echo "C_COMPILER=$(which armclang)" >> $GITHUB_ENV
echo "CPP_COMPILER=$(which armclang++)" >> $GITHUB_ENV

#######################################
# Build SimEng
#######################################
- name: Build SimEng
shell: bash
run: |
cmake -B build -S . -DCMAKE_BUILD_TYPE=${{ inputs.MODE }} -DSIMENG_ENABLE_TESTS=ON -DSIMENG_OPTIMIZE=ON -DCMAKE_C_COMPILER=${{ env.C_COMPILER }} -DCMAKE_CXX_COMPILER=${{ env.CPP_COMPILER }}

cmake --build build -j $(nproc)

cmake --build build --target install


91 changes: 91 additions & 0 deletions .github/actions/setup_armclang_redhat/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: setup armclang
description: installs dependencies and correct armclang version to build and test simeng

inputs:
OS:
description: docker image name
required: true
MODE:
description: simeng-mode e.g. Release or Debug
required: true

runs:
using: 'composite'
steps:
#######################################
# Install dependencies required (cmake, etc).
#######################################
- name: Install dependencies
shell: bash
run: |
dnf -y update && \
dnf -y install \
gcc gcc-c++ make \
wget \
python3 \
git \
diffutils \
openssl-devel \
bzip2 \
automake \
autoconf \
cmake \
file \
zlib-devel

if [[ ${{ inputs.OS }} == 'redhat/ubi8:latest' ]]; then
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
elif [[ ${{ inputs.OS }} == 'redhat/ubi9:latest' ]]; then
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
fi

# add pyparsing for benchmarking
dnf install -y python3-pip
pip3 install pyparsing

dnf update -y
dnf upgrade -y
dnf clean all

#######################################
# Install Cmake
#######################################
- name: Install Cmake via DNF
shell: bash
run: |
dnf install -y cmake

######################################
# Install ArmClang
######################################
- name: Install armclang
shell: bash
run: |

dnf install -y environment-modules
source /etc/profile.d/modules.sh

wget https://developer.arm.com/-/cdn-downloads/permalink/Arm-Compiler-for-Linux/Version_24.04/arm-compiler-for-linux_24.04_Ubuntu-22.04_aarch64.tar
tar -xf arm-compiler-for-linux_24.04_Ubuntu-22.04_aarch64.tar

./arm-compiler-for-linux_24.04_Ubuntu-20.04/arm-compiler-for-linux_24.04_Ubuntu-20.04.sh --install-to ./armclang_compiler
export MODULEPATH=$MODULEPATH:$(pwd)/armclang_compiler/modulefiles

module avail
module load acfl/24.04
armclang -v

echo "C_COMPILER=$(which armclang)" >> $GITHUB_ENV
echo "CPP_COMPILER=$(which armclang++)" >> $GITHUB_ENV

#######################################
# Build SimEng
#######################################
- name: Build SimEng
shell: bash
run: |
cmake -B build -S . -DCMAKE_BUILD_TYPE=${{ inputs.MODE }} -DSIMENG_ENABLE_TESTS=ON -DSIMENG_OPTIMIZE=ON -DCMAKE_C_COMPILER=${{ env.C_COMPILER }} -DCMAKE_CXX_COMPILER=${{ env.CPP_COMPILER }}

cmake --build build -j $(nproc)

cmake --build build --target install
86 changes: 86 additions & 0 deletions .github/actions/setup_armclang_rocky/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: setup armclang
description: installs dependencies and correct armclang version to build and test simeng

inputs:
OS:
description: docker image name
required: true
MODE:
description: simeng-mode e.g. Release or Debug
required: true

runs:
using: 'composite'
steps:
#######################################
# Install dependencies required (cmake, etc).
#######################################
- name: Install dependencies
shell: bash
run: |
dnf -y update && \
dnf install -y epel-release \
gcc gcc-c++ make \
git \
wget \
openssl-devel \
automake \
autoconf \
bzip2 \
file \
sudo \
tree \
zlib-devel

# add pyparsing for benchmarking
dnf install -y python3-pip
pip3 install pyparsing

dnf group install -y "Development Tools"
dnf update -y
dnf upgrade -y

#######################################
# Install Cmake
#######################################
- name: Install Cmake via DNF
shell: bash
run: |
dnf install -y cmake

######################################
# Install ArmClang
######################################
- name: Install armclang
shell: bash
run: |

dnf install -y environment-modules
source /etc/profile.d/modules.sh

wget https://developer.arm.com/-/cdn-downloads/permalink/Arm-Compiler-for-Linux/Version_24.04/arm-compiler-for-linux_24.04_Ubuntu-22.04_aarch64.tar
tar -xf arm-compiler-for-linux_24.04_Ubuntu-22.04_aarch64.tar

./arm-compiler-for-linux_24.04_Ubuntu-20.04/arm-compiler-for-linux_24.04_Ubuntu-20.04.sh --install-to ./armclang_compiler
export MODULEPATH=$MODULEPATH:$(pwd)/armclang_compiler/modulefiles

module avail
module load acfl/24.04
armclang -v

echo "C_COMPILER=$(which armclang)" >> $GITHUB_ENV
echo "CPP_COMPILER=$(which armclang++)" >> $GITHUB_ENV

#######################################
# Build SimEng
#######################################
- name: Build SimEng
shell: bash
run: |
cmake -B build -S . -DCMAKE_BUILD_TYPE=${{ inputs.MODE }} -DSIMENG_ENABLE_TESTS=ON -DSIMENG_OPTIMIZE=ON -DCMAKE_C_COMPILER=${{ env.GCC_DIR }} \
-DCMAKE_CXX_COMPILER=${{ env.CPP_DIR }}

cmake --build build -j $(nproc)

cmake --build build --target install

Loading
Loading