Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions unified-runtime/source/adapters/level_zero/device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1790,12 +1790,19 @@ ur_device_handle_t_::useImmediateCommandLists() {
bool isDG2OrNewer = this->isIntelDG2OrNewer();
bool isDG2SupportedDriver =
this->Platform->isDriverVersionNewerOrSimilar(1, 5, 30820);
bool isIntelMTLDevice = this->isIntelMTL();
bool isIntelARLDevice = this->isIntelARL();
// Disable immediate command lists for DG2 devices on Windows due to driver
// limitations.
bool isLinux = true;
#ifdef _WIN32
isLinux = false;
#endif
// Disable immediate command lists for Intel MTL/ARL devices on Linux by
// default due to driver limitations.
if ((isIntelMTLDevice || isIntelARLDevice) && isLinux) {
return NotUsed;
}
if ((isDG2SupportedDriver && isDG2OrNewer && isLinux) || isPVC() ||
isNewerThanIntelDG2()) {
return PerQueue;
Expand Down
12 changes: 12 additions & 0 deletions unified-runtime/source/adapters/level_zero/device.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,18 @@ struct ur_device_handle_t_ : ur_object {
// Checks if this GPU is an Intel Flex GPU or Intel Arc Alchemist
bool isDG2() { return (ZeDeviceProperties->deviceId & 0xff00) == 0x5600; }

bool isIntelMTL() {
return (ZeDeviceProperties->vendorId == 0x8086 &&
ZeDeviceIpVersionExt->ipVersion >= 0x03118000 &&
ZeDeviceIpVersionExt->ipVersion <= 0x0311c004);
}

bool isIntelARL() {
return (ZeDeviceProperties->vendorId == 0x8086 &&
ZeDeviceIpVersionExt->ipVersion >= 0x03128000 &&
ZeDeviceIpVersionExt->ipVersion <= 0x03128004);
}

bool isIntelDG2OrNewer() {
return (ZeDeviceProperties->vendorId == 0x8086 &&
ZeDeviceIpVersionExt->ipVersion >= 0x030dc000);
Expand Down
Loading