| ======================================= |
| Peak Tops Limiter (PTL) sysfs Interface |
| ======================================= |
| |
| Overview |
| -------- |
| The Peak Tops Limiter (PTL) sysfs interface enables users to control and |
| configure the PTL feature for each GPU individually. All PTL-related |
| sysfs files are located under `/sys/class/drm/cardX/device/ptl/`, where |
| `X` is the GPU index. Through these files, users can enable or disable |
| PTL, set preferred data formats, and query supported formats for each GPU. |
| |
| PTL sysfs files |
| ---------------- |
| The following files are available under `/sys/class/drm/cardX/device/ptl/`: |
| |
| - `ptl_enable` |
| - `ptl_format` |
| - `ptl_supported_formats` |
| |
| PTL Enable/Disable |
| ------------------ |
| File: `ptl_enable` |
| Type: Read/Write (rw) |
| |
| Read: Returns the current PTL status as a string: `enabled` if PTL |
| is active, or `disabled` if inactive. |
| |
| Write: |
| |
| - Write `1` or `enabled` to enable PTL |
| - Write `0` or `disabled` to disable PTL |
| |
| Examples:: |
| |
| # Query PTL status |
| cat /sys/class/drm/card1/device/ptl/ptl_enable |
| # Output: enabled |
| |
| # Enable PTL |
| sudo bash -c "echo 1 > /sys/class/drm/card1/device/ptl/ptl_enable" |
| |
| # Disable PTL |
| sudo bash -c "echo 0 > /sys/class/drm/card1/device/ptl/ptl_enable" |
| |
| PTL Format (Preferred Data Formats) |
| ----------------------------------- |
| File: `ptl_format` |
| Type: Read/Write (rw) |
| |
| Read: Returns the two preferred formats, e.g. `I8,F32`. |
| |
| Write: Accepts two formats separated by a comma, e.g. `I8,F32`. |
| |
| - Both formats must be supported and different. |
| - If an invalid format is provided (not supported, or both formats are the |
| same), the driver will return "write error: Invalid argument". |
| |
| Examples:: |
| |
| # Query PTL formats |
| cat /sys/class/drm/card1/device/ptl/ptl_format |
| # Output: I8,F32 |
| |
| # Set PTL formats |
| sudo bash -c "echo I8,F32 > /sys/class/drm/card1/device/ptl/ptl_format" |
| |
| Supported Formats |
| ----------------- |
| File: `ptl_supported_formats` |
| Type: Read-only (r) |
| |
| Read: Returns a comma-separated list of supported formats, e.g. |
| `I8,F16,BF16,F32,F64`. |
| |
| Example:: |
| |
| # Check supported formats |
| cat /sys/class/drm/card1/device/ptl/ptl_supported_formats |
| # Output: I8,F16,BF16,F32,F64 |
| |
| Behavioral Notes |
| ---------------- |
| - PTL formats can only be set when PTL is enabled. |
| - If PTL is disabled, `ptl_format` returns `N/A`. |
| - Only two formats can be set at a time, and they must be from the supported set and different.. |
| - All commands support per-GPU targeting. |
| - Root permission is required to enable/disable PTL or change formats. |
| - If the hardware does not support PTL, the PTL sysfs directory will not |
| be created. |
| |
| Implementation |
| -------------- |
| The PTL sysfs nodes are implemented in `drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c`. |