system_profiler SPDisplaysDataType
This will display something like:
Graphics/Displays:
Apple M4 Max:
Chipset Model: Apple M4 Max
Type: GPU
Bus: Built-In
Total Number of Cores: 40
Vendor: Apple (0x106b)
Metal Support: Metal 3
Displays:
Color LCD:
Display Type: Built-in Liquid Retina XDR Display
Resolution: 3456 x 2234 Retina
Main Display: Yes
Mirror: Off
Online: Yes
Automatically Adjust Brightness: Yes
Connection Type: Internal
- If your Mac has an M-series chip (M1, M2, M3, M4), use
system_profiler SPHardwareDataType | grep "Chip"
This will display something like:
Chip: Apple M4 Max
- Check Metal-supported GPUs with:
system_profiler SPDisplaysDataType | grep "Metal"
This will display something like:
Metal Support: Metal 3
sysctl -a | grep -i "gpu"
This will display something like:
debug.iogpu.wired_lwm_mb: 0
debug.iogpu.dynamic_lwm: 1
debug.iogpu.wired_limit: 0
debug.iogpu.rsrc_limit: 0
iogpu.wired_lwm_mb: 0
iogpu.dynamic_lwm: 1
iogpu.wired_limit_mb: 0
iogpu.rsrc_limit: 0
iogpu.debug_flags: 0
These parameters are related to Apple's integrated GPU (IOGPU) on macOS, particularly for memory management and debugging. Here’s a breakdown of what each parameter likely means:
- 1. debug.iogpu.wired_lwm_mb: 0
Low Water Mark (LWM) for wired memory, measured in MB.
A value of 0 suggests no minimum reserved wired memory for the GPU.
"Wired memory" means memory that cannot be swapped out to disk.
- 2. debug.iogpu.dynamic_lwm: 1
Dynamic Low Water Mark is enabled (1), meaning the GPU can dynamically allocate memory as needed instead of having a fixed lower bound.
This helps with efficient memory usage based on workload demand.
- 3. debug.iogpu.wired_limit: 0
Maximum wired memory limit for the GPU.
A value of 0 means no fixed limit, meaning macOS can allocate as much wired memory as necessary.
- 4. debug.iogpu.rsrc_limit: 0
Resource allocation limit for GPU processes.
A value of 0 suggests no strict cap, allowing resources to be dynamically allocated.
- 5. iogpu.wired_lwm_mb: 0
(Same as debug.iogpu.wired_lwm_mb but used in an active runtime configuration.)
- 6. iogpu.dynamic_lwm: 1
(Same as debug.iogpu.dynamic_lwm, indicating dynamic memory allocation is enabled.)
- 7. iogpu.wired_limit_mb: 0
(Same as debug.iogpu.wired_limit, meaning no fixed max wired memory limit for the GPU.)
- 8. iogpu.rsrc_limit: 0
(Same as debug.iogpu.rsrc_limit, meaning no strict limit on GPU resource allocation.)
- 9. iogpu.debug_flags: 0
Likely a debugging setting for the GPU driver.
A value of 0 means debugging is disabled.
Summary:
- Your GPU memory allocation is dynamic (dynamic_lwm: 1).
- No strict wired memory limits (wired_limit: 0, wired_lwm_mb: 0).
- No resource limits on GPU processes (rsrc_limit: 0).
- Debugging is turned off (debug_flags: 0).
This suggests that macOS is dynamically managing GPU memory without hard limits, ensuring optimal performance based on workload demand.