You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[sycl-rel] Cherry-pick patches for sycl_ext_intel_device_info (#18886)
Cherry-pick commits that reached the internal branch between intel/llvm
cutoff and release branch pulldown.
Patches included:
---
[SYCL][Doc] Add new device descriptors to sycl_ext_intel_device_info extension (#17386)
Patch-by: Artur Gainullin <[email protected]>
---
[SYCL][CUDA] Add implementation of new device descriptors (#17590)
Tests were not added because there are existing conformance tests which
cover this functionality.
Patch-by: Artur Gainullin <[email protected]>
---
[UR][CUDA] Use different throttle reasons API based on CUDA version (#17719)
Our pre-commit CI uses CUDA 12.6 but nightly uses CUDA 12.1, it turns
out nvml which is part of CUDA 12.6 has
nvmlDeviceGetCurrentClocksEventReasons API, but nvml which is part of
CUDA 12.1 doesn't have it, but only supports older deprecated
nvmlDeviceGetCurrentClocksThrottleReasons.
NVML doesn't provide a version macro to check the support for that API,
so use new API nvmlDeviceGetCurrentClocksEventReasons based on cuda
version.
Patch-by: Artur Gainullin <[email protected]>
|`ext::intel::info::device::current_clock_throttle_reasons`|`std::vector<ext::intel::throttle_reason>`| Returns the set of throttle reasons describing why the frequency is being limited by the hardware. Returns empty set if frequency is not throttled. |
536
+
537
+
538
+
## Aspects ##
539
+
540
+
A new aspect, `ext_intel_current_clock_throttle_reasons`, is added.
541
+
542
+
543
+
## Error Condition ##
544
+
545
+
Throws a synchronous `exception` with the `errc::feature_not_supported` error code if the device does not have `aspect::ext_intel_current_clock_throttle_reasons`.
546
+
547
+
## Example Usage ##
548
+
549
+
Then the current clock throttle reasons can be obtained using the standard `get_info()` interface.
550
+
551
+
```
552
+
if (dev.has(aspect::ext_intel_current_clock_throttle_reasons)) {
|`ext::intel::info::device::fan_speed`|`int32_t`| Returns the current speed of device's fan (as a percentage of the maximum speed of the fan). If fan speed can't be measured then returns -1. If there are multiple fans, then returns maximum value. |
571
+
572
+
573
+
## Aspects ##
574
+
575
+
A new aspect, `ext_intel_fan_speed`, is added.
576
+
577
+
578
+
## Error Condition ##
579
+
580
+
Throws a synchronous `exception` with the `errc::feature_not_supported` error code if the device does not have `aspect::ext_intel_fan_speed`.
581
+
582
+
## Example Usage ##
583
+
584
+
Then the fan speed can be obtained using the standard `get_info()` interface.
585
+
586
+
```
587
+
if (dev.has(aspect::ext_intel_fan_speed)) {
588
+
auto FanSpeed = dev.get_info<ext::intel::info::device::fan_speed>();
589
+
}
590
+
```
591
+
592
+
# Power limits #
593
+
594
+
New device descriptors are added which provide the maximum and minimum power limits for the device.
595
+
596
+
## Version ##
597
+
598
+
The extension supports this query in version 7 and later.
599
+
600
+
## Device Information Descriptors ##
601
+
602
+
| Device Descriptors | Return Type | Description |
|`ext::intel::info::device::min_power_limit`|`int32_t`| Returns the minimum power limit of the device in milliwatts. Returns -1 if the limit is not known. |
605
+
|`ext::intel::info::device::max_power_limit`|`int32_t`| Returns the maximum power limit of the device in milliwatts. Returns -1 if the limit is not known. |
606
+
607
+
608
+
## Aspects ##
609
+
610
+
A new aspect, `ext_intel_power_limits`, is added.
611
+
612
+
613
+
## Error Condition ##
614
+
615
+
Throws a synchronous `exception` with the `errc::feature_not_supported` error code if the device does not have `aspect::ext_intel_power_limits`.
616
+
617
+
## Example Usage ##
618
+
619
+
Then the power limits can be obtained using the standard `get_info()` interface.
620
+
621
+
```
622
+
if (dev.has(aspect::ext_intel_power_limits)) {
623
+
auto Min = dev.get_info<ext::intel::info::device::min_power_limit>();
624
+
auto Max = dev.get_info<ext::intel::info::device::max_power_limit>();
625
+
}
626
+
```
627
+
628
+
629
+
630
+
492
631
# Deprecated queries #
493
632
494
633
The table below lists deprecated, that would soon be removed and their replacements:
0 commit comments