diff --git a/.github/actions/do_build_dpcpp/action.yml b/.github/actions/do_build_dpcpp/action.yml new file mode 100644 index 000000000..dda81192e --- /dev/null +++ b/.github/actions/do_build_dpcpp/action.yml @@ -0,0 +1,122 @@ +name: build dpc++ +description: build dpc++ + +inputs: + target: + description: 'target architecture' + create_dpcpp_artefact_method: + description: 'build | download_release' # TODO: add support for 'previous workflow' download + type: string + default: "build" + +runs: + using: "composite" + steps: + - name: calc vars + id: calc_vars + uses: ./.github/actions/calc_vars + with: + target: ${{ inputs.target }} + + - name: Install Ninja + uses: llvm/actions/install-ninja@main + + - name: Install spirv tools + shell: bash + run: + sudo apt-get install spirv-tools + + - name: clone dpc++ + if: inputs.create_dpcpp_artefact_method == 'build' + uses: actions/checkout@v4 + with: + repository: intel/llvm + path: llvm + + - name: dpcpp configure + if: inputs.create_dpcpp_artefact_method == 'build' + shell: bash + run: + cd llvm; python buildbot/configure.py + -o build + --host-target="X86;AArch64;RISCV" + --native_cpu + --llvm-external-projects=lld + --cmake-opt=-DNATIVECPU_USE_OCK=ON + --cmake-opt=-DLLVM_ENABLE_ZLIB=OFF + --cmake-opt=-DLLVM_ENABLE_ZSTD=OFF + + - name: build sycl-headers + if: inputs.create_dpcpp_artefact_method == 'build' + shell: bash + run: + cmake --build llvm/build -- sycl-headers + + - name: build dpc plus plus + if: inputs.create_dpcpp_artefact_method == 'build' + shell: bash + run: + python llvm/buildbot/compile.py -o llvm/build -v -j 8 + + - name: build extra utilties + if: inputs.create_dpcpp_artefact_method == 'build' + # Build various utilities, since those aren't proper dependencies. + # FileCheck and not are needed for tests. The rest are needed for + # cross builds. They are enabled on all targets for consistency. + shell: bash + run: + cmake --build llvm/build -- FileCheck clang-tblgen + libclc-remangler llvm-as llvm-min-tblgen llvm-tblgen not + opt prepare_builtins -j8 + + - name: copy utilities + if: inputs.create_dpcpp_artefact_method == 'build' + shell: bash + run: + cd llvm/build/bin; + cp FileCheck clang-tblgen libclc-remangler llvm-as llvm-min-tblgen + llvm-tblgen not opt prepare_builtins ../install/bin + + # TODO: For now just linux x86_64 + # Review for location of components (paths) and any archive package/unpackage reqs. + #- name: install config files to pick up libraries for cross compilation. + # if: inputs.create_dpcpp_artefact_method == 'build' + # shell: bash + # run: | + # echo Installing configuration files + # cd llvm/build/bin + # # Install configuration files to pick up libraries for cross compilation. + # for arch in x86_64 aarch64 riscv64; do + # echo " + # -L/../../../$arch-linux/install/lib + # -fsycl-libdevice-path=/../../../$arch-linux/install/lib + # -fsycl-libspirv-path=/../../../$arch-linux/install/lib/clc/remangled-l64-signed_char.libspirv-$arch-unknown-linux-gnu.bc + # " >../install/bin/$arch-unknown-linux-gnu.cfg; + # done + + - name: download dpc plus plus + if: inputs.create_dpcpp_artefact_method == 'download_release' + shell: bash + run: | + mkdir -p llvm/build/install + cd llvm/build/install + # Get latest build - go back 2 weeks max else fail + for COUNTER in {0..13}; do + DATESTAMP=$(date -d "-$COUNTER day" '+%Y-%m-%d') + wget -q https://github.com/intel/llvm/releases/download/nightly-$DATESTAMP/sycl_linux.tar.gz && echo Using DPC++ release build: $DATESTAMP && break + done + tar xf sycl_linux.tar.gz + rm sycl_linux.tar.gz + + - name: package artefacts # package/unpackage avoids known 'permissions loss' issue + shell: bash + run: | + cd llvm/build/install + tar cf dpcpp.tar * + + - name: upload dpcpp artifact + uses: actions/upload-artifact@v4 + with: + name: dpcpp_${{inputs.target}} + path: llvm/build/install/dpcpp.tar + retention-days: 1 diff --git a/.github/actions/do_build_sycl_cts/action.yml b/.github/actions/do_build_sycl_cts/action.yml new file mode 100644 index 000000000..cf5c7ef09 --- /dev/null +++ b/.github/actions/do_build_sycl_cts/action.yml @@ -0,0 +1,101 @@ +name: build sycl cts +description: build sycl cts + +inputs: + target: + description: 'target architecture' + +runs: + using: "composite" + steps: + - name: calc vars + id: calc_vars + uses: ./.github/actions/calc_vars + with: + target: ${{ inputs.target }} + + - name: Install Ninja + uses: llvm/actions/install-ninja@main + + - name: download icd artifact + uses: actions/download-artifact@v4 + with: + name: icd_${{inputs.target}} + path: install_icd + + - name: download headers artifact + uses: actions/download-artifact@v4 + with: + name: header_${{inputs.target}} + path: install_headers + + - name: download dpc++ artifact + uses: actions/download-artifact@v4 + with: + name: dpcpp_${{inputs.target}} + path: install_dpcpp + + - name: unpackage dpc++ artifacts # package/unpackage avoids known 'permissions loss' issue + shell: bash + run: | + cd install_dpcpp + tar xf dpcpp.tar + rm dpcpp.tar + + - name: checkout sycl cts + uses: actions/checkout@v4 + with: + repository: KhronosGroup/SYCL-CTS + path: SYCL-CTS.src + submodules: true + + - name: expand runner swap + # Needed to allow building - else current default memory restrictions lead to the runner being killed + shell: bash + run: | + set -x + df -h + sudo swapon --show + sudo swapoff -a + sudo fallocate -l 8G /mnt/swapfilenew + sudo chmod 600 /mnt/swapfilenew + sudo mkswap /mnt/swapfilenew + sudo swapon /mnt/swapfilenew + sudo swapon --show + df -h + set +x + + - name: build SYCL CTS + shell: bash + run: | + echo calling cmake and ninja on SYCL CTS + # Todo: as we extend into cross etc, we may want to expand on the cxx flags + # We build SYCL-CTS without installing it, so build directly in the top level. + git -C SYCL-CTS.src log -1 + git -C SYCL-CTS.src apply $GITHUB_WORKSPACE/.github/patches/SYCL-CTS-0002-Permit-building-for-unknown-architectures.patch + cmake -S SYCL-CTS.src \ + -GNinja \ + -B SYCL-CTS \ + -DSYCL_IMPLEMENTATION=DPCPP \ + -DDPCPP_INSTALL_DIR=$GITHUB_WORKSPACE/install_dpcpp \ + -DOpenCL_LIBRARY=$GITHUB_WORKSPACE/install_icd/lib/libOpenCL.so \ + -DOpenCL_INCLUDE_DIR=$GITHUB_WORKSPACE/install_headers/include \ + -DCMAKE_CXX_COMPILER="$GITHUB_WORKSPACE/install_dpcpp/bin/clang++" \ + -DCMAKE_CXX_FLAGS="--target=${{steps.calc_vars.outputs.arch}}-linux-gnu" \ + -DCMAKE_CXX_LINK_FLAGS="-fuse-ld=lld" + ninja -C SYCL-CTS -v -j4 -k 0 || : + + - name: package artefacts # package/unpackage avoids known 'permissions loss' issue + shell: bash + run: | + cd SYCL-CTS + # only bin + tar cf sycl-cts.tar bin + + - name: upload artefact + uses: actions/upload-artifact@v4 + with: + name: sycl_cts_${{inputs.target}} + path: SYCL-CTS/sycl-cts.tar + retention-days: 1 + diff --git a/.github/actions/run_sycl_cts/action.yml b/.github/actions/run_sycl_cts/action.yml new file mode 100644 index 000000000..0fe51698d --- /dev/null +++ b/.github/actions/run_sycl_cts/action.yml @@ -0,0 +1,87 @@ +name: run sycl cts +description: run sycl cts + +inputs: + target: + description: 'target architecture' + +runs: + using: "composite" + steps: + - name: calc vars + id: calc_vars + uses: ./.github/actions/calc_vars + with: + target: ${{ inputs.target }} + + - name: Install Ninja + uses: llvm/actions/install-ninja@main + + - name: download ock artifact + uses: actions/download-artifact@v4 + with: + name: ock_${{inputs.target}} + path: install_ock + + - name: download header artifact + uses: actions/download-artifact@v4 + with: + name: header_${{inputs.target}} + path: install_headers + + - name: download SYCL-CTS artifact + uses: actions/download-artifact@v4 + with: + name: sycl_cts_${{inputs.target}} + path: SYCL-CTS + + - name: unpackage SYCL-CTS artifacts # package/unpackage avoids known 'permissions loss' issue + shell: bash + run: | + cd SYCL-CTS + tar xf sycl-cts.tar + rm sycl-cts.tar + + - name: download dpc++ artifact + uses: actions/download-artifact@v4 + with: + name: dpcpp_${{inputs.target}} + path: install_dpcpp + + - name: unpackage dpc++ artifacts # package/unpackage avoids known 'permissions loss' issue + shell: bash + run: | + cd install_dpcpp + tar xf dpcpp.tar + rm dpcpp.tar + + - name: run sycl cts + shell: bash + env: + PREPEND_PATH: '' # TODO: have qemu as input and set up this + SYCL_CTS_TIMEOUT: '02:00:00' + SYCL_CTS_FILTER: '' + run: | + echo running sycl cts + export LD_LIBRARY_PATH=$GITHUB_WORKSPACE/install_dpcpp/lib:$GITHUB_WORKSPACE/install_ock/lib + export ONEAPI_DEVICE_SELECTOR=opencl:0 + export CTS_CSV_FILE=$GITHUB_WORKSPACE/.github/scripts/sycl-cts.csv + set -x + python $GITHUB_WORKSPACE/scripts/testing/run_cities.py \ + --color=always \ + --timeout $SYCL_CTS_TIMEOUT \ + $PREPEND_PATH \ + -p sycl_cts \ + -b SYCL-CTS/bin \ + -L SYCL-CTS/lib \ + -e OCL_ICD_FILENAMES=$GITHUB_WORKSPACE/install_ock/lib/libCL.so \ + -s $CTS_CSV_FILE \ + -l SYCL-CTS/cts.log -f SYCL-CTS/cts.fail \ + -r SYCL-CTS/cts.xml \ + -v \ + $SYCL_CTS_FILTER || exitcode=$? + export OCL_ICD_FILENAMES=$GITHUB_WORKSPACE/install_ock/lib/libCL.so + $GITHUB_WORKSPACE/.github/scripts/create_sycl_cts_test_lists.sh $PREPEND_PATH SYCL-CTS $CTS_CSV_FILE csv.txt cts_all.txt + # output a diff of the generated list csv.txt and cts_all.txt + diff csv.txt cts_all.txt || echo "WARNING - Missing some tests from sycl cts file based on test_all --list-tests - see > above" + exit $exitcode diff --git a/.github/patches/SYCL-CTS-0002-Permit-building-for-unknown-architectures.patch b/.github/patches/SYCL-CTS-0002-Permit-building-for-unknown-architectures.patch new file mode 100644 index 000000000..8565e9d62 --- /dev/null +++ b/.github/patches/SYCL-CTS-0002-Permit-building-for-unknown-architectures.patch @@ -0,0 +1,66 @@ +From: Harald van Dijk +Date: Wed, 15 May 2024 17:57:47 +0100 +Subject: [PATCH] Permit building for unknown architectures. + +--- + oclmath/fpcontrol.h | 6 +++--- + oclmath/rounding_mode.cpp | 5 +++-- + 2 files changed, 6 insertions(+), 5 deletions(-) + +diff --git a/oclmath/fpcontrol.h b/oclmath/fpcontrol.h +index cf9e9569..19a07655 100644 +--- a/oclmath/fpcontrol.h ++++ b/oclmath/fpcontrol.h +@@ -69,7 +69,7 @@ inline void ForceFTZ(FPU_mode_type* mode) { + #elif defined(__mips__) + fpa_bissr(FPA_CSR_FS); + #else +-#error ForceFTZ needs an implentation ++#warning ForceFTZ needs an implentation + #endif + } + +@@ -96,7 +96,7 @@ inline void DisableFTZ(FPU_mode_type* mode) { + #elif defined(__mips__) + fpa_bicsr(FPA_CSR_FS); + #else +-#error DisableFTZ needs an implentation ++#warning DisableFTZ needs an implentation + #endif + } + +@@ -115,7 +115,7 @@ inline void RestoreFPState(FPU_mode_type* mode) { + #elif defined(__mips__) + // Mips runs by default with DAZ=1 FTZ=1 + #else +-#error RestoreFPState needs an implementation ++#warning RestoreFPState needs an implementation + #endif + } + #else +diff --git a/oclmath/rounding_mode.cpp b/oclmath/rounding_mode.cpp +index 24e8ea99..bbac296b 100644 +--- a/oclmath/rounding_mode.cpp ++++ b/oclmath/rounding_mode.cpp +@@ -217,7 +217,8 @@ void* FlushToZero(void) { + fpa_bissr(FPA_CSR_FS); + return NULL; + #else +-#error Unknown arch ++#warning Unknown arch ++ return NULL; + #endif + #else + #error Please configure FlushToZero and UnFlushToZero to behave properly on this operating system. +@@ -246,7 +247,7 @@ void UnFlushToZero(void* p) { + #elif defined(__mips__) + fpa_bicsr(FPA_CSR_FS); + #else +-#error Unknown arch ++#warning Unknown arch + #endif + #else + #error Please configure FlushToZero and UnFlushToZero to behave properly on this operating system. +-- +2.43.0 + diff --git a/.github/scripts/create_sycl_cts_test_lists.sh b/.github/scripts/create_sycl_cts_test_lists.sh new file mode 100755 index 000000000..040d77ca9 --- /dev/null +++ b/.github/scripts/create_sycl_cts_test_lists.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +# Build two files of test lists based on the sycl csv file used in city runner +# and that generated from test_all. These are sorted to check for differences. + +# The first file is generated by running the tests in the sycl csv file with +# '--list-tests -v quiet' and concatentating + +# The second file is simple test_all '--list-tests -v quiet' + +prepend_path= +while [[ $# -ne 0 ]] +do + case $1 in + --prepend-path) + prepend_path=${2?} + shift 2 + continue;; + --prepend-path=*) + prepend_path=${1#*=} + shift + continue;; + --) + shift + break;; + *) + break;; + esac +done + +if [[ $# -ne 4 ]]; +then + echo "usage: $0 [--prepend-path ] " + exit 1 +fi + +output_csv_test_list=`realpath $3` +output_test_all_list=`realpath $4` +sycl_cts_file=$(cat $2) + +cd $1 + +temp_file=`tempfile` + +while IFS= read -r line; do + + # if line starts with a hash then skip + if [[ "$line" =~ ^\#.* ]] ; then + continue + fi + # Process the line to work out how to run the test - use csv reader to select test and args to run + test_to_run=`echo $line | python3 -c 'import sys, csv +for line in csv.reader(sys.stdin): print(line[1])'` + # Actually run the test with --list-tests + eval "$prepend_path ./bin/$test_to_run --list-tests -v quiet" >> $temp_file + if [ $? -ne 0 ]; then + echo "Error : Unable to process $line" + exit 1 + fi +done <<< $sycl_cts_file + +cat $temp_file | sort > $output_csv_test_list +rm $temp_file + +for test_to_run in ./bin/test_*; do + $prepend_path $test_to_run --list-tests -v quiet +done | sort > $output_test_all_list + diff --git a/.github/scripts/sycl-cts.csv b/.github/scripts/sycl-cts.csv new file mode 100644 index 000000000..cc602efc4 --- /dev/null +++ b/.github/scripts/sycl-cts.csv @@ -0,0 +1,579 @@ +SYCL_CTS_accessor,test_accessor_basic "requisite for the entire underlying buffer for sycl::accessor" --allow-running-no-tests +SYCL_CTS_accessor,test_accessor_basic "*Accessors constructor default values test*" +SYCL_CTS_accessor,test_accessor_basic "*The sycl::local_accessor implicit conversion.*" +SYCL_CTS_accessor,test_accessor_basic "*The sycl::host_accessor implicit conversion*" +SYCL_CTS_accessor,test_accessor_basic "*LegacyRandomAccessIterator requirement verification *" +SYCL_CTS_accessor,test_accessor_basic "*constructor exceptions test*" +SYCL_CTS_accessor,test_accessor_basic "*Generic sycl::accessor implicit conversion.*" +SYCL_CTS,test_accessor_generic +SYCL_CTS,test_accessor_placeholder +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_api_buffer_atomic64 +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_api_buffer_core +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_api_buffer_fp16 --allow-running-no-tests +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_api_buffer_fp64 +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_api_local_atomic64 +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_api_local_core +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_api_local_fp16 --allow-running-no-tests +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_api_local_fp64 +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_constructors_buffer +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_constructors_buffer_placeholder +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_constructors_fp16 --allow-running-no-tests +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_constructors_fp64 +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_constructors_image +SYCL_CTS_accessor_legacy,test_accessor_legacy accessor_constructors_local +SYCL_CTS,test_address_space +SYCL_CTS,test_atomic +SYCL_CTS,test_atomic_fence +SYCL_CTS,test_atomic_ref "sycl::atomic_ref::operator T() test. *" +SYCL_CTS,test_atomic_ref "sycl::atomic_ref operator+=*" +SYCL_CTS,test_atomic_ref "sycl::atomic_ref::operator=*" +SYCL_CTS,test_atomic_ref "sycl::atomic_ref operator^=*" +SYCL_CTS,test_atomic_ref "sycl::atomic_ref compare_exchange_strong()/compare_exchange_weak() test. *" --allow-running-no-tests +SYCL_CTS,test_atomic_ref "sycl::atomic_ref constructors. *" +SYCL_CTS,test_atomic_ref "sycl::atomic_ref::exchange() test. *" --allow-running-no-tests +SYCL_CTS,test_atomic_ref "sycl::atomic_ref fetch_add()/fetch_sub() test. *" --allow-running-no-tests +SYCL_CTS,test_atomic_ref "sycl::atomic_ref fetch_xor()/fetch_or()/fetch_and() test. *" --allow-running-no-tests +SYCL_CTS,test_atomic_ref "sycl::atomic_ref fetch_min()/fetch_max() test. *" --allow-running-no-tests +SYCL_CTS,test_atomic_ref "sycl::atomic_ref increment/decrement operators test. *" --allow-running-no-tests +SYCL_CTS,test_atomic_ref "sycl::atomic_ref::is_lock_free() test. *" +SYCL_CTS,test_atomic_ref "sycl::atomic_ref static members. *" +SYCL_CTS,test_atomic_ref "sycl::atomic_ref::store() test. *" +SYCL_CTS,test_atomic_ref_stress "sycl::atomic_ref atomicity *" +SYCL_CTS,test_atomic_ref_stress "sycl::atomic_ref aquire and release. *" +SYCL_CTS,test_atomic_ref_stress "sycl::atomic_ref ordering. *" +SYCL_CTS,test_bit_cast +SYCL_CTS,test_buffer buffer_api_core +SYCL_CTS,test_buffer buffer_api_fp16 --allow-running-no-tests +SYCL_CTS,test_buffer buffer_api_fp64 +SYCL_CTS,test_buffer buffer_constructors_core +SYCL_CTS,test_buffer buffer_constructors_fp16 --allow-running-no-tests +SYCL_CTS,test_buffer buffer_constructors_fp64 +SYCL_CTS,test_buffer "buffer deduction guides" +SYCL_CTS,test_buffer buffer_destructors +SYCL_CTS,test_buffer "buffer common reference semantics*" +SYCL_CTS,test_buffer buffer_storage_core +SYCL_CTS,test_buffer buffer_storage_fp16 --allow-running-no-tests +SYCL_CTS,test_buffer buffer_storage_fp64 +SYCL_CTS,test_context context_api +SYCL_CTS,test_context context_constructors +SYCL_CTS,test_context "context info" +SYCL_CTS,test_context "context common reference semantics" +SYCL_CTS,test_device device_api +SYCL_CTS,test_device device_constructors +SYCL_CTS,test_device "device info" +SYCL_CTS,test_device "device common reference semantics" +SYCL_CTS,test_device_event +SYCL_CTS,test_device_selector aspect +SYCL_CTS,test_device_selector "Check any_device_has and all_devices_have" +SYCL_CTS,test_device_selector device_selector_custom +SYCL_CTS,test_device_selector "predefined selectors" +SYCL_CTS,test_error +SYCL_CTS,test_event "event provides a default constructor" +SYCL_CTS,test_event "event::get_backend returns the associated backend" +SYCL_CTS,test_event "event::get_wait_list returns a list of all direct dependencies" +SYCL_CTS,test_event "event can be waited upon" +SYCL_CTS,test_event "multiple events can be waited upon simultaneously" +SYCL_CTS,test_event "event::wait does not report asynchronous errors" +SYCL_CTS,test_event "event::wait_and_throw reports asynchronous errors" +SYCL_CTS,test_event "event::wait_and_throw reports asynchronous errors from related events" +SYCL_CTS,test_event "event::wait_and_throw reports asynchronous errors from related events on corresponding queues" +SYCL_CTS,test_event "event::wait_and_throw only reports unconsumed asynchronous errors" +SYCL_CTS,test_event "event::get_info returns correct command execution status" +SYCL_CTS,test_event "event::get_backend_info returns backend-specific information" +SYCL_CTS,test_event "event::get_profiling_info works as expected" +SYCL_CTS,test_event "event common reference semantics*" +SYCL_CTS,test_exception_handling asynchronous_exceptions +SYCL_CTS,test_exception_handling synchronous_exceptions +SYCL_CTS,test_exceptions "Check sycl::exception_list member types" +SYCL_CTS,test_exceptions "Check that sycl::exception_list iterators satisfy LegacyForwardIterator requirements" +SYCL_CTS,test_exceptions "Check default-constructed sycl::exception_list" +SYCL_CTS,test_exceptions "Check that sycl::async_handler is expected type" +SYCL_CTS,"test_exceptions ""Check that\, when there is no exception expected\, the async handler is not invoked""" +SYCL_CTS,test_exceptions "Priorities of async handlers" +SYCL_CTS,test_exceptions "Constructors for sycl::exception with sycl::errc error codes" +SYCL_CTS,test_exceptions "Constructors for sycl::exception with OpenCL error code" --allow-running-no-tests +SYCL_CTS,test_exceptions "sycl::exception is derived from std::exception" +SYCL_CTS,test_exceptions "Check sycl::exception sycl::errc_for enum" --allow-running-no-tests +SYCL_CTS,test_exceptions "exceptions_error_code" +SYCL_CTS,test_exceptions "exceptions_make_error_code" +SYCL_CTS,test_exceptions "exceptions_sycl_category" +SYCL_CTS,test_exceptions "exceptions_sycl_category_try_order_fiasco" +SYCL_CTS,test_exceptions "Check an empty queue::submit() doesn't result in exceptions." +SYCL_CTS,test_full_feature_set "static const variable use in kernel" +SYCL_CTS,test_full_feature_set "static constexpr variable use in kernel" +SYCL_CTS,test_function_objects +SYCL_CTS,test_get_kernel_bundle_with_kernel_attr +SYCL_CTS,test_get_kernel_bundle_without_kernel_attr +SYCL_CTS,test_get_kernel_bundle_zero_kernels +SYCL_CTS,test_get_kernel_ids_multiple_kernels +SYCL_CTS,test_get_kernel_ids_no_kernels +SYCL_CTS,test_get_kernel_ids_single_kernel +SYCL_CTS,test_group "group api" +SYCL_CTS,test_group group_async_work_group_copy_core +SYCL_CTS,test_group group_async_work_group_copy_fp16 --allow-running-no-tests +SYCL_CTS,test_group group_async_work_group_copy_fp64 +SYCL_CTS,test_group group_constructors +SYCL_CTS,test_group group_equality +SYCL_CTS,test_group group_wait_for +SYCL_CTS,test_group "sycl::group members" +SYCL_CTS,test_group_functions "Group barriers - *" +SYCL_CTS,test_group_functions "Group broadcast - *" +SYCL_CTS,test_group_functions "Sub-group broadcast and select - *" +SYCL_CTS,test_group_functions "Group and sub_group joint of bool functions - WideTypes - *" +SYCL_CTS,test_group_functions "Group and sub_group of bool functions with predicate functions - WideTypes - *" +SYCL_CTS,test_group_functions "Group and sub_group of bool functions - *" +SYCL_CTS,test_group_functions "Group and sub-group permute - *" +SYCL_CTS,test_group_functions "* group and sub-group joint reduce functions" +SYCL_CTS,test_group_functions "* group and sub-group joint reduce functions with init - ReduceTypes - *" +SYCL_CTS,test_group_functions "* group and sub-group reduce functions" +SYCL_CTS,test_group_functions "* group and sub-group reduce functions with init - ReduceTypes - *" +SYCL_CTS,test_group_functions "* group and sub-group joint scan functions" +SYCL_CTS,test_group_functions "* group and sub-group joint scan functions with init" +SYCL_CTS,test_group_functions "* group and sub-group scan functions" +SYCL_CTS,test_group_functions "* group and sub-group scan functions with init" +SYCL_CTS,test_group_functions "Group and sub-group shift - *" +SYCL_CTS,test_group_functions "Group type trait" +SYCL_CTS,test_handler "Check exception*" +SYCL_CTS,test_handler "handler require()" +SYCL_CTS,test_handler "handler depends_on(event)" +SYCL_CTS,test_handler "handler depends_on(vector)" +SYCL_CTS,test_handler "Tests the API for sycl::handler::copy" +SYCL_CTS,test_handler "Tests the API for sycl::handler::copy for double" +SYCL_CTS,test_handler "handler_invoke_api *" +SYCL_CTS,test_handler "handler." +SYCL_CTS,test_handler "handler.parallel_for*" +SYCL_CTS,test_has_kernel_bundle_core_all_states_ctx_only +SYCL_CTS,test_has_kernel_bundle_core_all_states_dev +SYCL_CTS,test_has_kernel_bundle_core_atomic64_ctx_only +SYCL_CTS,test_has_kernel_bundle_core_atomic64_dev +SYCL_CTS,test_has_kernel_bundle_core_fp16_ctx_only --allow-running-no-tests +SYCL_CTS,test_has_kernel_bundle_core_fp16_dev --allow-running-no-tests +SYCL_CTS,test_has_kernel_bundle_core_fp64_ctx_only +SYCL_CTS,test_has_kernel_bundle_core_fp64_dev +SYCL_CTS,test_has_kernel_bundle_core_like_support_reqd_sub_group_size_ctx_only +SYCL_CTS,test_has_kernel_bundle_core_like_support_reqd_sub_group_size_dev +SYCL_CTS,test_has_kernel_bundle_core_like_unsupport_reqd_sub_group_size_ctx_only +SYCL_CTS,test_has_kernel_bundle_core_like_unsupport_reqd_sub_group_size_dev +SYCL_CTS,test_has_kernel_bundle_core_reqd_like_support_work_group_size_ctx_only +SYCL_CTS,test_has_kernel_bundle_core_reqd_like_support_work_group_size_dev +SYCL_CTS,test_has_kernel_bundle_core_reqd_like_unsupport_work_group_size_ctx_only +SYCL_CTS,test_has_kernel_bundle_core_reqd_like_unsupport_work_group_size_dev +SYCL_CTS,test_has_kernel_bundle_multiple_kernels_ctx_only +SYCL_CTS,test_has_kernel_bundle_multiple_kernels_dev +SYCL_CTS,test_has_kernel_bundle_zero_kernels_ctx_only_and_ctx_and_dev +SYCL_CTS,test_header +SYCL_CTS,test_hierarchical hierarchical_functor +SYCL_CTS,test_hierarchical hierarchical_id +# https://github.com/intel/llvm/issues/13574 +#SYCL_CTS,test_hierarchical hierarchical_implicit_barriers +SYCL_CTS,test_hierarchical hierarchical_implicit_conditional +SYCL_CTS,test_hierarchical hierarchical_implicit_reduce +SYCL_CTS,test_hierarchical hierarchical_lambda +SYCL_CTS,test_hierarchical hierarchical_non_uniform_local_range +SYCL_CTS,test_hierarchical hierarchical_private_memory +SYCL_CTS,test_h_item "h_item_1d API" +SYCL_CTS,test_h_item "h_item_2d API" +SYCL_CTS,test_h_item "h_item_3d API" +SYCL_CTS,test_h_item h_item_constructors +SYCL_CTS,test_h_item h_item_equality +SYCL_CTS,test_h_item "sycl::h_item members" +SYCL_CTS,test_host_accessor +SYCL_CTS,test_host_task "CUDA host task interop test" --allow-running-no-tests +SYCL_CTS,test_host_task host_task_interop_api +SYCL_CTS,test_host_task host_task_invoke_api +SYCL_CTS,test_id "id provides a default constructor" +SYCL_CTS,test_id "id provides specialized constructors for each dimensionality" +SYCL_CTS,test_id "id provides common by-value semantics - *" +SYCL_CTS,test_id "id provides static constexpr member 'dimensions'" +SYCL_CTS,test_id "id can be implicitly conversion-constructed from range - *" +SYCL_CTS,test_id "id can be implicitly conversion-constructed from item - *" +SYCL_CTS,test_id "id supports get\(\) and operator\[\] - *" +SYCL_CTS,test_id "id can be converted to size_t if Dimensions == 1" +SYCL_CTS,test_id "id supports various binary operators *" +SYCL_CTS,test_id "id supports various compound binary operators *" +SYCL_CTS,test_id "id supports unary *" +SYCL_CTS,test_id "id supports pre- and postfix *" +SYCL_CTS,test_id "id can deduce dimensionality from constructor parameters" +SYCL_CTS,test_image +SYCL_CTS,test_image_accessor +SYCL_CTS,test_invoke invoke_kernel_param_sizes +SYCL_CTS,test_invoke invoke_kernel_params +SYCL_CTS,test_invoke "Tests for sycl::kernel from functor" +SYCL_CTS,test_invoke "Tests for sycl::kernel from functor for double" +SYCL_CTS,test_invoke "Check parallel_for*" +SYCL_CTS,test_invoke "Execution order of three command groups*" +SYCL_CTS,test_invoke "Host accessor as a barrier" --allow-running-no-tests +SYCL_CTS,test_invoke "Requirements on overlapping sub-buffers" +SYCL_CTS,test_is_device_copyable +SYCL_CTS,test_item "sycl::item<*" +SYCL_CTS,test_item "item_constructors" +SYCL_CTS,test_item "item_equality" +SYCL_CTS,test_item "sycl::item members" +SYCL_CTS,test_kernel "Test kernel API" +SYCL_CTS,test_kernel "Test copy constructor" +SYCL_CTS,test_kernel "Test assignment operator" +SYCL_CTS,test_kernel "Test equality operator" +SYCL_CTS,test_kernel "Test default constructor is deleted" +SYCL_CTS,test_kernel "Test kernel info" +SYCL_CTS,test_kernel "Parameters passing to unnamed kernels" +SYCL_CTS,test_kernel "sycl::range\ passing to unnamed kernels" +SYCL_CTS,test_kernel "sycl::id\ passing to unnamed kernels" +SYCL_CTS,test_kernel "Parameters passing to named kernels" +SYCL_CTS,test_kernel "sycl::range\ passing to named kernels" +SYCL_CTS,test_kernel "sycl::id\ passing to named kernels" +SYCL_CTS,test_kernel "kernel common reference semantics" +SYCL_CTS,test_kernel "Behavior of kernel attribute*" +SYCL_CTS,test_kernel_args +SYCL_CTS,test_kernel_bundle "device image api" +SYCL_CTS,test_kernel_bundle "device_image common reference semantics" +SYCL_CTS,test_kernel_bundle get_kernel_bundle_builtin_kernels +SYCL_CTS,test_kernel_bundle get_kernel_bundle_dev_no_linker_or_compiler_aspect +SYCL_CTS,test_kernel_bundle get_kernel_bundle_dev_not_associated_with_context --allow-running-no-tests +SYCL_CTS,test_kernel_bundle get_kernel_bundle_with_incompatible_kernels +SYCL_CTS,test_kernel_bundle get_kernel_bundle_without_kernel_attr_verify_that_exception_is_not_thrown +SYCL_CTS,test_kernel_bundle get_kernel_bundle_zero_device +SYCL_CTS,test_kernel_bundle get_kernel_id_function +SYCL_CTS,test_kernel_bundle has_kernel_bundle_core_all_states* +SYCL_CTS,test_kernel_bundle has_kernel_bundle_core_fp16_fp64* +SYCL_CTS,test_kernel_bundle has_kernel_bundle_core_reqd_sub_group_size* +SYCL_CTS,test_kernel_bundle has_kernel_bundle_core_reqd_work_group_size* +SYCL_CTS,test_kernel_bundle has_kernel_bundle_core_sycl_requires* +SYCL_CTS,test_kernel_bundle has_kernel_bundle_multiple_kernels* +SYCL_CTS,test_kernel_bundle has_kernel_bundle_throws_diff_dev_from_diff_platform_* --allow-running-no-tests +SYCL_CTS,test_kernel_bundle has_kernel_bundle_throws_diff_dev_from_one_platform_* +SYCL_CTS,test_kernel_bundle has_kernel_bundle_zero_device_* +SYCL_CTS,test_kernel_bundle has_kernel_bundle_zero_kernels_dev_and_k_id_and_ctx_and_k_id +SYCL_CTS,test_kernel_bundle "Check that is_default_constructible_v\ is falsekernels" +SYCL_CTS,test_kernel_bundle "Check that kernel_bundle::get_backend\(\) return type is sycl::backendkernels" +SYCL_CTS,test_kernel_bundle "Check that kernel_bundle::get_devices\(\) return type is std::vector\ and vector contains selected devicekernels" +SYCL_CTS,test_kernel_bundle "Check kernel_bundle::*" +SYCL_CTS,test_kernel_bundle "LegacyForwardIterator requirement" --allow-running-no-tests +SYCL_CTS,test_kernel_bundle "kernel_bundle common reference semantics" +SYCL_CTS,test_kernel_bundle "Check specialization constants functionality with empty kernel_bundle" +SYCL_CTS,test_kernel_bundle "Check specialization constants functionality with Kernel bundle *" +SYCL_CTS,test_kernel_bundle "\`kernel_handler::get_specialization_constant\(\)\` call" --allow-running-no-tests +SYCL_CTS,test_kernel_bundle kernel_id_api +SYCL_CTS,test_kernel_bundle "kernel_id common reference semantics" +SYCL_CTS,test_kernel_bundle "kernel_id special reference semantics" +SYCL_CTS,test_kernel_bundle sycl_build_different_device_for_sycl_build --allow-running-no-tests +SYCL_CTS,test_kernel_bundle sycl_build_verify_kernel_invoked_and_kernel_in_result_bundle +SYCL_CTS,test_kernel_bundle sycl_build_verify_prop_list_existence +SYCL_CTS,test_kernel_bundle sycl_build_zero_device +SYCL_CTS,test_kernel_bundle sycl_compile_check_associated_devices_bundle_and_devs +SYCL_CTS,test_kernel_bundle sycl_compile_check_associated_devices_bundle_only +SYCL_CTS,test_kernel_bundle sycl_compile_exception_for_zero_devices +SYCL_CTS,test_kernel_bundle sycl_compile_exception_if_dev_not_in_set --allow-running-no-tests +SYCL_CTS,test_kernel_bundle sycl_compile_property_list +SYCL_CTS,test_kernel_bundle sycl_compile_simple_kernel_check_bundle_and_devs +SYCL_CTS,test_kernel_bundle sycl_compile_simple_kernel_check_bundle_only +SYCL_CTS,test_kernel_bundle sycl_compile_special_kernels_check_bundle_and_devs +SYCL_CTS,test_kernel_bundle sycl_compile_special_kernels_check_bundle_only +SYCL_CTS,test_kernel_bundle "kernel ids for the selected device" --allow-running-no-tests +SYCL_CTS,test_kernel_bundle "kernel ids from every root device other than the selected device" --allow-running-no-tests +SYCL_CTS,test_kernel_bundle "Check is_compatible*" +SYCL_CTS,test_kernel_bundle sycl_join_check_kernel_execution +SYCL_CTS,test_kernel_bundle sycl_join_kernel_bundle_with_empty_one +SYCL_CTS,test_kernel_bundle sycl_join_single_kernel_bundle +SYCL_CTS,test_kernel_bundle sycl_join_zero_kernel_bundles +SYCL_CTS,test_kernel_bundle "sycl::join kernel bundles with different contexts" --allow-running-no-tests +SYCL_CTS,test_kernel_bundle sycl_link_different_device_for_sycl_link --allow-running-no-tests +SYCL_CTS,test_kernel_bundle sycl_link_kernel_bundles_with_diff_ctx --allow-running-no-tests +SYCL_CTS,test_kernel_bundle sycl_link_verify_kernel_invoked_and_kernel_in_result_bundle +SYCL_CTS,test_kernel_bundle sycl_link_verify_prop_list_existence +SYCL_CTS,test_kernel_bundle sycl_link_zero_device +SYCL_CTS,test_kernel_bundle sycl_link_zero_device_and_zero_bundle +SYCL_CTS,test_kernel_bundle use_kernel_bundle_call_set_spec_const_after_use_kb_no_second_queue +SYCL_CTS,test_kernel_bundle use_kernel_bundle_call_set_spec_const_after_use_kb_with_second_queue +SYCL_CTS,test_kernel_bundle use_kernel_bundle_call_set_spec_const_before_use_kb_no_second_queue +SYCL_CTS,test_kernel_bundle use_kernel_bundle_call_set_spec_const_before_use_kb_with_second_queue +SYCL_CTS,test_kernel_bundle use_kernel_bundle_first_queue_ctx_not_equal_to_kernel_bundle_ctx --allow-running-no-tests +SYCL_CTS,test_kernel_bundle use_kernel_bundle_invoke_kernel_with_incompat_dev_no_second_queue --allow-running-no-tests +SYCL_CTS,test_kernel_bundle use_kernel_bundle_invoke_kernel_with_incompat_dev_with_second_queue --allow-running-no-tests +SYCL_CTS,test_kernel_bundle use_kernel_bundle_invoke_kernel_without_bundle_no_second_queue +SYCL_CTS,test_kernel_bundle use_kernel_bundle_invoke_kernel_without_bundle_with_second_queue +SYCL_CTS,test_kernel_bundle use_kernel_bundle_second_queue_ctx_not_equal_to_kernel_bundle_ctx +SYCL_CTS,test_kernel_bundle use_kernel_bundle_verify_that_kernel_was_invoked +SYCL_CTS,test_local_accessor +SYCL_CTS,test_marray_arithmetic_assignment +SYCL_CTS,test_marray_arithmetic_binary +SYCL_CTS,test_marray_basic "marray_alignment" +SYCL_CTS,test_marray_basic "* alignment *" +SYCL_CTS,test_marray_basic "* constructor *" +SYCL_CTS,test_marray_basic "* members *" +SYCL_CTS,test_marray_bitwise "*assignment operators*" +SYCL_CTS,test_marray_bitwise "*binary operators*" +SYCL_CTS,test_marray_pre_post "*prefix unary operators*" +SYCL_CTS,test_marray_pre_post "*suffix unary operators*" +SYCL_CTS,test_marray_relational +SYCL_CTS,test_math_builtin_api "math_builtin_common_base_*" +SYCL_CTS,test_math_builtin_api "math_builtin_common_half_*" --allow-running-no-tests +SYCL_CTS,test_math_builtin_api "math_builtin_common_double_*" +SYCL_CTS,test_math_builtin_api "math_builtin_float_base_*" +SYCL_CTS,test_math_builtin_api "math_builtin_float_half_*" --allow-running-no-tests +SYCL_CTS,test_math_builtin_api "math_builtin_float_double_*" +SYCL_CTS,test_math_builtin_api "math_builtin_relational_base_*" +SYCL_CTS,test_math_builtin_api "math_builtin_relational_half_*" --allow-running-no-tests +SYCL_CTS,test_math_builtin_api "math_builtin_relational_double_*" +SYCL_CTS,test_math_builtin_api "math_builtin_geometric_base_*" +SYCL_CTS,test_math_builtin_api "math_builtin_geometric_double_*" +SYCL_CTS,test_math_builtin_api "math_builtin_integer_*" +SYCL_CTS,test_math_builtin_api "math_builtin_native_*" +SYCL_CTS,test_math_builtin_api "math_builtin_half_*" --allow-running-no-tests +SYCL_CTS,test_multi_ptr "multi_ptr access members. *" +SYCL_CTS,test_multi_ptr "multi_ptr_accessor_constructor_*" +SYCL_CTS,test_multi_ptr "Arithmetic operators. *" +SYCL_CTS,test_multi_ptr "Common assignment operators. *" +SYCL_CTS,test_multi_ptr "multi_ptr_common_constructors_*" +SYCL_CTS,test_multi_ptr "multi_ptr comparison operators. *" +SYCL_CTS,test_multi_ptr "Convert assignment operators. *" +SYCL_CTS,test_multi_ptr "multi_ptr deduction guides" +SYCL_CTS,test_multi_ptr "multi_ptr explicit conversions. *" +SYCL_CTS,test_multi_ptr "multi_ptr implicit conversions. *" +SYCL_CTS,test_multi_ptr "multi_ptr_legacy_api_*" +SYCL_CTS,test_multi_ptr "multi_ptr_legacy_constructors_*" +SYCL_CTS,"test_multi_ptr ""constructor multi_ptr(local_accessor). *""" +SYCL_CTS,test_multi_ptr "multi_ptr_members_*" +SYCL_CTS,test_multi_ptr "Prefetch member. *" +SYCL_CTS,test_multi_ptr "multi_ptr operator\[\]\(std::ptrdiff_t\)*" +SYCL_CTS,test_multi_ptr "generic_ptr alias. *" +SYCL_CTS,test_namespace "namespace ::cl::sycl" +SYCL_CTS,test_namespace "namespace ::sycl" +SYCL_CTS,test_nd_item "sycl::nd_item members" +SYCL_CTS,test_nd_item "sycl::nd_item\<1\> API" +SYCL_CTS,test_nd_item "sycl::nd_item\<2\> API" +SYCL_CTS,test_nd_item "sycl::nd_item\<3\> API" +SYCL_CTS,test_nd_item nd_item_async_work_group_copy_core +SYCL_CTS,test_nd_item nd_item_async_work_group_copy_fp16 --allow-running-no-tests +SYCL_CTS,test_nd_item nd_item_async_work_group_copy_fp64 +SYCL_CTS,test_nd_item nd_item_constructors +SYCL_CTS,test_nd_item nd_item_equality +SYCL_CTS,test_nd_item nd_item_wait_for +SYCL_CTS,test_nd_range nd_range_api +SYCL_CTS,test_nd_range "sycl::nd_range constructors.*" +SYCL_CTS,test_nd_range "Check sycl::nd_range equality check *" +SYCL_CTS,test_nd_range "sycl::nd_range members" +SYCL_CTS,test_opencl_interop opencl_interop_constructors +SYCL_CTS,test_opencl_interop opencl_interop_get +SYCL_CTS,test_opencl_interop opencl_interop_kernel +SYCL_CTS,test_optional_kernel_features +SYCL_CTS,test_platform platform_api +SYCL_CTS,test_platform platform_constructors +SYCL_CTS,test_platform platform_info +SYCL_CTS,test_platform "platform common reference semantics" +SYCL_CTS,test_pointers +SYCL_CTS,test_property +SYCL_CTS,test_queue "Check the api for sycl::queue" +SYCL_CTS,test_queue "Check queue default constructor and destructor" +SYCL_CTS,test_queue "Check queue (*" +SYCL_CTS,test_queue "Check exceptions thrown for mismatched context and device" --allow-running-no-tests +SYCL_CTS,test_queue "check property::queue::enable_profiling" +SYCL_CTS,test_queue "check property::queue::in_order" +SYCL_CTS,test_queue "check both queue properties in_order and enable_profiling" +SYCL_CTS,test_queue "queue common reference semantics" +SYCL_CTS,test_queue "queue shortcuts explicit copy core" +SYCL_CTS,test_queue "queue shortcuts explicit copy fp16" --allow-running-no-tests +SYCL_CTS,test_queue "queue shortcuts explicit copy fp64" +SYCL_CTS,test_queue "queue shortcuts kernel function core" +SYCL_CTS,test_queue "queue shortcuts kernel function fp16" --allow-running-no-tests +SYCL_CTS,test_queue "queue shortcuts kernel function fp64" +SYCL_CTS,test_queue "queue shortcuts unified shared memory core" +SYCL_CTS,test_queue "queue shortcuts unified shared memory fp16" --allow-running-no-tests +SYCL_CTS,test_queue "queue shortcuts unified shared memory fp64" +SYCL_CTS,test_queue queue_info +SYCL_CTS,test_range range_api +SYCL_CTS,test_range "sycl::range constructors. *" +SYCL_CTS,test_range "range deduction guides" +SYCL_CTS,test_range "sycl::range members" +SYCL_CTS,test_reduction "reducer class" +SYCL_CTS,test_reduction "reducer api core" +SYCL_CTS,test_reduction "reducer api fp16" --allow-running-no-tests +SYCL_CTS,test_reduction "reducer api fp64" +SYCL_CTS,test_reduction reduction_with_identity_param_core --allow-running-no-tests +SYCL_CTS,test_reduction reduction_with_identity_param_even_item_core --allow-running-no-tests +SYCL_CTS,test_reduction reduction_with_identity_param_fp16 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_with_identity_param_item_twice_fp16 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_with_identity_param_even_item_fp16 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_with_identity_param_no_one_item_fp16 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_with_identity_param_fp64 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_with_identity_param_item_twice_fp64 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_with_identity_param_even_item_fp64 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_with_identity_param_no_one_fp64 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_with_identity_param_even_item_twice_core --allow-running-no-tests +SYCL_CTS,test_reduction reduction_with_identity_param_even_no_one_item_core --allow-running-no-tests +SYCL_CTS,test_reduction reduction_with_several_reductions_in_kernel --allow-running-no-tests +SYCL_CTS,test_reduction reduction_without_identity_param_core --allow-running-no-tests +SYCL_CTS,test_reduction reduction_without_identity_param_even_item_core --allow-running-no-tests +SYCL_CTS,test_reduction reduction_without_identity_param_fp16 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_without_identity_param_item_twice_fp16 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_without_identity_param_even_item_fp16 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_without_identity_param_no_one_item_fp16 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_without_identity_param_fp64 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_without_identity_param_item_twice_fp64 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_without_identity_param_even_item_fp64 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_without_identity_param_no_one_item_fp64 --allow-running-no-tests +SYCL_CTS,test_reduction reduction_without_identity_param_item_twice_core --allow-running-no-tests +SYCL_CTS,test_reduction reduction_without_identity_param_no_one_item_core --allow-running-no-tests +SYCL_CTS,test_sampler sampler_apis +SYCL_CTS,test_sampler sampler_constructors +SYCL_CTS,test_scalars "Fixed width types size equality" +SYCL_CTS,test_scalars scalars_interopability_types +SYCL_CTS,test_scalars scalars_sycl_types +SYCL_CTS,test_spec_constants "specialization_id api" +SYCL_CTS,test_spec_constants specialization_constants_class_with_member_fun +SYCL_CTS,test_spec_constants specialization_constants_defined_various_ways_core +SYCL_CTS,test_spec_constants specialization_constants_defined_various_ways_fp16 +SYCL_CTS,test_spec_constants specialization_constants_defined_various_ways_fp64 +SYCL_CTS,test_spec_constants specialization_constants_defined_various_ways_via_kb_core +SYCL_CTS,test_spec_constants specialization_constants_defined_various_ways_via_kb_fp16 +SYCL_CTS,test_spec_constants specialization_constants_defined_various_ways_via_kb_fp64 +SYCL_CTS,test_spec_constants specialization_constants_exceptions_throwing_core +SYCL_CTS,test_spec_constants specialization_constants_exceptions_throwing_fp16 +SYCL_CTS,test_spec_constants specialization_constants_exceptions_throwing_fp64 +SYCL_CTS,test_spec_constants specialization_constants_external_core +SYCL_CTS,test_spec_constants specialization_constants_external_fp16 +SYCL_CTS,test_spec_constants specialization_constants_external_fp64 +SYCL_CTS,test_spec_constants specialization_constants_multiple_core +SYCL_CTS,test_spec_constants specialization_constants_multiple_fp16 +SYCL_CTS,test_spec_constants specialization_constants_multiple_fp64 +SYCL_CTS,test_spec_constants specialization_constants_multiple_via_kb_core +SYCL_CTS,test_spec_constants specialization_constants_multiple_via_kb_fp16 +SYCL_CTS,test_spec_constants specialization_constants_multiple_via_kb_fp64 +SYCL_CTS,test_spec_constants specialization_constants_same_command_group_core +SYCL_CTS,test_spec_constants specialization_constants_same_command_group_fp16 +SYCL_CTS,test_spec_constants specialization_constants_same_command_group_fp64 +SYCL_CTS,test_spec_constants specialization_constants_same_name_inter_link_1st_tu_core +SYCL_CTS,test_spec_constants specialization_constants_same_name_inter_link_1st_tu_fp16 +SYCL_CTS,test_spec_constants specialization_constants_same_name_inter_link_1st_tu_fp64 +SYCL_CTS,test_spec_constants specialization_constants_same_name_inter_link_1st_tu_via_kb_core +SYCL_CTS,test_spec_constants specialization_constants_same_name_inter_link_1st_tu_via_kb_fp16 +SYCL_CTS,test_spec_constants specialization_constants_same_name_inter_link_1st_tu_via_kb_fp64 +SYCL_CTS,test_spec_constants specialization_constants_same_name_inter_link_2nd_tu_core +SYCL_CTS,test_spec_constants specialization_constants_same_name_inter_link_2nd_tu_fp16 +SYCL_CTS,test_spec_constants specialization_constants_same_name_inter_link_2nd_tu_fp64 +SYCL_CTS,test_spec_constants specialization_constants_same_name_inter_link_2nd_tu_via_kb_core +SYCL_CTS,test_spec_constants specialization_constants_same_name_inter_link_2nd_tu_via_kb_fp16 +SYCL_CTS,test_spec_constants specialization_constants_same_name_inter_link_2nd_tu_via_kb_fp64 +SYCL_CTS,test_spec_constants specialization_constants_same_name_stress_core +SYCL_CTS,test_spec_constants specialization_constants_same_name_stress_fp16 +SYCL_CTS,test_spec_constants specialization_constants_same_name_stress_fp64 +SYCL_CTS,test_spec_constants specialization_constants_same_name_stress_via_kb_core +SYCL_CTS,test_spec_constants specialization_constants_same_name_stress_via_kb_fp16 +SYCL_CTS,test_spec_constants specialization_constants_same_name_stress_via_kb_fp64 +SYCL_CTS,test_spec_constants specialization_constants_via_handler_core +SYCL_CTS,test_spec_constants specialization_constants_via_handler_fp16 +SYCL_CTS,test_spec_constants specialization_constants_via_handler_fp64 +SYCL_CTS,test_spec_constants specialization_constants_via_kernel_bundle_core +SYCL_CTS,test_spec_constants specialization_constants_via_kernel_bundle_fp16 +SYCL_CTS,test_spec_constants specialization_constants_via_kernel_bundle_fp64 +SYCL_CTS,test_stream stream_api_core +SYCL_CTS,test_stream stream_api_fp16 +SYCL_CTS,test_stream stream_api_fp64 +SYCL_CTS,test_stream stream_constructors +SYCL_CTS,test_stream "stream common reference semantics \(host\)" +SYCL_CTS,test_stream "stream common reference semantics \(kernel\)" +SYCL_CTS,test_sub_group +SYCL_CTS,test_sycl_external +SYCL_CTS,test_usm usm_aligned_alloc +SYCL_CTS,test_usm usm_aligned_alloc_device +SYCL_CTS,test_usm usm_aligned_alloc_host +SYCL_CTS,test_usm usm_aligned_alloc_shared +SYCL_CTS,test_usm usm_allocator_api +SYCL_CTS,test_usm usm_allocator_api_aligned +SYCL_CTS,test_usm usm_allocator_constructors +SYCL_CTS,test_usm usm_api_copy_handler_no_events +SYCL_CTS,test_usm usm_api_copy_queue_multiple_events +SYCL_CTS,test_usm usm_api_copy_queue_no_events +SYCL_CTS,test_usm usm_api_copy_queue_single_event +SYCL_CTS,test_usm usm_api_fill_handler_no_events +SYCL_CTS,test_usm usm_api_fill_queue_multiple_events +SYCL_CTS,test_usm usm_api_fill_queue_no_events +SYCL_CTS,test_usm usm_api_fill_queue_single_event +SYCL_CTS,test_usm usm_api_mem_advise_handler_no_events +SYCL_CTS,test_usm usm_api_mem_advise_queue_multiple_events +SYCL_CTS,test_usm usm_api_mem_advise_queue_no_events +SYCL_CTS,test_usm usm_api_mem_advise_queue_single_event +SYCL_CTS,test_usm usm_api_memcpy_handler_no_events +SYCL_CTS,test_usm usm_api_memcpy_queue_multiple_events +SYCL_CTS,test_usm usm_api_memcpy_queue_no_events +SYCL_CTS,test_usm usm_api_memcpy_queue_single_event +SYCL_CTS,test_usm usm_api_memset_handler_no_events +SYCL_CTS,test_usm usm_api_memset_queue_multiple_events +SYCL_CTS,test_usm usm_api_memset_queue_no_events +SYCL_CTS,test_usm usm_api_memset_queue_single_event +SYCL_CTS,test_usm usm_api_prefetch_handler_no_events +SYCL_CTS,test_usm usm_api_prefetch_queue_multiple_events +SYCL_CTS,test_usm usm_api_prefetch_queue_no_events +SYCL_CTS,test_usm usm_api_prefetch_queue_single_event +SYCL_CTS,test_usm "Tests for usm atomics with atomic64 support" +SYCL_CTS,test_usm "Tests for usm atomics with double-precision floating points" +SYCL_CTS,test_usm usm_fill_memset_memcpy +SYCL_CTS,test_usm usm_get_pointer_queries +SYCL_CTS,test_usm usm_malloc +SYCL_CTS,test_usm usm_malloc_device +SYCL_CTS,test_usm usm_malloc_host +SYCL_CTS,test_usm usm_malloc_shared +SYCL_CTS,test_vector_alias vector_ALIAS_int8_t +SYCL_CTS,test_vector_alias vector_ALIAS_uint8_t +SYCL_CTS,test_vector_alias vector_ALIAS_int16_t +SYCL_CTS,test_vector_alias vector_ALIAS_uint16_t +SYCL_CTS,test_vector_alias vector_ALIAS_int32_t +SYCL_CTS,test_vector_alias vector_ALIAS_uint32_t +SYCL_CTS,test_vector_alias vector_ALIAS_int64_t +SYCL_CTS,test_vector_alias vector_ALIAS_uint64_t +SYCL_CTS,test_vector_alias vector_ALIAS_float +SYCL_CTS,test_vector_alias vector_ALIAS_double +SYCL_CTS,test_vector_alias vector_ALIAS_half --allow-running-no-tests +SYCL_CTS,test_vector_api vector_API_bool +SYCL_CTS,test_vector_api vector_API_char +SYCL_CTS,test_vector_api vector_API_int +SYCL_CTS,test_vector_api vector_API_float +SYCL_CTS,test_vector_api vector_API_double +SYCL_CTS,test_vector_api vector_API_half --allow-running-no-tests +SYCL_CTS,test_vector_api vector_API_byte +SYCL_CTS,test_vector_constructors vector_CONSTRUCTORS_bool +SYCL_CTS,test_vector_constructors vector_CONSTRUCTORS_char +SYCL_CTS,test_vector_constructors vector_CONSTRUCTORS_int +SYCL_CTS,test_vector_constructors vector_CONSTRUCTORS_float +SYCL_CTS,test_vector_constructors vector_CONSTRUCTORS_double +SYCL_CTS,test_vector_constructors vector_CONSTRUCTORS_half --allow-running-no-tests +SYCL_CTS,test_vector_constructors vector_CONSTRUCTORS_byte +SYCL_CTS,test_vector_constructors vector_CONSTRUCTORS_int8_t +SYCL_CTS,test_vector_constructors vector_CONSTRUCTORS_int32_t +SYCL_CTS,test_vector_deduction_guides +SYCL_CTS,test_vector_load_store vector_LOAD_STORE_bool +SYCL_CTS,test_vector_load_store vector_LOAD_STORE_char +SYCL_CTS,test_vector_load_store vector_LOAD_STORE_int +SYCL_CTS,test_vector_load_store vector_LOAD_STORE_float +SYCL_CTS,test_vector_load_store vector_LOAD_STORE_double +SYCL_CTS,test_vector_load_store vector_LOAD_STORE_half --allow-running-no-tests +SYCL_CTS,test_vector_load_store vector_LOAD_STORE_byte +SYCL_CTS,test_vector_load_store vector_LOAD_STORE_int8_t +SYCL_CTS,test_vector_load_store vector_LOAD_STORE_int32_t +SYCL_CTS,test_vector_operators vector_OPERATORS_bool +SYCL_CTS,test_vector_operators vector_OPERATORS_char +SYCL_CTS,test_vector_operators vector_OPERATORS_int +SYCL_CTS,test_vector_operators vector_OPERATORS_float +SYCL_CTS,test_vector_operators vector_OPERATORS_double +SYCL_CTS,test_vector_operators vector_OPERATORS_half --allow-running-no-tests +SYCL_CTS,test_vector_operators vector_OPERATORS_byte +SYCL_CTS,test_vector_operators vector_OPERATORS_int8_t +SYCL_CTS,test_vector_operators vector_OPERATORS_int32_t +SYCL_CTS,test_vector_swizzle_assignment vector_SWIZZLE_ASSIGNMENT_bool +SYCL_CTS,test_vector_swizzle_assignment vector_SWIZZLE_ASSIGNMENT_char +SYCL_CTS,test_vector_swizzle_assignment vector_SWIZZLE_ASSIGNMENT_int +SYCL_CTS,test_vector_swizzle_assignment vector_SWIZZLE_ASSIGNMENT_float +SYCL_CTS,test_vector_swizzle_assignment vector_SWIZZLE_ASSIGNMENT_double +SYCL_CTS,test_vector_swizzle_assignment vector_SWIZZLE_ASSIGNMENT_half --allow-running-no-tests +SYCL_CTS,test_vector_swizzle_assignment vector_SWIZZLE_ASSIGNMENT_byte +SYCL_CTS,test_vector_swizzle_assignment vector_SWIZZLE_ASSIGNMENT_int8_t +SYCL_CTS,test_vector_swizzle_assignment vector_SWIZZLE_ASSIGNMENT_int32_t +SYCL_CTS,test_vector_swizzles vector_swizzles_bool +SYCL_CTS,test_vector_swizzles vector_swizzles_char +SYCL_CTS,test_vector_swizzles vector_swizzles_int +SYCL_CTS,test_vector_swizzles vector_swizzles_float +SYCL_CTS,test_vector_swizzles vector_swizzles_double +SYCL_CTS,test_vector_swizzles vector_swizzles_half --allow-running-no-tests +SYCL_CTS,test_vector_swizzles vector_swizzles_byte +SYCL_CTS,test_vector_swizzles vector_swizzles_int8_t +SYCL_CTS,test_vector_swizzles vector_swizzles_int32_t + diff --git a/.github/workflows/planned_testing.yml b/.github/workflows/planned_testing.yml index cc2c6737e..7edbefe7d 100644 --- a/.github/workflows/planned_testing.yml +++ b/.github/workflows/planned_testing.yml @@ -10,11 +10,15 @@ on: test_tornado: required: false type: boolean - default: true + default: true + test_sycl_cts: + required: false + type: boolean + default: true test_opencl_cts: required: false type: boolean - default: true + default: true target_list: required: false type: string @@ -69,7 +73,7 @@ jobs: llvm_version: ${{ inputs.llvm_version }} build_icd: - if: inputs.test_tornado || inputs.test_opencl_cts + if: inputs.test_tornado || inputs.test_opencl_cts || inputs.test_sycl_cts needs: [workflow_vars] strategy: matrix: @@ -149,3 +153,55 @@ jobs: with: target: ${{ matrix.target }} + build_dpcpp_native_host: + needs: [workflow_vars] + strategy: + matrix: + target: ${{ fromJson(inputs.target_list) }} + exclude: ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }} + + runs-on: ${{ contains(matrix.target, 'windows') && 'windows-2019' || 'ubuntu-22.04' }} + if : inputs.test_sycl_cts + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: build dpc++ artefact + uses: ./.github/actions/do_build_dpcpp + with: + target: ${{ matrix.target }} + + build_sycl_cts: + needs: [workflow_vars, build_icd, build_dpcpp_native_host] + strategy: + matrix: + target: ${{ fromJson(inputs.target_list) }} + # TODO: For now just linux x86_64 + exclude: ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }} + + runs-on: 'ubuntu-22.04' + if : inputs.test_sycl_cts + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: build dpc++ artefact + uses: ./.github/actions/do_build_sycl_cts + with: + target: ${{ matrix.target }} + + run_sycl_cts: + needs: [workflow_vars, create_ock_artefacts, build_dpcpp_native_host, build_sycl_cts] + strategy: + matrix: + target: ${{ fromJson(inputs.target_list) }} + # TODO: For now just linux x86_64 + exclude: ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }} + + runs-on: 'ubuntu-22.04' + if : inputs.test_sycl_cts + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: build dpc++ artefact + uses: ./.github/actions/run_sycl_cts + with: + target: ${{ matrix.target }} diff --git a/.github/workflows/planned_testing_caller.yml b/.github/workflows/planned_testing_caller.yml index 267b5c5fd..5e6c24b71 100644 --- a/.github/workflows/planned_testing_caller.yml +++ b/.github/workflows/planned_testing_caller.yml @@ -1,12 +1,13 @@ # Calling workflow for running planned style tests name: Run planned testing on: - pull_request: - paths: - - '.github/workflows/planned_testing.yml' - - '.github/workflows/planned_testing_caller.yml' - branches: - - main + # Note: use pull_request: for localized testing only + #pull_request: + # paths: + # - '.github/workflows/planned_testing.yml' + # - '.github/workflows/planned_testing_caller.yml' + # branches: + # - main schedule: # Run Mon-Fri at 7pm - cron: '00 19 * * 1-5' @@ -19,7 +20,9 @@ jobs: uses: ./.github/workflows/planned_testing.yml with: target_list: '["host_x86_64_linux", "host_aarch64_linux", "host_riscv64_linux", "host_i686_linux", "host_refsi_linux", "host_x86_64_windows" ]' + ock: true test_tornado: true + test_sycl_cts: true test_opencl_cts: true # Have a pull request setting which can be used to test the flow as best as possible # in a reasonable time