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

Parameterize CTS tests across all available adapters and devices. #2479

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

Conversation

aarongreig
Copy link
Contributor

No description provided.

@github-actions github-actions bot added ci/cd Continuous integration/devliery conformance Conformance test suite issues. specification Changes or additions to the specification native-cpu Native CPU adapter specific issues labels Dec 18, 2024
@aarongreig aarongreig force-pushed the aaron/parameterizeDeviceTests branch from 79a6543 to ea58e4d Compare December 18, 2024 15:54
@github-actions github-actions bot added the hip HIP adapter specific issues label Dec 18, 2024
@aarongreig aarongreig force-pushed the aaron/parameterizeDeviceTests branch 3 times, most recently from b572dcb to d881ba8 Compare December 20, 2024 12:04
aarongreig and others added 15 commits December 20, 2024 13:47
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
Also take out some loader specific known failures to see what happens.
@aarongreig aarongreig force-pushed the aaron/parameterizeDeviceTests branch from d881ba8 to 6a1d9ad Compare December 20, 2024 14:08
source/adapters/native_cpu/queue.cpp Outdated Show resolved Hide resolved
test/conformance/device/urDeviceGetGlobalTimestamps.cpp Outdated Show resolved Hide resolved
Comment on lines 59 to 66
UUR_KNOWN_FAILURE_ON(uur::CUDA{});
UUR_KNOWN_FAILURE_ON(uur::HIP{});
UUR_KNOWN_FAILURE_ON(uur::LevelZero{});
UUR_KNOWN_FAILURE_ON(uur::LevelZeroV2{});
UUR_KNOWN_FAILURE_ON(uur::NativeCPU{});

UUR_KNOWN_FAILURE_ON(uur::OpenCL{"Intel(R) FPGA Emulation Device"});
UUR_KNOWN_FAILURE_ON(uur::OpenCL{"Intel(R) UHD Graphics 770"});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could also be done like this:

Suggested change
UUR_KNOWN_FAILURE_ON(uur::CUDA{});
UUR_KNOWN_FAILURE_ON(uur::HIP{});
UUR_KNOWN_FAILURE_ON(uur::LevelZero{});
UUR_KNOWN_FAILURE_ON(uur::LevelZeroV2{});
UUR_KNOWN_FAILURE_ON(uur::NativeCPU{});
UUR_KNOWN_FAILURE_ON(uur::OpenCL{"Intel(R) FPGA Emulation Device"});
UUR_KNOWN_FAILURE_ON(uur::OpenCL{"Intel(R) UHD Graphics 770"});
UUR_KNOWN_FAILURE_ON(
uur::CUDA{},
uur::HIP{},
uur::LevelZero{},
uur::LevelZeroV2{},
uur::NativeCPU{},
uur::OpenCL{
"Intel(R) FPGA Emulation Device",
"Intel(R) UHD Graphics 770",
},
);

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

have consolidated like this wherever possible, not sure about how the formatting ends up (it doesn't allow one per line) although that will improve when we mandate a linked issue (presumably that will lengthen each adapter entry and force them onto separate lines)

test/conformance/device/urDevicePartition.cpp Outdated Show resolved Hide resolved
test/conformance/device/urDevicePartition.cpp Outdated Show resolved Hide resolved
test/conformance/device/urDevicePartition.cpp Outdated Show resolved Hide resolved
test/conformance/device/urDevicePartition.cpp Outdated Show resolved Hide resolved
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. hip HIP adapter specific issues native-cpu Native CPU adapter specific issues specification Changes or additions to the specification
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants