-
Notifications
You must be signed in to change notification settings - Fork 124
Description
When tracing is enabled via sycl using the SYCL_UR_TRACE environment variable, some adapters also enable tracing of internal UR calls (see here).
Regular UR tracing works by printing the function call (--->urDeviceFoo) before calling into the adapter, and the arguments after the adapter returns ((ur_device_handle_t hFoo, int Bar) -> UR_RESULT_SUCCESS). When the UR adapter also prints, it becomes interleaved in this output, making it hard to read and test against.
This was ok when we still used PI tracing as PI put the function name and each argument on separate lines, but UR tracing outputs everything on a single line.
This has resulted in some SYCL E2E requiring awkward rewrites or bypassing adapter tracing altogether, e.g. intel/llvm#15167
Possible fixes include:
- Update ur_print.hpp to print over multiple lines like PI did
- Don't enable adapter-specific printing by default (has the downside of internal UR calls being invisible)
- Add an option to suppress adapter-specific printing for some E2E tests to use