Implement parameter updater and move actors to their own namespace (#… #7936
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Builds | |
| on: | |
| push: | |
| pull_request: | |
| branches: | |
| - main | |
| # Cancel existing jobs on new pushes. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| # All the different build/test jobs. | |
| jobs: | |
| # Native build jobs. | |
| native: | |
| # The different build modes to test. | |
| strategy: | |
| matrix: | |
| BUILD_TYPE: ["Debug"] | |
| PLATFORM: | |
| - OS: "ubuntu-latest" | |
| GENERATOR: "Unix Makefiles" | |
| - OS: "macos-latest" | |
| GENERATOR: "Xcode" | |
| # The system to run on. | |
| runs-on: ${{ matrix.PLATFORM.OS }} | |
| name: "native (${{ matrix.PLATFORM.OS }})" | |
| # The build/test steps to execute. | |
| steps: | |
| # Use a standard checkout of the code. | |
| - uses: actions/checkout@v4 | |
| # Run the CMake configuration. | |
| - name: Configure | |
| run: cmake --preset full-fp64 | |
| -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} | |
| -DDETRAY_FAIL_ON_WARNINGS=ON | |
| -DDETRAY_SET_LOGGING=DEBUG | |
| -DDETRAY_SMATRIX_PLUGIN=OFF | |
| -DDETRAY_FASTOR_PLUGIN=OFF | |
| -DDETRAY_VC_AOS_PLUGIN=OFF | |
| -DDETRAY_VC_SOA_PLUGIN=OFF | |
| -S ${{ github.workspace }} -B build | |
| -G "${{ matrix.PLATFORM.GENERATOR }}" | |
| # Perform the build. | |
| - name: Build | |
| run: cmake --build build --config ${{ matrix.BUILD_TYPE }} -- -j 2 | |
| # Containerised build jobs. | |
| host-container: | |
| # The different build modes to test. | |
| strategy: | |
| matrix: | |
| BUILD_TYPE: ["Release", "Debug"] | |
| SCALAR_TYPE: ["float", "double"] | |
| PLATFORM: | |
| - NAME: "HOST" | |
| CXX_STANDARD: "20" | |
| CONTAINER: "ghcr.io/acts-project/ubuntu2404:56" | |
| OPTIONS: -DDETRAY_EIGEN_PLUGIN=ON -DDETRAY_FASTOR_PLUGIN=OFF -DDETRAY_SMATRIX_PLUGIN=ON -DDETRAY_VC_AOS_PLUGIN=ON -DDETRAY_VC_SOA_PLUGIN=ON | |
| # The system to run on. | |
| runs-on: ubuntu-latest | |
| container: ${{ matrix.PLATFORM.CONTAINER }} | |
| name: "host-container (${{ matrix.PLATFORM.NAME }}, C++${{ matrix.PLATFORM.CXX_STANDARD }})" | |
| # Use BASH as the shell from the image. | |
| defaults: | |
| run: | |
| shell: bash | |
| # Set the path to the test data files | |
| env: | |
| DETRAY_DATA_DIRECTORY: ${{ github.workspace }}/data/ | |
| DETRAY_BFIELD_FILE: ${{ github.workspace }}/data/odd-bfield_v0_9_0.cvf | |
| # The build/test steps to execute. | |
| steps: | |
| # Use a standard checkout of the code. | |
| - uses: actions/checkout@v4 | |
| # Get the data files for the tests | |
| - name: Download data files | |
| run: data/detray_data_get_files.sh | |
| # Run the CMake configuration. | |
| - name: Configure | |
| run: | | |
| source ${GITHUB_WORKSPACE}/.github/ci_setup.sh ${{ matrix.PLATFORM.NAME }} | |
| cmake --preset full-fp32 \ | |
| -DCMAKE_CXX_STANDARD=${{ matrix.PLATFORM.CXX_STANDARD }} \ | |
| -DDETRAY_FAIL_ON_WARNINGS=ON \ | |
| -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} \ | |
| -DDETRAY_CUSTOM_SCALARTYPE=${{ matrix.SCALAR_TYPE }} \ | |
| ${{ matrix.PLATFORM.OPTIONS }} \ | |
| -S ${GITHUB_WORKSPACE} \ | |
| -B build | |
| # Perform the build. | |
| - name: Build | |
| run: | | |
| source ${GITHUB_WORKSPACE}/.github/ci_setup.sh ${{ matrix.PLATFORM.NAME }} | |
| cmake --build build -- -j $(nproc) | |
| # Run the unit test(s). | |
| - name: Full Test | |
| if: "matrix.BUILD_TYPE == 'Release'" | |
| run: | | |
| cd build | |
| source ${GITHUB_WORKSPACE}/.github/ci_setup.sh ${{ matrix.PLATFORM.NAME }} | |
| ctest --output-on-failure | |
| - name: Unit Tests | |
| if: "matrix.BUILD_TYPE == 'Debug'" | |
| run: | | |
| cd build | |
| source ${GITHUB_WORKSPACE}/.github/ci_setup.sh ${{ matrix.PLATFORM.NAME }} | |
| ctest -R detray_unit_test_. -E "._eigen|._fastor|._vc_aos" --output-on-failure | |
| # Containerised build jobs. | |
| device-container: | |
| # The different build modes to test. | |
| strategy: | |
| matrix: | |
| BUILD_TYPE: ["Debug"] | |
| SCALAR_TYPE: ["float", "double"] | |
| PLATFORM: | |
| - NAME: "CUDA" | |
| CXX_STANDARD: "20" | |
| CONTAINER: "ghcr.io/acts-project/ubuntu2404_cuda:67" | |
| OPTIONS: -DDETRAY_BUILD_CUDA=ON -DDETRAY_SET_LOGGING=DEBUG -DDETRAY_EIGEN_PLUGIN=ON | |
| - NAME: "HIP-AMD" | |
| CXX_STANDARD: "20" | |
| CONTAINER: "ghcr.io/acts-project/ubuntu2404_rocm_oneapi:69" | |
| OPTIONS: -DCMAKE_PREFIX_PATH=/opt/rocm/lib/cmake/ -DCMAKE_HIP_PLATFORM=amd -DDETRAY_BUILD_HIP=ON -DDETRAY_SET_LOGGING=DEBUG -DDETRAY_EIGEN_PLUGIN=ON -DDETRAY_BUILD_BENCHMARKS=OFF | |
| #- NAME: "HIP-NVIDIA" | |
| # CXX_STANDARD: "20" | |
| # CONTAINER: | |
| # OPTIONS: -DCMAKE_HIP_PLATFORM=nvidia -DDETRAY_BUILD_HIP=ON -DDETRAY_SET_LOGGING=DEBUG -DDETRAY_EIGEN_PLUGIN=ON -DDETRAY_BUILD_BENCHMARKS=OFF | |
| - NAME: "SYCL" | |
| CXX_STANDARD: "20" | |
| CONTAINER: "ghcr.io/acts-project/ubuntu2404_oneapi:85" | |
| OPTIONS: -DDETRAY_BUILD_CUDA=OFF -DDETRAY_BUILD_SYCL=ON -DDETRAY_SET_LOGGING=DEBUG -DDETRAY_EIGEN_PLUGIN=ON | |
| # The system to run on. | |
| runs-on: ubuntu-latest | |
| container: ${{ matrix.PLATFORM.CONTAINER }} | |
| name: "device-container (${{ matrix.PLATFORM.NAME }}, C++${{ matrix.PLATFORM.CXX_STANDARD }})" | |
| # Use BASH as the shell from the image. | |
| defaults: | |
| run: | |
| shell: bash | |
| # The build/test steps to execute. | |
| steps: | |
| # Use a standard checkout of the code. | |
| - uses: actions/checkout@v4 | |
| # Run the CMake configuration. | |
| - name: Configure | |
| run: | | |
| source ${GITHUB_WORKSPACE}/.github/ci_setup.sh ${{ matrix.PLATFORM.NAME }} | |
| cmake --preset full-fp32 \ | |
| -DCMAKE_CXX_STANDARD=${{ matrix.PLATFORM.CXX_STANDARD }} \ | |
| -DCMAKE_CUDA_STANDARD=${{ matrix.PLATFORM.CXX_STANDARD }} \ | |
| -DCMAKE_SYCL_STANDARD=${{ matrix.PLATFORM.CXX_STANDARD }} \ | |
| -DCMAKE_HIP_STANDARD=${{ matrix.PLATFORM.CXX_STANDARD }} \ | |
| -DDETRAY_BUILD_HOST=OFF \ | |
| -DDETRAY_FASTOR_PLUGIN=OFF \ | |
| -DDETRAY_SMATRIX_PLUGIN=OFF \ | |
| -DDETRAY_VC_AOS_PLUGIN=OFF \ | |
| -DDETRAY_VC_SOA_PLUGIN=OFF \ | |
| -DDETRAY_FAIL_ON_WARNINGS=ON \ | |
| -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} \ | |
| -DDETRAY_CUSTOM_SCALARTYPE=${{ matrix.SCALAR_TYPE }} \ | |
| ${{ matrix.PLATFORM.OPTIONS }} \ | |
| -S ${GITHUB_WORKSPACE} \ | |
| -B build | |
| # Perform the build. | |
| - name: Build | |
| run: | | |
| source ${GITHUB_WORKSPACE}/.github/ci_setup.sh ${{ matrix.PLATFORM.NAME }} | |
| cmake --build build | |
| - name: FP64 Compliance | |
| if: "matrix.PLATFORM.NAME == 'CUDA' && matrix.BUILD_TYPE == 'Debug' && matrix.SCALAR_TYPE == 'float'" | |
| continue-on-error: true | |
| run: ${GITHUB_WORKSPACE}/.github/find_f64_ptx.py --source ${GITHUB_WORKSPACE} --build build $(find build -name "*.ptx" ! -name "container_cuda_kernel.ptx") |