Skip to content

DPC++ daily 2021-10-02

Pre-release
Pre-release
Compare
Choose a tag to compare
@bb-sycl bb-sycl released this 02 Oct 17:32
· 132754 commits to sycl since this release
c91b3b8
[SYCL][XPTI] Revisit resource management strategy (#4494)

Global objects are typically destroyed on process tear down, but the order of the destructor calls is undefined. Since SYCL applications can potentially call SYCL APIs from global context, XPTI and all of its resources have to outlive user application. This patch refactors XPTI proxy library and framework to allocate global objects on heap and manages their lifetime based on communications from traced application.

Each user of XPTI (e.g. SYCL runtime) has to call xptiFrameworkInitialize() once prior to any other XPTI API. When application is done collecting trace information, it must close streams and then call xptiFrameworkFinalize().

The XPTI framework will maintain a reference counter, and will only free resources and unload libraries, when the counter hits 0. This will allow the subscribers to survive past DllMain call or global shared library destructor.