Class IGpuDevice

Class Documentation

class IGpuDevice

Interface used to get consistent details about a metrics GPU device.

Note

A reference to one can be obtained using the CreateGpuDevice function and released using the DestroyGpuDevice function.

Public Functions

virtual ~IGpuDevice()
virtual uint32_t NumGlobalSymbols() const = 0

Returns the number of global symbols available for the metrics GPU device that can be obtained using IGpuDevice::GetGlobalSymbol.

Note

Use to determine range of valid global symbol indices: [0, IGpuDevice::NumGlobalSymbols).

Note

Zero is returned when no global symbols are provided. Only usage of the Intel MD library provides global symbols (as of 2023-10-27).

virtual Result GetGlobalSymbol(uint32_t const symbolIndex, GlobalSymbol *const pSymbol) const = 0

Used to get the name and value of a global symbol specified using its index.

Note

If the global symbol contains any pointers to data outside the provided struct, it will be invalid after calling the DestroyGpuDevice and UnlinkGpuSpecificMdApiSourceUsage functions.

Parameters
  • symbolIndex -- [in] Global symbol index in range: [0, IGpuDevice::NumGlobalSymbols).

  • pSymbol -- [inout] Pointer to global symbol struct that will be initialized upon success.

Returns

Upon success, kSuccess is returned and the specified GlobalSymbol struct is initialized. Otherwise, a failure result is returned.

virtual Result GetGpuInfo(GpuInfo *pGpuInfo) const = 0

Used to determine the id and other key info for the associated GPU.

Parameters

pGpuInfo -- [inout] Pointer to a GpuInfo struct. Review return notes for usage details.

Returns

Upon success, kSuccess is returned and the specified GpuInfo struct is initialized for the associated GPU. Otherwise, a failure result is returned.