From 020ce74dcfd23092ac707567a9e2ba376adcfdec Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 11:39:44 +0100 Subject: [PATCH 01/20] Debug issue with undefined symbol in MKL --- .github/workflows/generate_coverage.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 98402bd1e156..60fb5881ce6b 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -53,6 +53,12 @@ jobs: intel-oneapi-libdpstd-devel \ intel-oneapi-compiler-dpcpp-cpp + - name: Debug new oneAPI pkgs + run: | + [ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh + sudo ldd /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + sudo readelf -d /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + - name: Install Lcov run: | sudo apt-get install lcov From 256d0d6f54ece1732deef6e6fbb32946d5348fcf Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 11:44:12 +0100 Subject: [PATCH 02/20] Search for libsycl.so --- .github/workflows/generate_coverage.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 60fb5881ce6b..5926c2a4582d 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -56,8 +56,12 @@ jobs: - name: Debug new oneAPI pkgs run: | [ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh + echo "Running LDD:" sudo ldd /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + echo "Running ReadELF:" sudo readelf -d /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + echo "Searching for libsycl:" + sudo find /opt/intel/oneapi -name "libsycl.so*" - name: Install Lcov run: | From af4fec430241e90121a7f6569355ce2432e71573 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 11:51:44 +0100 Subject: [PATCH 03/20] Running LDD with LD_LIBRARY_PATH to compiler --- .github/workflows/generate_coverage.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 5926c2a4582d..0395a39e3e7e 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -62,6 +62,8 @@ jobs: sudo readelf -d /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 echo "Searching for libsycl:" sudo find /opt/intel/oneapi -name "libsycl.so*" + echo "Running LDD with LD_LIBRARY_PATH to compiler:" + sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.1/lib" ldd /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 - name: Install Lcov run: | From b655449909ae6269ece587b84be026d0a0150d56 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 12:03:49 +0100 Subject: [PATCH 04/20] Looking for undefined symbols in libmkl_sycl_vm.so.5 --- .github/workflows/generate_coverage.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 0395a39e3e7e..3d4d673c3949 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -64,6 +64,8 @@ jobs: sudo find /opt/intel/oneapi -name "libsycl.so*" echo "Running LDD with LD_LIBRARY_PATH to compiler:" sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.1/lib" ldd /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" + sudo nm -A -u /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 - name: Install Lcov run: | From a7ff8ded90efa6b6fd8cfb699c87521d809a7d4a Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 12:16:11 +0100 Subject: [PATCH 05/20] Add job with legacy installation --- .github/workflows/generate_coverage.yaml | 60 ++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 3d4d673c3949..05a354ab38c9 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -7,6 +7,66 @@ on: permissions: read-all jobs: + prev-release: + name: Install oneAPI with 2025.0 + runs-on: ubuntu-latest + + permissions: + # Needed to cancel any previous runs that are not completed for a given workflow + actions: write + + defaults: + run: + shell: bash -el {0} + + env: + environment-file: 'environments/environment.yml' + build-with-oneapi-env: 'environments/build_with_oneapi.yml' + coverage-env: 'environments/coverage.yml' + oneapi-pkgs-env: '' + # Enable env when it's required to use only conda packages without OneAPI installation + # oneapi-pkgs-env: '${{ github.workspace }}/environments/oneapi_pkgs.yml' + + steps: + - name: Cancel Previous Runs + uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1 + with: + access_token: ${{ github.token }} + + - name: Add Intel repository + if: env.oneapi-pkgs-env == '' + run: | + wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + cat GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null + rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list + sudo apt update + + - name: Install latest Intel OneAPI + if: env.oneapi-pkgs-env == '' + run: | + sudo apt install hwloc \ + intel-oneapi-mkl=2025.0.1-14 \ + intel-oneapi-umf=0.9.1-6 \ + intel-oneapi-mkl-devel=2025.0.1-14 \ + intel-oneapi-tbb-devel=2022.0.0-402 \ + intel-oneapi-libdpstd-devel=2022.7.1-14 \ + intel-oneapi-compiler-dpcpp-cpp=2025.0.4-1519 + + - name: Debug new oneAPI pkgs + run: | + [ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh + echo "Running LDD:" + sudo ldd /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 + echo "Running ReadELF:" + sudo readelf -d /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 + echo "Searching for libsycl:" + sudo find /opt/intel/oneapi -name "libsycl.so*" + echo "Running LDD with LD_LIBRARY_PATH to compiler:" + sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.0/lib" ldd /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 + echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" + sudo nm -A -u /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 + generate-coverage: name: Generate coverage and push to Coveralls.io runs-on: ubuntu-latest From d51d76959a96e99fd3a491084df4e064a7297b3b Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 12:31:11 +0100 Subject: [PATCH 06/20] Move debug to separate job --- .github/workflows/generate_coverage.yaml | 50 +++++++++++++++++++++++- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 05a354ab38c9..b5a2b62e9a9d 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -67,8 +67,8 @@ jobs: echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" sudo nm -A -u /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 - generate-coverage: - name: Generate coverage and push to Coveralls.io + new-release: + name: Install oneAPI with 2025.1 runs-on: ubuntu-latest permissions: @@ -127,6 +127,52 @@ jobs: echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" sudo nm -A -u /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + generate-coverage: + name: Generate coverage and push to Coveralls.io + runs-on: ubuntu-latest + + permissions: + # Needed to cancel any previous runs that are not completed for a given workflow + actions: write + + defaults: + run: + shell: bash -el {0} + + env: + environment-file: 'environments/environment.yml' + build-with-oneapi-env: 'environments/build_with_oneapi.yml' + coverage-env: 'environments/coverage.yml' + oneapi-pkgs-env: '' + # Enable env when it's required to use only conda packages without OneAPI installation + # oneapi-pkgs-env: '${{ github.workspace }}/environments/oneapi_pkgs.yml' + + steps: + - name: Cancel Previous Runs + uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1 + with: + access_token: ${{ github.token }} + + - name: Add Intel repository + if: env.oneapi-pkgs-env == '' + run: | + wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + cat GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null + rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list + sudo apt update + + - name: Install latest Intel OneAPI + if: env.oneapi-pkgs-env == '' + run: | + sudo apt install hwloc \ + intel-oneapi-mkl \ + intel-oneapi-umf \ + intel-oneapi-mkl-devel \ + intel-oneapi-tbb-devel \ + intel-oneapi-libdpstd-devel \ + intel-oneapi-compiler-dpcpp-cpp + - name: Install Lcov run: | sudo apt-get install lcov From 15f3a1f934d8eaf27576033fee8c4e9acb489058 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 12:33:07 +0100 Subject: [PATCH 07/20] Grep for SubmissionInfo in libmkl_sycl_vm.so.5 --- .github/workflows/generate_coverage.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index b5a2b62e9a9d..0c140e5e52c6 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -66,6 +66,8 @@ jobs: sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.0/lib" ldd /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" sudo nm -A -u /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 + echo "Grep for SubmissionInfo:" + sudo nm -A /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo new-release: name: Install oneAPI with 2025.1 @@ -126,6 +128,8 @@ jobs: sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.1/lib" ldd /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" sudo nm -A -u /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + echo "Grep for SubmissionInfo:" + sudo nm -A /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo generate-coverage: name: Generate coverage and push to Coveralls.io From 1803aeb9da04ea5b927e0260ee8e258738060151 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 12:37:03 +0100 Subject: [PATCH 08/20] Dump all info from nm --- .github/workflows/generate_coverage.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 0c140e5e52c6..2d6bd1e997fa 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -66,6 +66,8 @@ jobs: sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.0/lib" ldd /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" sudo nm -A -u /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 + echo "Dump all info from nm:" + sudo nm -A /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 echo "Grep for SubmissionInfo:" sudo nm -A /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo @@ -128,6 +130,8 @@ jobs: sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.1/lib" ldd /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" sudo nm -A -u /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + echo "Dump all info from nm:" + sudo nm -A /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 echo "Grep for SubmissionInfo:" sudo nm -A /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo From 1a2378c50480dfb6481067ec08048b2532068f3a Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 12:44:37 +0100 Subject: [PATCH 09/20] Dump only dynamic info --- .github/workflows/generate_coverage.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 2d6bd1e997fa..fb9519efef25 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -66,8 +66,8 @@ jobs: sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.0/lib" ldd /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" sudo nm -A -u /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 - echo "Dump all info from nm:" - sudo nm -A /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 + echo "Dump all dynamic info from nm:" + sudo nm --dynamic /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 echo "Grep for SubmissionInfo:" sudo nm -A /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo @@ -130,8 +130,8 @@ jobs: sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.1/lib" ldd /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" sudo nm -A -u /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 - echo "Dump all info from nm:" - sudo nm -A /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + echo "Dump all dynamic info from nm:" + sudo nm --dynamic /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 echo "Grep for SubmissionInfo:" sudo nm -A /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo From 67fa55b27015b77a1287e863962fa2a76e1d8bdb Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 13:02:25 +0100 Subject: [PATCH 10/20] Add a job to install MKL with old compiler --- .github/workflows/generate_coverage.yaml | 66 ++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 4 deletions(-) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index fb9519efef25..2e75fd2767e7 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -66,8 +66,6 @@ jobs: sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.0/lib" ldd /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" sudo nm -A -u /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 - echo "Dump all dynamic info from nm:" - sudo nm --dynamic /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 echo "Grep for SubmissionInfo:" sudo nm -A /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo @@ -130,8 +128,68 @@ jobs: sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.1/lib" ldd /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" sudo nm -A -u /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 - echo "Dump all dynamic info from nm:" - sudo nm --dynamic /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + echo "Grep for SubmissionInfo:" + sudo nm -A /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo + + new-release-old-compiler: + name: Install oneAPI with 2025.1, but DPC++ from 2025.0 + runs-on: ubuntu-latest + + permissions: + # Needed to cancel any previous runs that are not completed for a given workflow + actions: write + + defaults: + run: + shell: bash -el {0} + + env: + environment-file: 'environments/environment.yml' + build-with-oneapi-env: 'environments/build_with_oneapi.yml' + coverage-env: 'environments/coverage.yml' + oneapi-pkgs-env: '' + # Enable env when it's required to use only conda packages without OneAPI installation + # oneapi-pkgs-env: '${{ github.workspace }}/environments/oneapi_pkgs.yml' + + steps: + - name: Cancel Previous Runs + uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1 + with: + access_token: ${{ github.token }} + + - name: Add Intel repository + if: env.oneapi-pkgs-env == '' + run: | + wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + cat GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null + rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list + sudo apt update + + - name: Install latest Intel OneAPI + if: env.oneapi-pkgs-env == '' + run: | + sudo apt install hwloc \ + intel-oneapi-mkl \ + intel-oneapi-umf \ + intel-oneapi-mkl-devel \ + intel-oneapi-tbb-devel \ + intel-oneapi-libdpstd-devel \ + intel-oneapi-compiler-dpcpp-cpp=2025.0.4-1519 + + - name: Debug new oneAPI pkgs + run: | + [ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh + echo "Running LDD:" + sudo ldd /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + echo "Running ReadELF:" + sudo readelf -d /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + echo "Searching for libsycl:" + sudo find /opt/intel/oneapi -name "libsycl.so*" + echo "Running LDD with LD_LIBRARY_PATH to compiler:" + sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.0/lib" ldd /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 + echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" + sudo nm -A -u /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 echo "Grep for SubmissionInfo:" sudo nm -A /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo From ccd8f78dd871082e01d8de0b3cbc2af0999d5ccd Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 13:10:16 +0100 Subject: [PATCH 11/20] Use previous compiler for 2025.0 in coverage as w/a --- .github/workflows/generate_coverage.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 2e75fd2767e7..d33f7089745e 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -237,7 +237,7 @@ jobs: intel-oneapi-mkl-devel \ intel-oneapi-tbb-devel \ intel-oneapi-libdpstd-devel \ - intel-oneapi-compiler-dpcpp-cpp + intel-oneapi-compiler-dpcpp-cpp=2025.0.4-1519 - name: Install Lcov run: | From 05ccb881267f65366f463bcacf957fad336cc7ea Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 13:39:16 +0100 Subject: [PATCH 12/20] Add small example to test the issue --- .github/workflows/generate_coverage.yaml | 50 +++++++++++++++++++++++- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index d33f7089745e..3c1df572c00d 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -66,8 +66,54 @@ jobs: sudo LD_LIBRARY_PATH="/opt/intel/oneapi/compiler/2025.0/lib" ldd /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" sudo nm -A -u /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 - echo "Grep for SubmissionInfo:" - sudo nm -A /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo + + - name: Create test file + uses: 1arp/create-a-file-action@0.4.5 + with: + path: 'example' + isAbsolutePath: false + file: 'test.cpp' + content: | + #include + #include + + namespace mkl_vm = oneapi::mkl::vm; + + int main(void) + { + sycl::queue q{sycl::default_selector_v}; + + const auto &dev = q.get_device(); + std::cout << "Device: " << dev.get_info() << std::endl; + std::cout << "Driver_version: " << dev.get_info() << std::endl; + + using T = float; + constexpr std::size_t size = 10; + + T *data = sycl::malloc_device(size, q); + T *res = sycl::malloc_device(size, q); + + auto fill_ev = q.fill(data, T(-1.0), size); + + mkl_vm::abs(q, size, data, res, {fill_ev}).wait_and_throw(); + + sycl::free(data, q); + sycl::free(res, q); + + std::cout << "Exit" << std::endl; + return 0; + } + + - name: Cat test file + run: cat example/test.cpp + + - name: Build test file + run: icpx -fsycl test.cpp -DMKL_ILP64 -qmkl-ilp64=parallel -qtbb -o test.x + working-directory: example + + - name: Run test file + run: ./test.x + working-directory: example new-release: name: Install oneAPI with 2025.1 From 03c871ab48e8371e39249a790d5d7af4f8d5fddd Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 13:44:20 +0100 Subject: [PATCH 13/20] Activate oneAPI env --- .github/workflows/generate_coverage.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 3c1df572c00d..cabf40449994 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -108,11 +108,15 @@ jobs: run: cat example/test.cpp - name: Build test file - run: icpx -fsycl test.cpp -DMKL_ILP64 -qmkl-ilp64=parallel -qtbb -o test.x + run: | + [ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh + icpx -fsycl test.cpp -DMKL_ILP64 -qmkl-ilp64=parallel -qtbb -o test.x working-directory: example - name: Run test file - run: ./test.x + run: | + [ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh + ./test.x working-directory: example new-release: From fcb0854366b00d123b29d4e4ce32970df552effe Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 13:47:09 +0100 Subject: [PATCH 14/20] Add test example to other debug jobs --- .github/workflows/generate_coverage.yaml | 104 +++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index cabf40449994..6157449118d0 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -181,6 +181,58 @@ jobs: echo "Grep for SubmissionInfo:" sudo nm -A /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo + - name: Create test file + uses: 1arp/create-a-file-action@0.4.5 + with: + path: 'example' + isAbsolutePath: false + file: 'test.cpp' + content: | + #include + #include + + namespace mkl_vm = oneapi::mkl::vm; + + int main(void) + { + sycl::queue q{sycl::default_selector_v}; + + const auto &dev = q.get_device(); + std::cout << "Device: " << dev.get_info() << std::endl; + std::cout << "Driver_version: " << dev.get_info() << std::endl; + + using T = float; + constexpr std::size_t size = 10; + + T *data = sycl::malloc_device(size, q); + T *res = sycl::malloc_device(size, q); + + auto fill_ev = q.fill(data, T(-1.0), size); + + mkl_vm::abs(q, size, data, res, {fill_ev}).wait_and_throw(); + + sycl::free(data, q); + sycl::free(res, q); + + std::cout << "Exit" << std::endl; + return 0; + } + + - name: Cat test file + run: cat example/test.cpp + + - name: Build test file + run: | + [ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh + icpx -fsycl test.cpp -DMKL_ILP64 -qmkl-ilp64=parallel -qtbb -o test.x + working-directory: example + + - name: Run test file + run: | + [ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh + ./test.x + working-directory: example + new-release-old-compiler: name: Install oneAPI with 2025.1, but DPC++ from 2025.0 runs-on: ubuntu-latest @@ -243,6 +295,58 @@ jobs: echo "Grep for SubmissionInfo:" sudo nm -A /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo + - name: Create test file + uses: 1arp/create-a-file-action@0.4.5 + with: + path: 'example' + isAbsolutePath: false + file: 'test.cpp' + content: | + #include + #include + + namespace mkl_vm = oneapi::mkl::vm; + + int main(void) + { + sycl::queue q{sycl::default_selector_v}; + + const auto &dev = q.get_device(); + std::cout << "Device: " << dev.get_info() << std::endl; + std::cout << "Driver_version: " << dev.get_info() << std::endl; + + using T = float; + constexpr std::size_t size = 10; + + T *data = sycl::malloc_device(size, q); + T *res = sycl::malloc_device(size, q); + + auto fill_ev = q.fill(data, T(-1.0), size); + + mkl_vm::abs(q, size, data, res, {fill_ev}).wait_and_throw(); + + sycl::free(data, q); + sycl::free(res, q); + + std::cout << "Exit" << std::endl; + return 0; + } + + - name: Cat test file + run: cat example/test.cpp + + - name: Build test file + run: | + [ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh + icpx -fsycl test.cpp -DMKL_ILP64 -qmkl-ilp64=parallel -qtbb -o test.x + working-directory: example + + - name: Run test file + run: | + [ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh + ./test.x + working-directory: example + generate-coverage: name: Generate coverage and push to Coveralls.io runs-on: ubuntu-latest From 2e4260c651344673d407648f406a81b18e174b8e Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 13:56:55 +0100 Subject: [PATCH 15/20] Remove w/a with pinning DPC++ pkg --- .github/workflows/generate_coverage.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 6157449118d0..299240180771 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -391,7 +391,7 @@ jobs: intel-oneapi-mkl-devel \ intel-oneapi-tbb-devel \ intel-oneapi-libdpstd-devel \ - intel-oneapi-compiler-dpcpp-cpp=2025.0.4-1519 + intel-oneapi-compiler-dpcpp-cpp - name: Install Lcov run: | From f51eb447531df0578755628ec67068212e1467b4 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 13:59:23 +0100 Subject: [PATCH 16/20] Update job with proper deps for MKL 2025.1, but DPC++ 2025.0 --- .github/workflows/generate_coverage.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 299240180771..1dc25416fda6 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -273,10 +273,10 @@ jobs: run: | sudo apt install hwloc \ intel-oneapi-mkl \ - intel-oneapi-umf \ + intel-oneapi-umf=0.9.1-6 \ intel-oneapi-mkl-devel \ intel-oneapi-tbb-devel \ - intel-oneapi-libdpstd-devel \ + intel-oneapi-libdpstd-devel=2022.7.1-14 \ intel-oneapi-compiler-dpcpp-cpp=2025.0.4-1519 - name: Debug new oneAPI pkgs From e2f8194d16741de878c730fa205fff769d3340c0 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 15:23:06 +0100 Subject: [PATCH 17/20] Cat setvars.sh --- .github/workflows/generate_coverage.yaml | 52 ++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 1dc25416fda6..dde70a29a44a 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -67,6 +67,9 @@ jobs: echo "Looking for undefined symbols in libmkl_sycl_vm.so.5:" sudo nm -A -u /opt/intel/oneapi/mkl/2025.0/lib/libmkl_sycl_vm.so.5 + - name: Cat setvars.sh + run: cat /opt/intel/oneapi/setvars.sh + - name: Create test file uses: 1arp/create-a-file-action@0.4.5 with: @@ -181,6 +184,9 @@ jobs: echo "Grep for SubmissionInfo:" sudo nm -A /opt/intel/oneapi/mkl/2025.1/lib/libmkl_sycl_vm.so.5 | grep SubmissionInfo + - name: Cat setvars.sh + run: cat /opt/intel/oneapi/setvars.sh + - name: Create test file uses: 1arp/create-a-file-action@0.4.5 with: @@ -439,6 +445,52 @@ jobs: mamba info mamba list + - name: Create test file + uses: 1arp/create-a-file-action@0.4.5 + with: + path: 'example' + isAbsolutePath: false + file: 'test.cpp' + content: | + #include + #include + + namespace mkl_vm = oneapi::mkl::vm; + + int main(void) + { + sycl::queue q{sycl::default_selector_v}; + + const auto &dev = q.get_device(); + std::cout << "Device: " << dev.get_info() << std::endl; + std::cout << "Driver_version: " << dev.get_info() << std::endl; + + using T = float; + constexpr std::size_t size = 10; + + T *data = sycl::malloc_device(size, q); + T *res = sycl::malloc_device(size, q); + + auto fill_ev = q.fill(data, T(-1.0), size); + + mkl_vm::abs(q, size, data, res, {fill_ev}).wait_and_throw(); + + sycl::free(data, q); + sycl::free(res, q); + + std::cout << "Exit" << std::endl; + return 0; + } + + - name: Cat test file + run: cat example/test.cpp + + - name: Build & Run test file + run: | + [ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh + icpx -fsycl test.cpp -DMKL_ILP64 -qmkl-ilp64=parallel -qtbb -o test.x + working-directory: example + - name: Build dpnp with coverage id: build_coverage uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3.0.2 From a15e68270faeabedb8f3e993a1cb90e6fd761242 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 15:29:25 +0100 Subject: [PATCH 18/20] Cat DPC++ & MKL vars.sh --- .github/workflows/generate_coverage.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index dde70a29a44a..f1c8469a4681 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -70,6 +70,12 @@ jobs: - name: Cat setvars.sh run: cat /opt/intel/oneapi/setvars.sh + - name: Cat DPC++ vars.sh + run: cat /opt/intel/oneapi/compiler/2025.0/env/vars.sh + + - name: Cat MKL vars.sh + run: cat /opt/intel/oneapi/mkl/2025.0/env/vars.sh + - name: Create test file uses: 1arp/create-a-file-action@0.4.5 with: @@ -187,6 +193,12 @@ jobs: - name: Cat setvars.sh run: cat /opt/intel/oneapi/setvars.sh + - name: Cat DPC++ vars.sh + run: cat /opt/intel/oneapi/compiler/2025.1/env/vars.sh + + - name: Cat MKL vars.sh + run: cat /opt/intel/oneapi/mkl/2025.1/env/vars.sh + - name: Create test file uses: 1arp/create-a-file-action@0.4.5 with: From 05e0452059e7f20f55b464de4f6a8adba45b81dc Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 16:41:40 +0100 Subject: [PATCH 19/20] Install dpctl from pip to avoid installing DPCT++ RT as it'd done while installing with conda --- .github/workflows/generate_coverage.yaml | 8 ++++++++ environments/build_with_oneapi.yml | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index f1c8469a4681..0b1c16375900 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -457,6 +457,14 @@ jobs: mamba info mamba list + - name: Conda info + run: pip install -i https://pypi.anaconda.org/dppy/label/dev/simple dpctl + + - name: Conda info + run: | + mamba info + mamba list + - name: Create test file uses: 1arp/create-a-file-action@0.4.5 with: diff --git a/environments/build_with_oneapi.yml b/environments/build_with_oneapi.yml index 715023ee48db..09437879440f 100644 --- a/environments/build_with_oneapi.yml +++ b/environments/build_with_oneapi.yml @@ -5,7 +5,7 @@ channels: dependencies: - cmake - cython - - dpctl>=0.19.0dev0 + # - dpctl>=0.19.0dev0 - ninja - numpy - pytest From c5e0ba6de1d7ecc67467bd314a6eaabcaf6ab437 Mon Sep 17 00:00:00 2001 From: Anton Volkov Date: Mon, 24 Mar 2025 17:00:25 +0100 Subject: [PATCH 20/20] Update yaml file to install dpctl through pip --- .github/workflows/generate_coverage.yaml | 9 ++------- environments/build_with_oneapi.yml | 3 ++- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 0b1c16375900..bbdf57e71f29 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -452,13 +452,8 @@ jobs: environment-file: ${{ env.environment-file }} activate-environment: 'coverage' - - name: Conda info - run: | - mamba info - mamba list - - - name: Conda info - run: pip install -i https://pypi.anaconda.org/dppy/label/dev/simple dpctl + # - name: Conda info + # run: pip install -i https://pypi.anaconda.org/dppy/label/dev/simple dpctl - name: Conda info run: | diff --git a/environments/build_with_oneapi.yml b/environments/build_with_oneapi.yml index 09437879440f..2fcee7537fdd 100644 --- a/environments/build_with_oneapi.yml +++ b/environments/build_with_oneapi.yml @@ -5,8 +5,9 @@ channels: dependencies: - cmake - cython - # - dpctl>=0.19.0dev0 - ninja - numpy - pytest - scikit-build + - pip: + - dpctl==0.20.0dev0