oneapi-src/level-zero

How to detect iGPU free memory

zhewang1-intc opened this issue · 1 comments

Hi, I'd like to ask how to use level-zero/sycl to detect available memory of Intel iGPUs (e.g., Intel® Iris® Xe Graphics, PCI ID: 46A0, codename: Alder Lake-P).

I found relevant APIs in level-zero, such as zesDeviceEnumMemoryModules and zesMemoryGetState. Unfortunately, when I call zesDeviceEnumMemoryModules on a system with only iGPU, the return value of pCount is 0. Therefore, I cannot get the iGPU memory information through zesMemoryGetState.

i also found how to use sycl to detect free memory in this doc, here is the code

if (dev.has(aspect::ext_intel_free_memory)) {
  auto FreeMemory = dev.get_info<ext::intel::info::device::free_memory>();
}

I ran this func with set ZES_ENABLE_SYSMAN=1, but I got the free_mem size is 0.

note that these issues don't appear on Intel dGPUs.
Windows Task Manager can directly show the total and used memory of iGPU. How to implement this function? Are there any code examples?

Apparently, this issue is also there on Intel ARC A770 dGPUs (though in this case, it's for used memory), although it works on Intel Data Center Max 1100 dGPUs.

References:

  1. intel/compute-runtime#750
  2. IntelPython/dpctl#1761