Switch to per-executable contexts in the loader

- Per-executable contexts should be used from now on
  - Global contexts are left as is for now for backwards
    compatibility and will be phased out in follow up
    patches.

Change-Id: I6291abf865c7ed24ee71f5065e539afc23f5ce64
Este commit está contenido en:
Konstantin Zhuravlyov
2024-04-03 16:58:23 -04:00
cometido por Konstantin Zhuravlyov
padre 244ad319ac
commit b983c19729
Se han modificado 4 ficheros con 50 adiciones y 0 borrados
+13
Ver fichero
@@ -423,6 +423,12 @@ public:
size_t id,
hsa_default_float_rounding_mode_t default_float_rounding_mode);
ExecutableImpl(
const hsa_profile_t &_profile,
std::unique_ptr<Context> unique_context,
size_t id,
hsa_default_float_rounding_mode_t default_float_rounding_mode);
~ExecutableImpl();
hsa_status_t GetInfo(hsa_executable_info_t executable_info, void *value) override;
@@ -549,6 +555,7 @@ private:
amd::hsa::common::ReaderWriterLock rw_lock_;
hsa_profile_t profile_;
Context *context_;
std::unique_ptr<Context> unique_context_;
Logger logger_;
const size_t id_;
hsa_default_float_rounding_mode_t default_float_rounding_mode_;
@@ -578,6 +585,12 @@ public:
const char *options,
hsa_default_float_rounding_mode_t default_float_rounding_mode = HSA_DEFAULT_FLOAT_ROUNDING_MODE_DEFAULT) override;
Executable* CreateExecutable(
std::unique_ptr<Context> isolated_context,
hsa_profile_t profile,
const char *options,
hsa_default_float_rounding_mode_t default_float_rounding_mode = HSA_DEFAULT_FLOAT_ROUNDING_MODE_DEFAULT) override;
hsa_status_t FreezeExecutable(Executable *executable, const char *options) override;
void DestroyExecutable(Executable *executable) override;