Skip to content

Commit bf62bc0

Browse files
authored
Merge pull request #2096 from nrspruit/fix_urEnqueueDeviceGlobalVariableWrite
[L0] Fix urEnqueueDeviceGlobalVariableWrite to use device specific mo…
2 parents 06c4cd0 + a8a492a commit bf62bc0

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

source/adapters/level_zero/kernel.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,11 +494,19 @@ ur_result_t urEnqueueDeviceGlobalVariableWrite(
494494
) {
495495
std::scoped_lock<ur_shared_mutex> lock(Queue->Mutex);
496496

497+
ze_module_handle_t ZeModule{};
498+
auto It = Program->ZeModuleMap.find(Queue->Device->ZeDevice);
499+
if (It != Program->ZeModuleMap.end()) {
500+
ZeModule = It->second;
501+
} else {
502+
ZeModule = Program->ZeModule;
503+
}
504+
497505
// Find global variable pointer
498506
size_t GlobalVarSize = 0;
499507
void *GlobalVarPtr = nullptr;
500508
ZE2UR_CALL(zeModuleGetGlobalPointer,
501-
(Program->ZeModule, Name, &GlobalVarSize, &GlobalVarPtr));
509+
(ZeModule, Name, &GlobalVarSize, &GlobalVarPtr));
502510
if (GlobalVarSize < Offset + Count) {
503511
setErrorMessage("Write device global variable is out of range.",
504512
UR_RESULT_ERROR_INVALID_VALUE,

0 commit comments

Comments
 (0)