GPU Compute Software
Ask questions about Intel® Graphics Compute software technologies, such as OpenCL* GPU driver and oneAPI Level Zero
232 Discussions

PVC 1550 does not have aspect::ext_intel_free_memory

JakubH
New Contributor I
586 Views

Hello,

 

(resubmitting a post because that got marked as spam for some reason, https://community.intel.com/t5/GPU-Compute-Software/PVC-1550-does-not-have-aspect-ext-intel-free-memory/m-p/1642234)

 

I just got my hands on the Intel Datacenter Max 1550 PVC GPUs on the Tiber devcloud, and it seems that they don't have the `aspect::ext_intel_free_memory`, so the function

```

my_device.get_info<sycl::ext::intel::info::device::free_memory>()
```
fails.


Is that really the case? Or am I doing something wrong?


I remember working with the training nodes in the Tiber devcloud (through the jupyterlab notebook), not sure which GPUs were there, but it worked there fine. Anyway, it seems very weird to me that your best GPU does not support such a simple function, which is why I am asking here.

 

For oneAPI toolkit version 2024.0.2 that is preinstalled on the system it does not work. I also tried versions 2024.2.0 and 2025.0.0 which I installed myself, also no luck.

 

Both OpenCL and Level Zero don't have the free memory function working.

 

I tried both flat and composite mode for the 2-stack card, but none of them worked.


Thanks for help,


Jakub


-------


btw here is a short code to check all GPUs if they have the free memory aspect:
```

#include <cstdio>
#include <string>
#include <vector>

#include <sycl/sycl.hpp>

int main()
{
    std::vector<sycl::device> devices = sycl::device::get_devices(sycl::info::device_type::gpu);

    for(size_t i = 0; i < devices.size(); i++)
    {
        const sycl::device & device = devices[i];
        printf("Device %2zu, name %s, platform %s, free mem: %s\n", i,
            device.get_info<sycl::info::device::name>().c_str(),
            device.get_info<sycl::info::device::platform>().get_info<sycl::info::platform::name>().c_str(),
            device.has(sycl::aspect::ext_intel_free_memory) ? "YES" : "NO");
    }

    return 0;
}

```
just `icpx -fsycl source.cpp -o program.x` and run.

0 Kudos
1 Solution
JakubH
New Contributor I
354 Views

Turns out, you have to set the ZES_ENABLE_SYSMAN environment variable to 1 to have the free memory aspect available. It was set on the jupyterlab training nodes by default, but setvars.sh itself does not set it (at least not by default).

export ZES_ENABLE_SYSMAN=1

It is mentioned somewhere, but it is quite hidden (as is the aspect and the free memory device info itself): https://github.com/triSYCL/sycl/blob/sycl/unified/master/sycl/doc/extensions/supported/sycl_ext_intel_device_info.md#free-global-memory

 

View solution in original post

0 Kudos
3 Replies
JakubH
New Contributor I
578 Views

so I went back to the training nodes, and also launched a PVC1100 instance in the tiber devcloud, and the results are interestingly weird.

 

On both systems, there is Ubuntu 22.04, there are 8 PVC1100 GPUs, driver version 1.3.27191, almost everything seems to be the same.

On the training nodes, 2024.2.1 is preinstalled, on my instance I installed 2024.2.1 myself (2024.0.2 is preinstalled).

 

On the training nodes through JupyterLab, the code snipped I showed in the original post, indicates that the aspect::ext_intel_free_memory aspect IS available, but only through the LevelZero.

On my instance in the devcloud, the aspect::ext_intel_free_memory is not available at all.

 

Although everything seems to be the same on both systems, (except for the *preinstalled* intel toolkit version, but I am using the same version 2024.2.1 on both), the results are different.

 

What is going on? What could be the issue here?

 

 

 

edit: I just tried a different instance on the tiber devcloud, where 2024.2.1 is preinstalled (with pvc1550 and opensuse leap os image), and the aspect is not there. still nothing.

0 Kudos
JakubH
New Contributor I
355 Views

Turns out, you have to set the ZES_ENABLE_SYSMAN environment variable to 1 to have the free memory aspect available. It was set on the jupyterlab training nodes by default, but setvars.sh itself does not set it (at least not by default).

export ZES_ENABLE_SYSMAN=1

It is mentioned somewhere, but it is quite hidden (as is the aspect and the free memory device info itself): https://github.com/triSYCL/sycl/blob/sycl/unified/master/sycl/doc/extensions/supported/sycl_ext_intel_device_info.md#free-global-memory

 

0 Kudos
JakubH
New Contributor I
275 Views

Also, according to Compiler Patch Release notes 2025.0.1:

"The Unified Runtime Level Zero Adapter enabled the usage of Level Zero System Management functionality by default."

So, since 2025.0.1, one does not need to set the ZES_ENABLE_SYSMAN environment variable, the free memory aspect is there by default (because the sysman is enabled by default).

This is true according to my quick testing.

2025.0.0 is not enough, 2025.0.1 compiler is needed.

0 Kudos
Reply