From 305690f8718b66b30daa5d40f96de16f98a61c5c Mon Sep 17 00:00:00 2001 From: Bohdan Semenov Date: Fri, 10 Apr 2026 12:06:11 +0300 Subject: [PATCH] fix multi gpu setup --- contrib/Orochi/Orochi/Orochi.cpp | 3 ++- hiprt/impl/Compiler.cpp | 3 ++- hiprt/impl/Compiler.h | 3 ++- hiprt/impl/Context.cpp | 2 ++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/contrib/Orochi/Orochi/Orochi.cpp b/contrib/Orochi/Orochi/Orochi.cpp index f02d739..a987d31 100644 --- a/contrib/Orochi/Orochi/Orochi.cpp +++ b/contrib/Orochi/Orochi/Orochi.cpp @@ -938,8 +938,9 @@ oroDevice oroGetRawDevice( oroDevice dev ) oroDevice oroSetRawDevice( oroApi api, oroDevice dev ) { - ioroDevice d( dev ); + ioroDevice d{}; d.setApi( api ); + d.setDevice( dev ); return *(oroDevice*)&d; } diff --git a/hiprt/impl/Compiler.cpp b/hiprt/impl/Compiler.cpp index da2b567..7fb18e9 100644 --- a/hiprt/impl/Compiler.cpp +++ b/hiprt/impl/Compiler.cpp @@ -69,7 +69,8 @@ HIPRT_STATIC_ASSERT( !UseBakedCode || BakedCodeIsGenerated ); namespace hiprt { -Compiler::Compiler() + +void Compiler::init() { if ( UseBitcode || UseBakedCompiledKernel || hiprtcCreateProgram == nullptr || hiprtcCompileProgram == nullptr || hiprtcDestroyProgram == nullptr ) diff --git a/hiprt/impl/Compiler.h b/hiprt/impl/Compiler.h index a9c56f2..f9f2587 100644 --- a/hiprt/impl/Compiler.h +++ b/hiprt/impl/Compiler.h @@ -35,9 +35,10 @@ class Context; class Compiler { public: - Compiler(); ~Compiler(); + void init(); + Kernel getKernel( Context& context, const std::filesystem::path& moduleName, diff --git a/hiprt/impl/Context.cpp b/hiprt/impl/Context.cpp index 4f3ae08..094cae8 100644 --- a/hiprt/impl/Context.cpp +++ b/hiprt/impl/Context.cpp @@ -39,6 +39,8 @@ Context::Context( const hiprtContextCreationInput& input ) oroApi api = ( input.deviceType == hiprtDeviceAMD ) ? ORO_API_HIP : ORO_API_CUDA; oroCtxCreateFromRaw( &m_ctxt, api, input.ctxt ); m_device = oroSetRawDevice( api, input.device ); + checkOro( oroCtxSetCurrent( m_ctxt ) ); + m_compiler.init(); } Context::~Context()