Skip to content

OSS build updates (#3398) #470

OSS build updates (#3398)

OSS build updates (#3398) #470

Workflow file for this run

# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.
name: FBGEMM CI
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
# Cancel previous runs in the PR if a new commit is pushed
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build-linux:
if: ${{ github.repository_owner == 'pytorch' }}
runs-on: ${{ matrix.host-machine.instance }}
container:
image: amazonlinux:2023
options: --user root
defaults:
run:
shell: bash
env:
PRELUDE: .github/scripts/setup_env.bash
BUILD_ENV: build_${{ matrix.library-type }}
BUILD_DIR: build_${{ matrix.library-type }}
strategy:
fail-fast: false
matrix:
host-machine: [
{ arch: x86, instance: "linux.12xlarge" },
]
library-type: [ static, shared ]
compiler: [ "gcc", "clang" ]
steps:
- name: Setup Build Container
run: yum update -y; yum install -y binutils findutils git pciutils sudo wget which
- name: Checkout the Repository
uses: actions/checkout@v4
with:
submodules: true
- name: Display System Info
run: . $PRELUDE; print_system_info
- name: Setup Miniconda
run: . $PRELUDE; setup_miniconda $HOME/miniconda
- name: Create Conda Environment
run: . $PRELUDE; create_conda_environment $BUILD_ENV 3.12
- name: Install C/C++ Compilers
run: . $PRELUDE; install_cxx_compiler $BUILD_ENV ${{ matrix.compiler }}
- name: Install Build Tools
run: . $PRELUDE; install_build_tools $BUILD_ENV
- name: Build FBGEMM Library (${{ matrix.library-type }})
run: . $PRELUDE; build_fbgemm_library $BUILD_ENV cmake $BUILD_DIR ${{ matrix.library-type }}
- name: Test FBGEMM Library (${{ matrix.library-type }})
run: . $PRELUDE; test_fbgemm_library $BUILD_ENV $BUILD_DIR
build-macos:
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
env:
PRELUDE: .github/scripts/setup_env.bash
BUILD_DIR: build_${{ matrix.library-type }}
strategy:
fail-fast: false
matrix:
os: [ macos-13 ]
library-type: [ static, shared ]
steps:
- name: Checkout the Repository
uses: actions/checkout@v4
with:
submodules: true
- name: Display System Info
run: . $PRELUDE; print_system_info
# Build but skip tests due to lack of support for AVX2
- name: Build FBGEMM Library (${{ matrix.library-type }})
run: |
set -e
mkdir $BUILD_DIR; cd $BUILD_DIR
cmake --version
cmake -DUSE_SANITIZER=address -DFBGEMM_LIBRARY_TYPE=${{ matrix.library-type }} ..
make -j VERBOSE=1
build-bazel:
if: ${{ github.repository_owner == 'pytorch' }}
runs-on: ${{ matrix.host-machine.instance }}
container:
image: amazonlinux:2023
options: --user root
defaults:
run:
shell: bash
env:
PRELUDE: .github/scripts/setup_env.bash
BUILD_ENV: build_bazel
strategy:
fail-fast: false
matrix:
host-machine: [
{ arch: x86, instance: "linux.12xlarge" },
]
compiler: [ "gcc", "clang" ]
steps:
- name: Setup Build Container
run: yum update -y; yum install -y binutils findutils git pciutils sudo wget which
- name: Checkout the Repository
uses: actions/checkout@v4
with:
submodules: true
- name: Display System Info
run: . $PRELUDE; print_system_info
- name: Setup Miniconda
run: . $PRELUDE; setup_miniconda $HOME/miniconda
- name: Create Conda Environment
run: . $PRELUDE; create_conda_environment $BUILD_ENV 3.12
- name: Install C/C++ Compilers
run: . $PRELUDE; GCC_VERSION=10.4.0 install_cxx_compiler $BUILD_ENV ${{ matrix.compiler }}
- name: Install Build Tools
run: . $PRELUDE; install_build_tools $BUILD_ENV
- name: Build FBGEMM Library
run: . $PRELUDE; build_fbgemm_library $BUILD_ENV bazel
- name: Test FBGEMM Library
run: . $PRELUDE; print_exec conda run --no-capture-output -n $BUILD_ENV bazel test -s :*
build-windows:
runs-on: ${{ matrix.os }}
defaults:
run:
shell: cmd
env:
BUILD_DIR: build_${{ matrix.library-type }}
strategy:
fail-fast: false
matrix:
os: [ windows-2022 ]
library-type: [ static, shared ]
steps:
- name: Checkout the Repository
uses: actions/checkout@v4
with:
submodules: true
- name: Get CPU info on Windows
shell: cmd
run: |
wmic cpu list full
- name: Build FBGEMM Library (${{ matrix.library-type }})
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
echo "INSTALL NINJA:"
pip install ninja
which ninja
mkdir %BUILD_DIR%
cd %BUILD_DIR%
echo "STARTING CMAKE"
cmake --version
cmake -G Ninja -DFBGEMM_BUILD_BENCHMARKS=OFF -DFBGEMM_LIBRARY_TYPE=${{ matrix.library-type }} -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" ..
ninja -v all
echo "Build Success"
- name: Test FBGEMM Library (${{ matrix.library-type }})
shell: cmd
run: |
echo %cd%
cd %BUILD_DIR%
set PATH=%PATH%;%cd%;%cd%\asmjit
echo %PATH%
ctest --rerun-failed --output-on-failure
if errorlevel 1 exit /b 1