Remove CPhase + Tidy up src #130
Workflow file for this run
This file contains 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: Testing::x86_64::LKokkos::CUDA::C++ | |
on: | |
workflow_call: | |
inputs: | |
lightning-version: | |
type: string | |
required: true | |
description: The version of Lightning to use. Valid values are either 'release' (most recent release candidate), 'stable' (most recent git-tag) or 'latest' (most recent commit from master) | |
pennylane-version: | |
type: string | |
required: true | |
description: The version of PennyLane to use. Valid values are either 'release' (most recent release candidate), 'stable' (most recent git-tag) or 'latest' (most recent commit from master) | |
pull_request: | |
paths: | |
- pennylane_lightning/core/src/** | |
- '!pennylane_lightning/core/src/simulators/lightning_gpu/**' | |
- '!pennylane_lightning/core/src/simulators/lightning_qubit/**' | |
push: | |
branches: | |
- master | |
env: | |
CI_CUDA_ARCH: 86 | |
COVERAGE_FLAGS: "--cov=pennylane_lightning --cov-report=term-missing --cov-report=xml:./coverage.xml --no-flaky-report -p no:warnings --tb=native" | |
GCC_VERSION: 11 | |
TF_VERSION: 2.10.0 | |
TORCH_VERSION: 1.11.0+cpu | |
concurrency: | |
group: tests_lkcuda_cpp-${{ github.ref }}-${{ github.event }}-${{ inputs.lightning-version }}-${{ inputs.pennylane-version }} | |
cancel-in-progress: true | |
jobs: | |
builddeps: | |
runs-on: | |
- self-hosted | |
- ubuntu-22.04 | |
- gpu | |
strategy: | |
max-parallel: 1 | |
matrix: | |
os: [ubuntu-22.04] | |
exec_model: ["CUDA"] | |
kokkos_version: ["4.2.00"] | |
steps: | |
- name: Validate GPU version and installed compiler | |
run: | | |
source /etc/profile.d/modules.sh | |
module use /opt/modules | |
module load cuda/12.2 | |
echo "${PATH}" >> $GITHUB_PATH | |
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" >> $GITHUB_ENV | |
nvcc --version | |
nvidia-smi | |
- name: Clone Kokkos repository | |
run: | | |
rm -rf kokkos_${{ matrix.exec_model }} | |
git clone --branch ${{ matrix.kokkos_version }} https://github.com/kokkos/kokkos.git kokkos_${{ matrix.exec_model }} | |
pushd . &> /dev/null | |
- name: Build Kokkos core library (Ubuntu) | |
run: | | |
rm -rf ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }} | |
mkdir -p ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }} | |
cd kokkos_${{ matrix.exec_model }} | |
cmake -BBuild . -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }} \ | |
-DKokkos_ENABLE_COMPLEX_ALIGN=OFF \ | |
-DKokkos_ENABLE_SERIAL=ON \ | |
-DKokkos_ENABLE_${{ matrix.exec_model }}=ON \ | |
-DKokkos_ENABLE_DEPRECATION_WARNINGS=OFF \ | |
-DCMAKE_CXX_COMPILER="$(which g++-$GCC_VERSION)" \ | |
-DCMAKE_CXX_STANDARD=20 \ | |
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \ | |
-G Ninja | |
cmake --build ./Build --verbose | |
cmake --install ./Build | |
cd - | |
- name: Test Kokkos core library (Ubuntu) | |
env: | |
CMAKE_PREFIX_PATH: ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }} | |
run: | | |
set -x | |
sudo apt-get update && sudo apt-get -y -q install gfortran-$GCC_VERSION | |
cd kokkos_${{ matrix.exec_model }}/example/build_cmake_installed | |
which -a gfortran || which -a gfortran-$GCC_VERSION | |
cmake -B build -DCMAKE_Fortran_COMPILER=gfortran-$GCC_VERSION | |
cmake --build build | |
cmake --build build --target test | |
set +x | |
- name: Cache installation directories | |
id: kokkos-cache | |
uses: actions/cache/save@v3 | |
with: | |
key: ${{ matrix.os }}-kokkos${{ matrix.kokkos_version }}-${{ matrix.exec_model }}-${{ github.ref }}-${{ github.sha }} | |
path: ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }} | |
cpptestswithKokkos: | |
# TODO: The issue related to Kokkos with CUDA-12 running out of memory needs to be fixed. | |
if: ${{ github.sha == 'xxxxxxxx' }} | |
needs: [builddeps] | |
strategy: | |
matrix: | |
os: [ubuntu-22.04] | |
pl_backend: ["lightning_kokkos"] | |
exec_model: ["CUDA"] | |
kokkos_version: ["4.2.00"] | |
name: C++ tests (Kokkos) | |
runs-on: | |
- ${{ matrix.os }} | |
- self-hosted | |
- gpu | |
steps: | |
- name: Validate GPU version and installed compiler | |
run: | | |
source /etc/profile.d/modules.sh | |
module use /opt/modules | |
module load cuda/12.2 | |
echo "${PATH}" >> $GITHUB_PATH | |
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" >> $GITHUB_ENV | |
nvcc --version | |
nvidia-smi | |
- name: Restoring cached dependencies | |
id: kokkos-cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }} | |
key: ${{ matrix.os }}-kokkos${{ matrix.kokkos_version }}-${{ matrix.exec_model }}-${{ github.ref }}-${{ github.sha }} | |
restore-keys: ${{ matrix.os }}-kokkos${{ matrix.kokkos_version }}-${{ matrix.exec_model }}-${{ github.ref }}- | |
- name: Copy cached libraries | |
run: | | |
mkdir -p ${{ github.workspace }}/Kokkos | |
ls -ltrh | |
cp -r ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }}/* ${{ github.workspace }}/Kokkos | |
- name: Checkout PennyLane-Lightning | |
uses: actions/checkout@v4 | |
with: | |
path: main | |
- uses: actions/setup-python@v5 | |
name: Install Python | |
with: | |
python-version: '3.9' | |
- name: Install dependencies | |
run: sudo apt-get update && sudo apt-get -y -q install cmake gcc-$GCC_VERSION g++-$GCC_VERSION ninja-build gcovr lcov | |
- name: Build and run unit tests | |
run: | | |
cd main | |
cmake . -BBuild -G Ninja \ | |
-DCMAKE_BUILD_TYPE=Debug \ | |
-DBUILD_TESTS=ON \ | |
-DENABLE_PYTHON=OFF \ | |
-DCMAKE_PREFIX_PATH=${{ github.workspace }}/Kokkos \ | |
-DPL_BACKEND=${{ matrix.pl_backend }} \ | |
-DCMAKE_CXX_COMPILER=$(which g++-$GCC_VERSION) \ | |
-DENABLE_COVERAGE=ON | |
cmake --build ./Build | |
cd ./Build | |
mkdir -p ./tests/results_${{ github.job }}_${{ matrix.pl_backend }} | |
for file in *runner ; do ./$file --order lex --reporter junit --out ./tests/results_${{ github.job }}_${{ matrix.pl_backend }}/report_$file.xml; done; | |
lcov --directory . -b ../pennylane_lightning/core/src --capture --output-file coverage.info | |
lcov --remove coverage.info '/usr/*' --output-file coverage.info | |
mv coverage.info coverage-${{ github.job }}-${{ matrix.pl_backend }}.info | |
- name: Upload test results | |
uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: ubuntu-tests-reports-${{ github.job }}_${{ matrix.pl_backend }} | |
path: ./main/Build/tests/results_${{ github.job }}_${{ matrix.pl_backend }} | |
if-no-files-found: error | |
- name: Upload code coverage results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ubuntu-codecov-results-cpp | |
path: ./main/Build/coverage-${{ github.job }}-${{ matrix.pl_backend }}.info | |
if-no-files-found: error |