Gromacs
2025-dev-20241003-bd59e46
|
#include <gromacs/hardware/device_information.h>
Platform-dependent device information.
The device information is queried and set at detection and contains both information about the device/hardware returned by the runtime as well as additional data like support status.
Public Attributes | |
DeviceStatus | status |
Device status. | |
int | id |
ID of the device, ie. the index into the device order reported by the GPU runtime. | |
DeviceVendor | deviceVendor |
Device vendor. | |
gmx::FixedCapacityVector< int, 10 > | supportedSubGroupSizes |
Warp/sub-group sizes supported by the device. More... | |
gmx::GpuAwareMpiStatus | gpuAwareMpiStatus |
std::optional< std::array < std::byte, 16 > > | uuid |
UUID of the device, when available. More... | |
gmx::FixedCapacityVector<int, 10> DeviceInformation::supportedSubGroupSizes |
Warp/sub-group sizes supported by the device.
DeviceInformation must be serializable in CUDA, so we cannot use std::vector
here. Arbitrarily limiting to 10.
std::optional<std::array<std::byte, 16> > DeviceInformation::uuid |
UUID of the device, when available.
If device UUIDs are not available, then multi-rank DLB may not work properly when environment variables restrict device visibility to each rank.
Note that even if the device and SDK support UUID queries, compatibility or version issues mean we need a field that might not contain a value in practice.