intel / intel/llvm

[SYCL][NATIVE_CPU] Process unsupported and xfails shown by e2e

Open
#20,142 2 comments 0 reactions 0 assignees View on GitHub
bug native-cpu
Dominant language
LLVM
Stars
1.5k
Forks
854
Avg merge
3d 17h
Merged PRs (30d)
137

Description

We need to investigate and track the UNSUPPORTED and XFAIL list for native cpu to decide whether they really should be unsupported and mark them as appropriate. This will be processed by the team which will take over the Native CPU work. The tests which show issues are shown in https://github.com/intel/llvm/pull/19961 and marked as UNSUPPORTED or XFAIL.

The following are marked across folders as unsupported:

* ESIMD
- This looks likely to be really unsupported and possibibly will never be supported. Does not compile
* InvokeSimd
- Seems to make esimd references. Does not compile
* bindless_images
- Looks to be currently unsupported but could reasonably be enabled.
* Memory/Thread/Address Sanitizer
- None of these work but would make sense to enable for native cpu
* SYCLBIN
- currently all fail, but should be investigated as all fail at the ClangLinkerWrapper stage
* Level zero
- this may relate to how the lit tests decide when to run as native cpu does not use the level zero path
- includes Adapters/queue_submit_mode.cpp
* BFloat16
- This should probably be feasible to use libclc to emulate, but has never been prioritized.
- also includes DeviceLib/bfloat16_conversion_dlopen_test.cpp, DeviceLib/bfloat16_conversion_test.cpp
* image
- legacy image support has never been added, and probably never should in favour of getting bindless images to work
- Includes individual test Adapters/enqueue-arg-order-image.cpp
* DeviceLib/imf

* DeviceGlobal is probably also unsupported but marked unsupported across multiple tests
- DeviceGlobal/device_global_arrow.cpp
- DeviceGlobal/device_global_arrow_dis.cpp
- DeviceGlobal/device_global_copy.cpp
- DeviceGlobal/device_global_device_only.cpp
- DeviceGlobal/device_global_device_only_dis.cpp
- DeviceGlobal/device_global_operator_passthrough.cpp
- DeviceGlobal/device_global_operator_passthrough_dis.cpp
- DeviceGlobal/device_global_subscript.cpp
- DeviceGlobal/device_global_subscript_dis.cpp

* Experimental clock may be unsupported so marked as such
* sycl/test-e2e/Experimental/clock.cpp

* KernelAndProgram fails. These hit asserts etc rather than throw an exception - not sure how feasible to resolve this it is, so mark as unsupported
- KernelAndProgram/build-log.cpp
- KernelAndProgram/cache-build-result.cpp
- KernelAndProgram/undefined-symbol.cpp

The following are individual fails, currently mark as xfail:

* Assert/check_resource_leak.cpp
* Basic/built-ins/marray_math.cpp
* Basic/vector/load_store.cpp
* Complex/sycl_complex_math_test.cpp
* Complex/sycl_complex_operator_test.cpp
* Compression/no_zstd_warning.cpp
* DeviceImageDependencies/objects.cpp
* syclcompat/launch/launch_policy.cpp
* syclcompat/launch/launch_policy_lmem.cpp
* syclcompat/math/math_compare.cpp
* syclcompat/math/math_complex.cpp
* syclcompat/math/math_ops.cpp
* syclcompat/memory/usm_allocations.cpp
* syclcompat/memory/usm_shared_allocations.cpp
* NewOffloadDriver/multisource.cpp
* NonUniformGroups/chunk_algorithms.cpp
* SubGroup/load_store.cpp
* SubGroupMask/Basic.cpp
* SubGroupMask/GroupSize.cpp

After running (full) we see:

* AOT. Probably checking wrong flags for deciding to run. set as unsupported
- AOT/double.cpp
- AOT/half.cpp
- DeviceArchitecture/device_architecture_on_device_aot.cpp
- DeviceCodeSplit/aot-cpu.cpp
- DeviceLib/cmath-aot.cpp
- NewOffloadDriver/aot-cpu.cpp
- SpecConstants/2020/non_native/SpecConstBuffer.cpp
- SpecConstants/2020/non_native/cpu.cpp

* CHECK: fails
- Assert/assert_in_kernels.cpp
- Assert/assert_in_multiple_tus.cpp
- Assert/assert_in_multiple_tus_one_ndebug.cpp
- Assert/assert_in_one_kernel.cpp
- Assert/assert_in_simultaneous_kernels.cpp
- Basic/kernel_bundle/kernel_bundle_api.cpp
- Basic/subdevice_pi.cpp
- KernelAndProgram/fp32-precise-fdiv.cpp
- KernelAndProgram/multiple-kernel-linking.cpp
- KernelCompiler/sycl_lifetimes.cpp
- Tracing/code_location_queue_parallel_for.cpp

* No aspects found for device unknown
- Basic/device_config_file_consistency.cpp

* UR_RESULT_ERROR_UNSUPPORTED_FEATURE
- Basic/buffer/reinterpret.cpp
- DeviceGlobal/device_global_static.cpp (set as unsupported)
- FreeFunctionKernels/free_function_kernel_local_memory.cpp
- GroupAlgorithm/root_group.cpp
- QueueFlushing/queue_flushing.cpp
- WorkGroupScratchMemory/copy_dynamic_size.cpp
- WorkGroupScratchMemory/dynamic_alloc_local_accessor.cpp
- WorkGroupScratchMemory/dynamic_alloc_ptr_alias.cpp
- WorkGroupScratchMemory/dynamic_allocation.cpp
- WorkGroupScratchMemory/dynamic_unused.cpp

* Cannot resolve external symbols, linking is unsupported for the backend
- DeviceImageDependencies/NewOffloadDriver/dynamic.cpp
- DeviceImageDependencies/NewOffloadDriver/math_device_lib.cpp
- DeviceImageDependencies/NewOffloadDriver/singleDynamicLibrary.cpp
- DeviceImageDependencies/dynamic.cpp
- DeviceImageDependencies/math_device_lib.cpp
- DeviceImageDependencies/singleDynamicLibrary.cpp

* Undefined function
- DeviceLib/rand_test.cpp

* No kernel named ...
- DeviceLib/separate_compile_test.cpp
- IntermediateLib/multi_lib_app.cpp

* Assert failed
- Experimental/launch_queries/max_sub_group_size.cpp

* Kernel is incompatible with all devices in devs
- FreeFunctionKernels/properties.cpp
* UR_RESULT_ERROR_INVALID_NULL_HANDLE
- KernelAndProgram/spec_constants_after_link.cpp

* exit status
- KernelCompiler/sycl.cpp
- OptionalKernelFeatures/is_compatible/is_compatible_spir64.cpp
- ProfilingTag/profiling_queue.cpp
- Regression/barrier_with_work.cpp
- Regression/usm_malloc_shared.cpp
- SubGroup/attributes.cpp
- USM/badmalloc.cpp
- syclcompat/atomic/atomic_arith.cpp
- syclcompat/atomic/atomics_verification_usmnone.cpp

* kernel_bundle creation from source not supported
- KernelCompiler/sycl_basic.cpp
- KernelCompiler/sycl_namespaces.cpp
- KernelCompiler/sycl_overload.cpp
* Apparently this device does not support `sycl` source kernel bundle extension: SYCL Native CPU
- KernelCompiler/sycl_device_globals.cpp
- KernelCompiler/sycl_include_paths.cpp
- KernelCompiler/sycl_join.cpp
- KernelCompiler/sycl_time_trace.cpp
* UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION
- SubGroup/info.cpp
- syclcompat/device/device.cpp

* Timeout (mark as unsupported for now)
- Regression/kernel_name_class.cpp

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.