HIP program state re-initialization logic

This commit is to support kernels dynamically loaded thru means such as
dlopen() after HIP runtime initializes.
Tento commit je obsažen v:
Wen-Heng (Jack) Chung
2018-05-18 10:14:46 -05:00
rodič 9ac5ac08fd
revize dab1a0f9db
3 změnil soubory, kde provedl 124 přidání a 32 odebrání
+11 -5
Zobrazit soubor
@@ -92,13 +92,19 @@ namespace hip_impl
hipStream_t stream,
void** kernarg)
{
const auto it0 = functions().find(function_address);
auto it0 = functions().find(function_address);
if (it0 == functions().cend()) {
throw runtime_error{
"No device code available for function: " +
name(function_address)
};
// Re-init device code maps once again to help locate kernels
// loaded after HIP runtime initialization via means such as
// dlopen().
it0 = functions(true).find(function_address);
if (it0 == functions().cend()) {
throw runtime_error{
"No device code available for function: " +
name(function_address)
};
}
}
auto agent = target_agent(stream);