Skip to content
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

Improvements to align CTS and Spec for Device #2486

Draft
wants to merge 12 commits into
base: main
Choose a base branch
from

Conversation

martygrant
Copy link
Contributor

@martygrant martygrant commented Dec 19, 2024

  • Rework urDeviceGetInfoTest to move all enums to their own tests instead of a switch case (Restructure GetInfo CTS tests to use separate tests instead of a switch #2290)
  • Remove the UR/OpenCL enum map function - no point maintaining both a switch case and a separate mapping function
  • Update some spec wording for consistency
  • Add missing info enums to OpenCL adapater
  • Add new urDevicePartition test for checking UR_DEVICE_INFO_PARENT_DEVICE
  • Move UUR_RETURN_ON_FATAL_FAILURE and UUR_ASSERT_SUCCESS_OR_UNSUPPORTED to join similar macros in checks.h

aarongreig and others added 12 commits December 19, 2024 10:22
The new `UUR_KNOWN_FAILURE_ON` macro can be used to skip tests on
devices where the test is known to fail. This can be done in the
following situations.

For all devices in an adapter:

```cpp
UUR_KNOWN_FAILURE_ON(uur::LevelZero{});
```

By substring match of the device name within and adapter:

```cpp
UUR_KNOWN_FAILURE_ON(uur::OpenCL{"Intel(R) UHD Graphics 770"});
```

> Note: This invocation is used in a few places in this patch to
> facilitate clean runs when using this decice.

In certain test suits, where there is no access to a device, the
platform name is used instead:

```cpp
UUR_KNOWN_FAILURE_ON(uur::CUDA{"NVIDIA CUDA BACKEND"});
```

When neither device or platform is available in a test suite, the name
is ignored and only the adapter backend is used to determine if the test
is a known failure.

The macro is variadic making it possible to specify known failures for
multiple adapters in a single place and multiple names can also be provided
per adapter:

```cpp
UUR_KNOWN_FAILURE_ON(
    uur::OpenCL{
        "Intel(R) UHD Graphics 750",
        "Intel(R) UHD Graphics 770",
    },
    uur::HIP{"Radeon RX 7700"},
    uur::NativeCPU{});
```
There are a couple left over:

Where fails were specific to cfi config these will need to wait for a
compile def so the KNOWN_FAILs can be ifdef'd

The hip usm pool match entries just seem wrong, hip does have pool
support so at least the basic pool tests should be passing. Suspect out
of date match file, CI testing will validate
There are a couple left over:

Where fails were specific to cfi config these will need to wait for a
compile def so the KNOWN_FAILs can be ifdef'd

The hip usm pool match entries just seem wrong, hip does have pool
support so at least the basic pool tests should be passing. Suspect out
of date match file, CI testing will validate
- Rework urDeviceGetInfoTest to move all enums to their own tests instead of a switch case (oneapi-src#2290)
- Remove the UR/OpenCL enum map function - no point maintaining both a switch case and a separate mapping function
- Update some spec wording for consistency
- Add missing info enums to OpenCL adapater
- Add new urDevicePartition test for checking UR_DEVICE_INFO_PARENT_DEVICE
- Move UUR_RETURN_ON_FATAL_FAILURE and UUR_ASSERT_SUCCESS_OR_UNSUPPORTED to join similar macros in checks.h
@martygrant martygrant force-pushed the martin/device-cts-spec-gap branch from a2bc1b8 to e3f06b9 Compare December 19, 2024 15:55
@github-actions github-actions bot added ci/cd Continuous integration/devliery loader Loader related feature/bug conformance Conformance test suite issues. images UR images specification Changes or additions to the specification experimental Experimental feature additions/changes/specification level-zero L0 adapter specific issues cuda CUDA adapter specific issues hip HIP adapter specific issues opencl OpenCL adapter specific issues native-cpu Native CPU adapter specific issues labels Dec 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci/cd Continuous integration/devliery conformance Conformance test suite issues. cuda CUDA adapter specific issues experimental Experimental feature additions/changes/specification hip HIP adapter specific issues images UR images level-zero L0 adapter specific issues loader Loader related feature/bug native-cpu Native CPU adapter specific issues opencl OpenCL adapter specific issues specification Changes or additions to the specification
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants