Skip to content

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

@coldav

Description

@coldav

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 #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
    • WorkGroupMemory/reduction_lambda.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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions