Linux Kernel & OS

Intel Compute Runtime 26.35.39758.21 fixes memory allocation for preemption surfaces

Key Takeaway

Intel's compute runtime now correctly defers backing for mid-thread preemption surfaces to prevent unnecessary local memory consumption.

Summary

Intel has released version 26.35.39758.21 of its Graphics Compute Runtime, which targets the Xe and Arc GPU architectures. This update addresses a memory management inefficiency regarding how mid-thread preemption surfaces are handled during device initialization.

Previously, these surfaces were created for every compute context and consumed local memory immediately, even on hardware that did not utilize them. The fix ensures that these specific surfaces are always deferred, regardless of current memory pressure thresholds, optimizing how local memory is allocated across compute contexts.

Memory management for preemption surfaces

  • Resource Allocation: Mid-thread preemption surfaces are generated for every compute context during device initialization, but the hardware only writes to them during thread preemption events.
  • Memory Pressure Logic: The previous implementation applied a memory pressure check that granted immediate backing to allocations if local memory usage was low, leading to wasted resources.
  • Optimization Fix: The update forces the deferring of backing for preemption surfaces, bypassing the standard memory pressure threshold to prevent unnecessary local memory occupation on all devices.
  • Affected Hardware: This change specifically impacts Intel Xe and Arc GPU users utilizing the compute runtime for GPGPU or compute workloads.

Why it matters

This update improves memory efficiency for developers and users running compute-heavy workloads on Intel Arc and Xe hardware. By preventing unnecessary local memory allocation for unused preemption surfaces, it allows for more predictable memory availability in multi-process environments.

Original reference: github.com →