-
Notifications
You must be signed in to change notification settings - Fork 117
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
benie/test adapters #1020
Closed
Closed
benie/test adapters #1020
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…i-calls-adapters Test parts of API with libFuzzer.
[UR] Remove `cuda_`/`hip_` prefixes from tests files.
[adapters] update to latest sycl (with 0.7.1 tag)
…graph (#10789) This PR contains a set of changes that implement throwing an exception when a feature unsupported by [sycl_ext_oneapi_graph](https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/proposed/sycl_ext_oneapi_graph.asciidoc) is used. An error is thrown when an application uses the following features with the graph extension: * An unsupported extension. * Querying the event returned from graph submission for profiling information. * Level Zero immediate command-list (see intel/llvm#10467) * Specialization constants, kernel bundles, or reductions are used in a graph node. ## Authors Co-authored-by: Pablo Reble <pablo.reble@intel.com> Co-authored-by: Julian Miller <julian.miller@intel.com> Co-authored-by: Ben Tracy <ben.tracy@codeplay.com> Co-authored-by: Ewan Crawford <ewan@codeplay.com> Co-authored-by: Maxime France-Pillois <maxime.francepillois@codeplay.com>
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
This change is necessary to workaround a delightful bug in either HIP runtime, or the HIP spec. It's discussed at length in github.com/intel/llvm/issues/7252 but for the purposes of this patch, it suffices to say that a call to `hipMemPrefetchAsync` is *required* for correctness in the face of global atomic operations on (*at least*) shared USM allocations. The architecture of this change is slightly strange on first sight in that we reduntantly track allocation information in several places. The context now keeps track of all USM mappings. We require a mapping of pointers to the allocated size, but these allocations aren't pinned to any particular queue or HIP stream. The `hipMemPrefetchAsync`, however, requires the associated HIP stream object, and the size of the allocation. The stream comes hot-off-the-queue *only* just before a kernel is launched, so we need to defer the prefetch until we have that information. Finally, the kernel itself keeps track of pointer arguments in a more accessible way so we can determine which of the kernel's pointer arguments do, in-fact, point to USM allocations.
In the CUDA/HIP adapters `urKernelSetArgValue` was being used to implement both `urKernelSetArgValue` & `urKernelSetArgLocal`. However, if the validation layer is enabled in UR then the path to set local arg is never taken since it includes a check that `pArgValue` is not null. This PR: * Implements `urKernelSetArgLocal` for CUDA/HIP adapters * Changes `pi2ur` to call `urKernelSetArgLocal` when `arg_value` is `nullptr` * Implements `urKernelSetArgLocal` for L0 adapter - this just calls back into `urKernelSetArgValue`.
In the CUDA/HIP adapters `urKernelSetArgValue` was being used to implement both `urKernelSetArgValue` & `urKernelSetArgLocal`. However, if the validation layer is enabled in UR then the path to set local arg is never taken since it includes a check that `pArgValue` is not null. This PR: * Implements `urKernelSetArgLocal` for CUDA/HIP adapters * Changes `pi2ur` to call `urKernelSetArgLocal` when `arg_value` is `nullptr` * Implements `urKernelSetArgLocal` for L0 adapter - this just calls back into `urKernelSetArgValue`.
In the HIP adapter the HIP module is not set until the program is built with `urProgramBuild`, therefore we should check that the module actually needs to be unloaded in `urProgramRelease`. The following will result in a failure, but should still be valid UR trace: ```cpp uint8_t *source = "<some ptx>"; ur_program_handle_t prog; urProgramCreate(context, device, sizeof(source), ptxSource, nullptr, &prog); urProgramRelease(prog); // fails when it tries to unload the module. ```
Fix the license headers at the top of each source file in the unified runtime directory. --------- Co-authored-by: Alexey Bader <alexey.bader@intel.com>
Fix the license headers at the top of each source file in the unified runtime directory. --------- Co-authored-by: Alexey Bader <alexey.bader@intel.com>
While attempting to enable the Level-Zero and OpenCL adapters at the same time git will report an error due to the OpenCL tag not existing in the intel/llvm clone use for the Level-Zero adapter. Furthermore, if I wanted to test separate bug fixes for the CUDA and HIP adapters from different sources, this would also not be possible. This patch uses a separate FetchSource for each adapter to allow each adapters source to be fetched independently of the others and moves those clones into the build directory. This does result in additional git clones when enabling multiple adapters and again in multiple build directories but avoids conflicting remote URL's or multiple build configurations trampling on each others checked out tags.
and re-name the label to 'fuzz-short' for easier usage.
…e-clones [cmake] Use separate FetchSource's per adapter
This change enables conformance tests on HW with adapters. Tests that currently do not pass are ignored, but in the future, when they are all fixed, tests should pass without using this functionality.
[cts] Add adapters ignore lists for conformance tests
Rather than having a command-list wide barrier and separate signal command, have a single barrier command which signals the UR command-buffer signal event and waits on the events that correspond to sync-points. Co-authored-by: Pablo Reble <pablo.reble@intel.com>
Co-authored-by: Martin Morrison-Grant <martin.morrisongrant@codeplay.com> Co-authored-by: Petr Vesely <petr.vesely@codeplay.com> Co-authored-by: Callum Fare <callum@codeplay.com> Co-authored-by: aarongreig <aarongreig01@gmail.com>
- Update Cmake to use local adapter source files - Update license headers - Add virtual memory entrypoints to interface_loader - Add .clang-format - Update CODEOWNERS file for OpenCL adapter
[HIP] Re add extended deleters
…#969) - Upstream CI is unable to use find_package() for OpenCL. This commit allows it to set the target manually and skip the call to find_package(). - This commit also changes UR to use the OpenCL::OpenCL target. It provides a simpler alternative to import the opencl library without having to use add_library().
Set [unified-runtime-command-buffer-write](https://github.com/orgs/oneapi-src/teams/unified-runtime-command-buffer-write] as the codeowners of the command-buffer experimental feature. Including: * Adapter implementations * Specification document * YML definition
…rror_checking Revert "[UR][L0] Propagate errors from `USMAllocationMakeResident`"
…eowners Set command-buffer experimental feature codeowners
- Implement initial subset of command buffer functions for CUDA - Report command buffer extension as supported from device query - Some additional methods and refactoring to reuse existing adapter code
[CUDA] Fix queue creation with native handle
[UR][HIP] Enable kernel finalization using comgr
Add `unified-runtime-bindless-images-write` team as code owners for anything related to images.
…owners CODEOWNERS for Bindless Images
[Command-buffer][L0] Reset sync-point events
Print all CTS outputs (from gtest) in CI.
…iant [HIP][CUDA] Change unions in ur_mem_handle_t_ to stdvariant
…me-main-changes-into-adapters
…-changes-into-adapters Bump adapters branch
This is required after oneapi-src#961
…some-main-changes-into-adapters Revert "Bump adapters branch"
[CUDA][EXP] CUDA adapter support for command buffers
This patch moves the `test-adapter-cuda` and `test-adapter-hip` test suites out of the `test/conformance` directory. The goal of this move is to ensure that all adapters will be tested with the same set and number of conformance tests, making conformance pass rates directly comparable between adapters. Up to now the CUDA and HIP adapters have included additional unit tests of internals which skews pass rates.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ur::assertion
withUR_CHECK_ERROR
(#10986)ur::assertion
withUR_CHECK_ERROR
(#10986)USMAllocationMakeResident
USMAllocationMakeResident
"std::get<BufferMem>