[go: up one dir, main page]

File: ci.yml

package info (click to toggle)
spfft 0.9.13-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,632 kB
  • sloc: cpp: 10,662; f90: 508; ansic: 366; python: 41; makefile: 11
file content (133 lines) | stat: -rw-r--r-- 4,053 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
name: CI

on: [push, pull_request]

jobs:
  #########################
  # Build and test with GCC
  #########################
  CPU:
    # The type of runner that the job will run on
    runs-on: ubuntu-18.04
    strategy:
      fail-fast: false
      matrix:
        build_type: [release, debug]
        compiler: [g++]
        use_omp: [true]
        use_mpi: [true, false]
        use_float: [true]
        include:
          - build_type: debug
            compiler: clang++
            use_omp: false
            use_mpi: true
            use_float: false

    env:
      USE_OMP: ${{ matrix.use_omp }}
      USE_MPI: ${{ matrix.use_mpi }}
      USE_FLOAT: ${{ matrix.use_float }}
      BUILD_TYPE: ${{ matrix.build_type }}
      COMPILER: ${{ matrix.compiler }}

    steps:
    # Checks-out your repository under $GITHUB_WORKSPACE
    - uses: actions/checkout@v2


    - name: Print build config
      run: |
        echo "Compiler: ${COMPILER}, Build type: ${BUILD_TYPE}, OpenMP: ${USE_OMP}, MPI: ${USE_MPI}, FLOAT: ${USE_FLOAT}"

    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y libfftw3-dev make g++ clang wget git make
        cd ${HOME} && wget https://github.com/Kitware/CMake/releases/download/v3.11.4/cmake-3.11.4-Linux-x86_64.tar.gz && tar -xzvf cmake-3.11.4-Linux-x86_64.tar.gz

    - name: Install MPI
      if: ${{ matrix.use_mpi }}
      run: |
        sudo apt-get install -y mpi-default-dev

    - name: Build and install
      run: |
        mkdir -p build
        cd build
        mkdir -p install_dir
        export INSTALL_DIR=$(pwd)/install_dir
        CXX=${COMPILER} ${HOME}/cmake-3.11.4-Linux-x86_64/bin/cmake .. -DSPFFT_BUILD_TESTS=OFF -DSPFFT_OMP=${USE_OMP} -DSPFFT_MPI=${USE_MPI} -DSPFFT_SINGLE_PRECISION=${USE_FLOAT} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}
        make -j2
        make VERBOSE=1 install
        test -f ${INSTALL_DIR}/lib/libspfft.so
        test -f ${INSTALL_DIR}/include/spfft/spfft.hpp
        test -f ${INSTALL_DIR}/include/spfft/spfft.h

    - name: Build tests
      run: |
        cd ${GITHUB_WORKSPACE}
        rm -rf build
        mkdir -p build
        cd build
        CXX=${COMPILER} ${HOME}/cmake-3.11.4-Linux-x86_64/bin/cmake .. -DSPFFT_BUILD_TESTS=ON -DSPFFT_OMP=${USE_OMP} -DSPFFT_MPI=${USE_MPI} -DSPFFT_SINGLE_PRECISION=${USE_FLOAT} -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
        make -j2

    - name: Run tests
      env:
        OMPI_MCA_btl_vader_single_copy_mechanism: none
      run: ${GITHUB_WORKSPACE}/build/tests/run_local_tests

    - name: Run tests with MPI
      if: ${{ matrix.use_mpi }}
      env:
        OMPI_MCA_btl_vader_single_copy_mechanism: none
      run: mpirun -n 2 ${GITHUB_WORKSPACE}/build/tests/run_mpi_tests


  #################
  # Build with CUDA
  #################
  CUDA:
    runs-on: ubuntu-18.04
    container: nvidia/cuda:9.2-devel-ubuntu18.04

    steps:
    # Checks-out your repository under $GITHUB_WORKSPACE
    - uses: actions/checkout@v2

    - name: Install dependencies
      run: |
        apt-get update
        apt-get install -y libfftw3-dev make g++ mpi-default-dev wget git make
        cd ${HOME} && wget https://github.com/Kitware/CMake/releases/download/v3.14.6/cmake-3.14.6-Linux-x86_64.tar.gz && tar -xzvf cmake-3.14.6-Linux-x86_64.tar.gz

    - name: Build
      run: |
        cd ${GITHUB_WORKSPACE}
        mkdir -p build
        cd build
        ${HOME}/cmake-3.14.6-Linux-x86_64/bin/cmake .. -DSPFFT_BUILD_TESTS=ON -DSPFFT_GPU_BACKEND=CUDA -DSPFFT_OMP=OFF
        make -j2


  #################
  # Build with ROCm
  #################
  ROCM:
    runs-on: ubuntu-18.04
    container: adhocman/master:ubuntu18.04_rocm

    steps:
    # Checks-out your repository under $GITHUB_WORKSPACE
    - uses: actions/checkout@v2

    - name: Build
      run: |
        cd ${GITHUB_WORKSPACE}
        mkdir -p build
        cd build
        /root/cmake-3.11.4-Linux-x86_64/bin/cmake .. -DSPFFT_BUILD_TESTS=ON -DSPFFT_GPU_BACKEND=ROCM
        make -j2