Skip to content

Merge main into adapters branch #1072

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
162 commits
Select commit Hold shift + click to select a range
8214bf2
[UR][CTS] Upstream CTS parser
Aug 21, 2023
0625273
[umf] extend error message for disjoint pool
igchor Aug 22, 2023
7fd8fba
[umf] add out of memory test
Aug 3, 2023
17e719f
Make urInit and urTearDown loader-only
callumfare Aug 25, 2023
f7682a2
Merge pull request #793 from callumfare/callum/loader_init
pbalcer Aug 28, 2023
790384e
[UR] Refactor CTS parser to use JSON output from tests
Aug 28, 2023
2118102
Merge pull request #822 from veselypeta/petr/820/fix-invalid-native-c…
veselypeta Aug 28, 2023
40a6846
[CMDBUF] Add fill commands to cmd buffer exp feature
Bensuo Aug 21, 2023
26b9d82
[UR] List available tests and track crashes
Aug 28, 2023
19f391b
Merge pull request #818 from Bensuo/cmd-buffer-fill
kbenzie Aug 29, 2023
b079f63
[UR] Fetch testsuite names from ctest
Aug 29, 2023
04bd987
Merge pull request #810 from veselypeta/petr/port-ctest-parser
veselypeta Aug 30, 2023
2580e08
[UR] Fixup minor CTS issues
veselypeta Aug 31, 2023
a8e4955
Fix device CTS tests (#834)
fabiomestre Aug 31, 2023
4ce5cdd
Merge pull request #835 from veselypeta/petr/fixup-cts
veselypeta Sep 1, 2023
fd93ee0
Move nightly CI tests to the main branch
PatKamin Sep 1, 2023
7b5956a
Speed up CI jobs
PatKamin Sep 1, 2023
4c7cb30
[umf] add critnib datastructure
igchor Aug 10, 2023
c8a2d34
[umf] replace memory tracker with a critnib-based impl
igchor Aug 10, 2023
fe44f26
[umf] add windows support to critnib
igchor Aug 10, 2023
273c82b
Merge pull request #846 from PatKamin/main-shorten-ci
pbalcer Sep 4, 2023
022bbae
Merge pull request #844 from PatKamin/fix-nightly-tests
pbalcer Sep 4, 2023
eb061c8
Merge pull request #841 from igchor/disjoint_pool_extend_error
pbalcer Sep 5, 2023
845357b
[UR] Fix program CTS assesion checks
veselypeta Sep 6, 2023
a3120e7
Merge pull request #850 from veselypeta/petr/fix-program-cts
veselypeta Sep 6, 2023
6d59b4c
Merge pull request #796 from igchor/umf_critnib
pbalcer Sep 7, 2023
2c533e6
Update specification for urEnqueue entrypoints (#851)
fabiomestre Sep 7, 2023
065edc1
[umf] Fix macOS build
kbenzie Sep 11, 2023
172bc24
Merge pull request #853 from kbenzie/benie/fix-macos-build
kbenzie Sep 11, 2023
017c998
Create layered image properties struct.
isaacault Sep 8, 2023
8edc7e2
Add initial CUDA and HIP usage guides
Aug 22, 2023
764ecf2
Merge pull request #852 from isaacault/iault/layered_image_prop_struct
kbenzie Sep 12, 2023
b29b23c
[UMF] Fix -Wempty-body warning
veselypeta Sep 12, 2023
8b3da24
Merge pull request #815 from hdelan/add-cuda-hip-usage-guides
kbenzie Sep 12, 2023
739d11c
[UR] Enable warnings for empty-body
veselypeta Sep 12, 2023
a346a30
Merge pull request #855 from veselypeta/petr/fix-empty-body-warning
pbalcer Sep 13, 2023
db69f90
Add extra checks for optional parameters and invalid flags (#857)
fabiomestre Sep 13, 2023
04b5da3
Add more detailed build instructions to the Contribution Guide
callumfare Sep 13, 2023
fdffac3
Clarify the behaviour of urUSMMemAdvise and urUSMPrefetch when the hi…
fabiomestre Sep 14, 2023
bcf2b2a
Merge pull request #858 from callumfare/callum/update_contrib_build_g…
callumfare Sep 14, 2023
019551c
[UR] Add validation check to urDeviceGet
Sep 15, 2023
bb542f3
Add cooperative kernels experimental feature
0x12CC Sep 5, 2023
12c8312
Merge pull request #849 from 0x12CC/cooperative_kernels
kbenzie Sep 15, 2023
b8cc5ae
Merge pull request #860 from veselypeta/petr/fix-device-get-errorcodes
pbalcer Sep 18, 2023
5640ea6
[Bindless] Struct for unique addressing modes per dimension
Seanst98 Sep 6, 2023
099fe5e
Merge pull request #863 from Seanst98/sean/addr-mode-per-dimension
kbenzie Sep 18, 2023
494233b
[UR] Check for unused parameters
Sep 15, 2023
bd4f75d
[UR] fix warnings in collector
Sep 15, 2023
747613b
[UR] Remove parameters from main
Sep 18, 2023
7217fd7
[UR] Support Raw C Arrays
Sep 18, 2023
88c7f8f
[UR] Remove parameter names
Sep 19, 2023
e40a321
Merge pull request #861 from veselypeta/petr/add-unused-parameter-checks
veselypeta Sep 19, 2023
28ac2e1
[cmake] Respect Python virtualenv on macOS
kbenzie Sep 19, 2023
e9aa0f4
[UR] Address Review Feedback
Sep 19, 2023
9a9d2e8
Merge pull request #870 from veselypeta/petr/860/support-raw-c-arrays
veselypeta Sep 19, 2023
dcbf226
Merge pull request #872 from kbenzie/benie/macos-respect-python-virtu…
kbenzie Sep 19, 2023
d47bd7e
Fix a few small spec issues:
aarongreig Sep 19, 2023
1dc6a52
Merge pull request #873 from aarongreig/aaron/miscSpecFixes
aarongreig Sep 19, 2023
db42003
Fix a few minor CTS issues, notably:
aarongreig Sep 20, 2023
fe4402d
Merge pull request #874 from aarongreig/aaron/miscCTSFixes
aarongreig Sep 20, 2023
1cccb50
[EXP][CMDBUF] Add Prefetch and Advise commands to cmd buffer experime…
mfrancepillois Sep 22, 2023
57b452c
Update scripts/core/EXP-COMMAND-BUFFER.rst
mfrancepillois Sep 25, 2023
043b4d2
Update scripts/core/exp-command-buffer.yml
mfrancepillois Sep 25, 2023
267c89f
[SYCL][Graph] Adds a detail section in the comment of bith functions
mfrancepillois Sep 25, 2023
b12b606
[SYCL][Graph] Adds dependencies to the Advise function
mfrancepillois Sep 25, 2023
78639a2
[SYCL][Graph] Defines dest mem pointer as a const pointer
mfrancepillois Sep 25, 2023
0cbc511
Add a basic pool manager for memory pools
kswiecicki Sep 6, 2023
92684c5
Temporarily disable running check-generated target in windows CI.
aarongreig Sep 21, 2023
755868c
Merge pull request #883 from aarongreig/aaron/ciExperiment
aarongreig Sep 25, 2023
12b7341
Updates error conditions for USM advise
mfrancepillois Sep 25, 2023
91ce81c
Install doxygen on windows runners, re-enable generating spec on windows
aarongreig Sep 25, 2023
53bfb94
Merge pull request #890 from aarongreig/aaron/properlyInstallDoxygen
aarongreig Sep 26, 2023
fd2702a
Document release process
kbenzie Sep 26, 2023
269f8bc
Merge pull request #893 from kbenzie/benie/release-process
kbenzie Sep 27, 2023
8c56438
Add pool manager tests
kswiecicki Sep 6, 2023
97cdc41
Include function pointer typedefs in generated spec documents.
aarongreig Sep 27, 2023
d61b8f0
Another small batch of CTS fixes
aarongreig Sep 25, 2023
0657f06
Change sub-device discovery mechanism in pool_descriptor::create()
kswiecicki Sep 27, 2023
269626f
Merge pull request #898 from aarongreig/aaron/generateFunctionPointer…
pbalcer Sep 28, 2023
366bd77
Merge pull request #899 from aarongreig/aaron/remainingCLCTSDiff
aarongreig Sep 28, 2023
566ea97
Merge pull request #783 from DamianDuy/addOutOfMemTest
pbalcer Sep 28, 2023
2c6f729
[ur] Document the Adapter Change Process
kbenzie Sep 28, 2023
0d3c1fc
Merge pull request #885 from Bensuo/mfrancepillois/cmd-buffer-prefetc…
kbenzie Sep 28, 2023
0acce6f
Merge pull request #902 from kbenzie/benie/adapters-workflow
kbenzie Sep 28, 2023
3336a83
[umf] extend out of memory test for disjoint pool
Aug 3, 2023
8c2156a
[UR] bump libxml requirement version
lukaszstolarczuk Sep 29, 2023
ecd5ffd
Add extra validation to EventSetCallback and fix execution_info enum.
aarongreig Sep 29, 2023
8b19319
Merge pull request #910 from lukaszstolarczuk/bump-libxml-version
pbalcer Oct 2, 2023
3a85197
Merge pull request #913 from aarongreig/aaron/eventCallbackFixes
aarongreig Oct 3, 2023
2b7a24a
Merge pull request #630 from kswiecicki/usm-pool-manager
pbalcer Oct 4, 2023
f5829a1
Merge pull request #829 from DamianDuy/extendOOMtest
pbalcer Oct 4, 2023
7a9e83c
Fix usmPoolManager test coverity defect
kswiecicki Oct 4, 2023
cc243f3
Merge pull request #927 from kswiecicki/coverity-usm-pool-manager-test
pbalcer Oct 4, 2023
c282ba0
Add validation layer support for nullptr events (#929)
fabiomestre Oct 5, 2023
47314b3
[umf] ensure MinBucketSize parameter is a power of two
Oct 3, 2023
8638429
Fix a couple of minor issues in the USM fill and memcpy tests
aarongreig Oct 6, 2023
9badc83
Merge pull request #922 from DamianDuy/ensureMinBucketHasCorrectValues
igchor Oct 6, 2023
74a5104
Release a few more events
aarongreig Oct 9, 2023
4f5dc2e
Add testing for memory management across multi-device contexts
omarahmed1111 Oct 11, 2023
84d656b
Merge pull request #907 from omarahmed1111/Add-testing-for-memory-mig…
omarahmed1111 Oct 11, 2023
c88c0e3
[UR][E2E][CUDA] Add E2E Cuda nightly workflow
wlemkows Oct 11, 2023
eb9e8c2
Merge pull request #949 from wlemkows/e2e-cuda-nightly
pbalcer Oct 12, 2023
21e1834
[UR][E2E][CUDA] e2e nightly improvements
wlemkows Oct 16, 2023
adb8d9e
Merge pull request #963 from wlemkows/e2e-cuda-nightly
pbalcer Oct 16, 2023
0502237
[umf] change default MinBucketSize and ensure buckets are generated f…
Oct 9, 2023
088401b
[ur][loader] add code location callback for tracing layer
pbalcer Oct 13, 2023
08310d9
Update contribution guide to link to dependent PRs
kbenzie Oct 19, 2023
5dd5038
Merge pull request #974 from kbenzie/benie/contrib-cross-link
kbenzie Oct 20, 2023
00143fc
Merge pull request #959 from pbalcer/tracing-codeloc-callback
pbalcer Oct 23, 2023
eff8063
Rename params stringifier
PatKamin Sep 5, 2023
eed9899
Move print operators into the ur_print namespace
PatKamin Sep 6, 2023
5f0e6d4
Move printing C++ API to include
PatKamin Sep 18, 2023
b3506f4
Merge pull request #935 from DamianDuy/changeBucketGenerationFor1
pbalcer Oct 24, 2023
a2d23dc
Merge pull request #875 from PatKamin/expose-serialization
pbalcer Oct 24, 2023
e439801
add missing new lines in logger error messages
lplewa Oct 25, 2023
5a5b5b9
[CI] Split E2E steps into two
lukaszstolarczuk Oct 26, 2023
4e56410
Fix infinite loop in logger.
lplewa Oct 25, 2023
e5df409
[UR][L0] Add support for passing device list to urProgramBuild
igchor Oct 2, 2023
c90b27b
[UR][L0] Add multi-device-compile experimental feature
kbenzie Oct 3, 2023
0d320f8
Merge pull request #1000 from lukaszstolarczuk/nigthly-workflow-fix
wlemkows Oct 27, 2023
63aaf07
Merge pull request #924 from kbenzie/benie/multi-device-compile
kbenzie Oct 27, 2023
42cb4d3
Merge pull request #996 from lplewa/log-fixes
pbalcer Oct 30, 2023
b42649f
Revert "Revert "Bump adapters branch""
omarahmed1111 Oct 30, 2023
a1fbbde
Merge pull request #933 from aarongreig/aaron/USMCpyFillFixes
aarongreig Oct 31, 2023
7ba8fec
Merge branch 'adapters' into revert-1015-revert-1005-merge-some-main-…
omarahmed1111 Nov 8, 2023
0602ce8
Discourage using SYCL tc to generate kernels
Oct 23, 2023
7c7bf22
Merge commit 'b12b606c35bb7469c1dfdf932e2917238635f02d' into merge-so…
omarahmed1111 Nov 10, 2023
07ad4f8
Fix some merge problems
omarahmed1111 Nov 8, 2023
65bfeab
Merge branch 'adapters' into merge-some-main-changes-into-adapters-se…
omarahmed1111 Nov 10, 2023
863d230
Add more merge fixes
omarahmed1111 Nov 10, 2023
b22a0ae
Merge branch 'main' into merge-some-main-changes-into-adapters-third-…
omarahmed1111 Nov 13, 2023
19bcf6c
[common] add codecov
pbalcer Nov 14, 2023
d86aada
Add more merge fixes
omarahmed1111 Nov 10, 2023
dad6534
Merge branch 'adapters' into merge-some-main-changes-into-adapters-se…
omarahmed1111 Nov 14, 2023
5c0557e
Merge pull request #1076 from pbalcer/add-codecov
pbalcer Nov 15, 2023
4a9468f
Merge branch 'merge-some-main-changes-into-adapters-second-patch' int…
omarahmed1111 Nov 15, 2023
7780bbe
[common] add codecov badge
pbalcer Nov 15, 2023
db04b84
Merge pull request #1080 from pbalcer/codecov-badge
pbalcer Nov 15, 2023
385e179
[common] fix codecov badge url
pbalcer Nov 15, 2023
fa2e5b0
Merge pull request #1081 from pbalcer/fix-codecov-badge
pbalcer Nov 15, 2023
c739700
[UR] Fix util_atomic_load_acquire implementation for windows
igchor Nov 15, 2023
ef109b2
[UR] Fix overflow in critnib on Windows
igchor Nov 15, 2023
461d7b7
Merge branch 'adapters' into merge-bump-third-bump-temp4
omarahmed1111 Nov 16, 2023
ef13eb8
Update Error Handling documentation wording.
martygrant Nov 16, 2023
21e7c46
Add merge fixes for adapters third bump
omarahmed1111 Nov 16, 2023
eb472b4
Fix Clang on Windows builds in CI
PatKamin Nov 23, 2023
e80b910
Merge pull request #1113 from PatKamin/ci-fix-clang-build
wlemkows Nov 23, 2023
10e20fe
Remove ur::print namespace
PatKamin Nov 23, 2023
96797f9
Merge pull request #1120 from PatKamin/remove-print-namespace
pbalcer Nov 24, 2023
86abfd4
Merge pull request #986 from hdelan/discourage-using-sycl-tc-to-gener…
kbenzie Nov 24, 2023
a22fddd
Remove printing API functions exports
PatKamin Nov 23, 2023
cf8dc36
Merge pull request #1115 from PatKamin/remove-print-api-exports
pbalcer Nov 27, 2023
329dda6
Merge pull request #1087 from martygrant/martin/docsIntroFix
martygrant Nov 28, 2023
2a11e49
Merge branch 'adapters' into merge-some-main-changes-into-adapters-th…
omarahmed1111 Nov 28, 2023
4f8c3d1
Fix adapter registry coverity issues
kswiecicki Nov 28, 2023
69f2992
Fix disjoint pool coverity issues
kswiecicki Nov 28, 2023
b92b60d
Fix pool manager coverity issues
kswiecicki Nov 28, 2023
54aff86
Merge pull request #1133 from kswiecicki/coverity-fixes
pbalcer Nov 29, 2023
26e98b5
Merge pull request #1084 from igchor/fix_windows_critnib
omarahmed1111 Nov 29, 2023
a32be71
Merge branch 'main' into merge-some-main-changes-into-adapters-third-…
omarahmed1111 Nov 29, 2023
a92a989
Fix opencl ctest match files
omarahmed1111 Nov 30, 2023
f2ca7a9
Merge branch 'adapters' into merge-some-main-changes-into-adapters-th…
omarahmed1111 Nov 30, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 15 additions & 4 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -283,15 +283,18 @@ jobs:
{name: None, var: ''}, {name: L0, var: '-DUR_BUILD_ADAPTER_L0=ON'}
]

# TODO: building level zero loader on windows-2019 and clang-cl.exe is currently broken
# TODO: building level zero loader on windows-2019 and clang-cl is currently broken
exclude:
- os: 'windows-2019'
adapter: {name: L0, var: '-DUR_BUILD_ADAPTER_L0=ON'}
- adapter: {name: L0, var: '-DUR_BUILD_ADAPTER_L0=ON'}
compiler: {c: clang-cl.exe, cxx: clang-cl.exe}
compiler: {c: clang-cl, cxx: clang-cl}

build_type: [Debug, Release]
compiler: [{c: cl.exe, cxx: cl.exe}, {c: clang-cl.exe, cxx: clang-cl.exe}]
compiler: [{c: cl, cxx: cl}, {c: clang-cl, cxx: clang-cl}]
include:
- compiler: {c: clang-cl, cxx: clang-cl}
toolset: "-T ClangCL"
runs-on: ${{matrix.os}}

steps:
Expand All @@ -304,10 +307,18 @@ jobs:
- name: Install prerequisites
run: python3 -m pip install -r third_party/requirements.txt

- name: Install doxygen
run: |
$WorkingDir = $PWD.Path
Invoke-WebRequest -Uri https://github.com/doxygen/doxygen/releases/download/Release_1_9_8/doxygen-1.9.8.windows.x64.bin.zip -OutFile "$WorkingDir\doxygen.zip"
Expand-Archive -Path "$WorkingDir\doxygen.zip"
Add-Content $env:GITHUB_PATH "$WorkingDir\doxygen"

- name: Configure CMake
run: >
cmake
-B${{github.workspace}}/build
${{matrix.toolset}}
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
-DCMAKE_POLICY_DEFAULT_CMP0094=NEW
Expand All @@ -323,7 +334,7 @@ jobs:
# run: cmake --build ${{github.workspace}}/build --target check-generated --config ${{matrix.build_type}}

- name: Build all
run: cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} -j 2
run: cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS

- name: Test
working-directory: ${{github.workspace}}/build
Expand Down
78 changes: 78 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Coverage

on: [push, pull_request]

jobs:
ubuntu-build:
name: Build - Ubuntu
strategy:
matrix:
os: ['ubuntu-22.04']
build_type: [Debug]
compiler: [{c: gcc, cxx: g++}]
libbacktrace: ['-DVAL_USE_LIBBACKTRACE_BACKTRACE=ON']
pool_tracking: ['-DUMF_ENABLE_POOL_TRACKING=ON']

runs-on: ${{matrix.os}}

steps:
- uses: actions/checkout@v3

- name: Install apt packages
run: |
sudo apt-get update
sudo apt-get install -y doxygen ${{matrix.compiler.c}}

- name: Install pip packages
run: pip install -r third_party/requirements.txt

- name: Install libbacktrace
if: matrix.libbacktrace == '-DVAL_USE_LIBBACKTRACE_BACKTRACE=ON'
run: |
git clone https://github.com/ianlancetaylor/libbacktrace.git
cd libbacktrace
./configure
make
sudo make install
cd ..

- name: Download DPC++
run: |
sudo apt install libncurses5
wget -O ${{github.workspace}}/dpcpp_compiler.tar.gz https://github.com/intel/llvm/releases/download/sycl-nightly%2F20230626/dpcpp-compiler.tar.gz
tar -xvf ${{github.workspace}}/dpcpp_compiler.tar.gz

- name: Configure CMake
run: >
cmake
-B${{github.workspace}}/build
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
-DUR_ENABLE_TRACING=ON
-DUR_DEVELOPER_MODE=ON
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
-DUR_BUILD_TESTS=ON
-DUR_FORMAT_CPP_STYLE=ON
-DUR_DPCXX=${{github.workspace}}/dpcpp_compiler/bin/clang++
-DCMAKE_CXX_FLAGS="--coverage -fkeep-inline-functions -fkeep-static-functions"
-DCMAKE_EXE_LINKER_FLAGS="--coverage"
-DCMAKE_SHARED_LINKER_FLAGS="--coverage"
${{matrix.libbacktrace}}
${{matrix.pool_tracking}}

- name: Build
run: cmake --build ${{github.workspace}}/build -j $(nproc)

- name: Test
working-directory: ${{github.workspace}}/build
run: ctest -C ${{matrix.build_type}} --output-on-failure -L "python|umf|loader|validation|tracing|unit|urtrace"

- name: Quick Coverage Info
working-directory: ${{github.workspace}}/build
run: ctest -T Coverage

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
gcov: true
gcov_include: source
119 changes: 119 additions & 0 deletions .github/workflows/e2e_nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: E2E Nightly

on:
schedule:
# Run every day at 23:00 UTC
- cron: '0 23 * * *'

jobs:
e2e-build-hw:
name: Build SYCL, UR, run E2E
strategy:
matrix:
adapter: [
{name: CUDA}
]
build_type: [Release]
compiler: [{c: clang, cxx: clang++}]

runs-on: ${{matrix.adapter.name}}

steps:
# Workspace on self-hosted runners is not cleaned automatically.
# We have to delete the files created outside of using actions.
- name: Cleanup self-hosted workspace
if: always()
run: |
ls -la ./
rm -rf ./* || true

- name: Checkout UR
uses: actions/checkout@v4
with:
ref: adapters
path: ur-repo

- name: Checkout SYCL
uses: actions/checkout@v4
with:
repository: intel/llvm
ref: sycl
path: sycl-repo

- name: Install pip packages
working-directory: ${{github.workspace}}/ur-repo
run: pip install -r third_party/requirements.txt

- name: Configure CMake UR
working-directory: ${{github.workspace}}/ur-repo
run: >
cmake
-B build
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
-DUR_ENABLE_TRACING=ON
-DUR_DEVELOPER_MODE=ON
-DUR_BUILD_ADAPTER_${{matrix.adapter.name}}=ON

- name: Build UR
run: LD_LIBRARY_PATH=${{github.workspace}}/dpcpp_compiler/lib
cmake --build ${{github.workspace}}/ur-repo/build -j $(nproc)

- name: Set env vars & pre setup
run: |
echo "SYCL_PREFER_UR=1" >> $GITHUB_ENV
echo "CUDA_LIB_PATH=/usr/local/cuda/lib64/stubs" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=/usr/local/cuda/compat/:/usr/local/cuda/lib64:$LD_LIBRARY_PATH" >> $GITHUB_ENV
source /opt/intel/oneapi/setvars.sh
sycl-ls

- name: Configure SYCL
run: >
python3 sycl-repo/buildbot/configure.py
-t ${{matrix.build_type}}
-o ${{github.workspace}}/sycl_build
--cmake-gen "Unix Makefiles"
--ci-defaults --cuda --hip
--cmake-opt="-DLLVM_INSTALL_UTILS=ON"
--cmake-opt="-DSYCL_PI_TESTS=OFF"
--cmake-opt=-DCMAKE_C_COMPILER_LAUNCHER=ccache
--cmake-opt=-DCMAKE_CXX_COMPILER_LAUNCHER=ccache

- name: Build SYCL
run: cmake --build ${{github.workspace}}/sycl_build

- name: Run check-sycl
# Remove after fixing SYCL test :: abi/layout_handler.cpp
# This issue does not affect further execution of e2e with UR.
continue-on-error: true
run: cmake --build ${{github.workspace}}/sycl_build --target check-sycl

- name: Swap UR loader and adapters
run: |
cp ${{github.workspace}}/ur-repo/build/lib/libur_loader.so* ${{github.workspace}}/sycl_build/lib/
cp ${{github.workspace}}/ur-repo/build/lib/libur_adapter_cuda.so* ${{github.workspace}}/sycl_build/lib/

- name: Set additional env. vars
run: |
echo "${{github.workspace}}/sycl_build/bin" >> $GITHUB_PATH
echo "LD_LIBRARY_PATH=${{github.workspace}}/sycl_build/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV

# Running (newly built) sycl-ls sets up some extra variables
- name: Setup SYCL variables
run: |
which clang++ sycl-ls
SYCL_PI_TRACE=-1 sycl-ls

- name: Build e2e tests
run: >
cmake
-GNinja
-B ${{github.workspace}}/build-e2e/
-S ${{github.workspace}}/sycl-repo/sycl/test-e2e/
-DSYCL_TEST_E2E_TARGETS="ext_oneapi_cuda:gpu"
-DCMAKE_CXX_COMPILER="$(which clang++)"
-DLLVM_LIT="${{github.workspace}}/sycl-repo/llvm/utils/lit/lit.py"

- name: Run e2e tests
run: ninja -C build-e2e check-sycl-e2e
53 changes: 53 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Nightly

on:
schedule:
# Run every day at 23:00 UTC
- cron: '0 23 * * *'

jobs:
long-fuzz-test:
name: Run long fuzz tests
strategy:
matrix:
build_type: [Debug, Release]
compiler: [{c: clang, cxx: clang++}]

runs-on: 'ubuntu-22.04'

steps:
- uses: actions/checkout@v3
# with-ref part to be removed after merging 'adapters' branch with 'main'
with:
ref: adapters

- name: Install pip packages
run: pip install -r third_party/requirements.txt

- name: Download DPC++
run: |
wget -O ${{github.workspace}}/dpcpp_compiler.tar.gz https://github.com/intel/llvm/releases/download/nightly-2023-08-31/sycl_linux.tar.gz
mkdir dpcpp_compiler
tar -xvf ${{github.workspace}}/dpcpp_compiler.tar.gz -C dpcpp_compiler

- name: Configure CMake
run: >
cmake
-B${{github.workspace}}/build
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
-DUR_ENABLE_TRACING=ON
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
-DUR_BUILD_TESTS=ON
-DUR_USE_ASAN=ON
-DUR_USE_UBSAN=ON
-DUR_DPCXX=${{github.workspace}}/dpcpp_compiler/bin/clang++

- name: Build
run: >
LD_LIBRARY_PATH=${{github.workspace}}/dpcpp_compiler/lib
cmake --build ${{github.workspace}}/build -j $(nproc)

- name: Fuzz long test
working-directory: ${{github.workspace}}/build
run: ctest -C ${{matrix.build_type}} --output-on-failure -L "fuzz-long"
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(helpers)

if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
set(CMAKE_FIND_FRAMEWORK NEVER)
set(Python3_FIND_FRAMEWORK NEVER)
set(Python3_FIND_STRATEGY LOCATION)
endif()

find_package(Python3 COMPONENTS Interpreter REQUIRED)
Expand Down
39 changes: 35 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
[![CodeQL](https://github.com/oneapi-src/unified-runtime/actions/workflows/codeql.yml/badge.svg)](https://github.com/oneapi-src/unified-runtime/actions/workflows/codeql.yml)
[![Bandit](https://github.com/oneapi-src/unified-runtime/actions/workflows/bandit.yml/badge.svg)](https://github.com/oneapi-src/unified-runtime/actions/workflows/bandit.yml)
[![Coverity](https://scan.coverity.com/projects/28213/badge.svg)](https://scan.coverity.com/projects/oneapi-src-unified-runtime)
[![codecov.io](https://codecov.io/github/oneapi-src/unified-runtime/coverage.svg?branch=main)](https://codecov.io/github/oneapi-src/unified-runtime?branch=master)

## Adapters
Adapter implementations for Unified Runtime currently reside in the [SYCL repository](https://github.com/intel/llvm/tree/sycl/sycl/plugins/unified_runtime/ur). This branch contains scripts to automatically
Expand Down Expand Up @@ -31,7 +32,7 @@ see cmake options for details.
- [Adapter naming convention](#adapter-naming-convention)
- [Source code generation](#source-code-generation)
- [Documentation](#documentation)

6. [Release Process](#release-process)

## Contents of the repo

Expand Down Expand Up @@ -80,16 +81,19 @@ Tools can be acquired via instructions in [third_party](/third_party/README.md).

## Building

The requirements and instructions below are for building the project from source
without any modifications. To make modifications to the specification, please
see the
[Contribution Guide](https://oneapi-src.github.io/unified-runtime/core/CONTRIB.html)
for more detailed instructions on the correct setup.

### Requirements

Required packages:
- C++ compiler with C++17 support
- [CMake](https://cmake.org/) >= 3.14.0
- Python v3.6.6 or later

For development and contributions:
- clang-format-15.0 (can be installed with `python -m pip install clang-format==15.0.7`)

### Windows

Generating Visual Studio Project. EXE and binaries will be in **build/bin/{build_config}**
Expand Down Expand Up @@ -154,6 +158,10 @@ It will generate the source code **and** run automated code formatting:
$ make generate
```

This target has additional dependencies which are described in the *Build
Environment* section of the
[Contribution Guide](https://oneapi-src.github.io/unified-runtime/core/CONTRIB.html).

## Contributions

For those who intend to make a contribution to the project please read our
Expand All @@ -176,3 +184,26 @@ Code is generated using included [Python scripts](/scripts/README.md).

Documentation is generated from source code using Sphinx -
see [scripts dir](/scripts/README.md) for details.

## Release Process

Unified Runtime releases are aligned with oneAPI releases. Once all changes
planned for a release have been accepted, the release process is defined as:

1. Create a new release branch based on the [main][main-branch] branch taking
the form `v<major>.<minor>.x` where `x` is a placeholder for the patch
version. This branch will always contain the latest patch version for a given
release.
2. Create a PR to increment the CMake project version on the [main][main-branch]
and merge before accepting any other changes.
3. Create a new tag based on the latest commit on the release branch taking the
form `v<major>.<minor>.<patch>`.
4. Create a [new GitHub release][new-github-release] using the tag created in
the previous step.
* Prior to version 1.0, check the *Set as a pre-release* tick box.
5. Update downstream projects to utilize the release tag. If any issues arise
from integration, apply any necessary hot fixes to `v<major>.<minor>.x`
branch and go back to step 3.

[main-branch]: https://github.com/oneapi-src/unified-runtime/tree/main
[new-github-release]: https://github.com/oneapi-src/unified-runtime/releases/new
Loading