amdsmi

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 30, 2024 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetGPUBoardInfo

func GetGPUBoardInfo(processor ProcessorHandle) (BoardInfo, Status)

GetGPUBoardInfo retrieves the board information for a given GPU processor handle.

func GetGPUVRAM

func GetGPUVRAM(processor ProcessorHandle) (VRAM, Status)

GetGPUVRAM retrieves the GPU VRAM stats for a given processor handle.

func GetProcessorHandles

func GetProcessorHandles(socket SocketHandle) ([]ProcessorHandle, Status)

GetProcessorHandles retrieves all processor handles for a given socket.

func GetProcessorType

func GetProcessorType(processor ProcessorHandle) (ProcessorType, Status)

GetProcessorType retrieves the type of a given processor.

func GetSocketHandles

func GetSocketHandles() ([]SocketHandle, Status)

GetSocketHandles returns the socket handles of the GPUs.

Types

type BoardInfo

type BoardInfo struct {
	ModelNumber      string
	ProductSerial    string
	FruID            string
	ProductName      string
	ManufacturerName string
}

BoardInfo is a Go representation of the C amdsmi_board_info_t struct.

type ProcessorHandle

type ProcessorHandle struct {
	// contains filtered or unexported fields
}

ProcessorHandle is a Go type that encapsulates the C amdsmi_processor_handle (void*).

type ProcessorType

type ProcessorType C.processor_type_t

ProcessorType is a Go type to represent processor_type_t from C. TODO: Use a Go type instead of C type.

type SocketHandle

type SocketHandle struct {
	// contains filtered or unexported fields
}

SocketHandle is a Go type that encapsulates the C amdsmi_socket_handle (void*).

type Status

type Status struct {
	Code    StatusCode
	Message string
}

Status a wrapper around StatusCode and a message

func GetGPUBDFID

func GetGPUBDFID(processor ProcessorHandle) (uint64, Status)

GetGPUBDFID retrieves the GPU BDF ID for a given processor handle.

func GetGPUID

func GetGPUID(processor ProcessorHandle) (uint32, Status)

GetGPUID retrieves the GPU ID for a given processor handle.

func GetGPUUUID

func GetGPUUUID(processor ProcessorHandle) (string, Status)

GetGPUUUID retrieves the GPU UUID for a given processor handle.

func GetSocketName

func GetSocketName(socketHandle SocketHandle, maxLen int) (string, Status)

GetSocketName retrieves the socket name for a given socket handle.

func Init

func Init() (Status, error)

Init initializes the AMD SMI library with GPUs.

func Shutdown

func Shutdown() Status

Shutdown shuts down the AMD SMI library.

func (Status) Error

func (s Status) Error() error

Error returns the error message if the status is not success

type StatusCode

type StatusCode uint32

StatusCode is a Go type to represent amdsmi_status_t from C.

const (
	StatusSuccess           StatusCode = 0  // AMDSMI_STATUS_SUCCESS
	StatusInval             StatusCode = 1  // AMDSMI_STATUS_INVAL
	StatusNotSupported      StatusCode = 2  // AMDSMI_STATUS_NOT_SUPPORTED
	StatusNotYetImplemented StatusCode = 3  // AMDSMI_STATUS_NOT_YET_IMPLEMENTED
	StatusFailLoadModule    StatusCode = 4  // AMDSMI_STATUS_FAIL_LOAD_MODULE
	StatusFailLoadSymbol    StatusCode = 5  // AMDSMI_STATUS_FAIL_LOAD_SYMBOL
	StatusDRMError          StatusCode = 6  // AMDSMI_STATUS_DRM_ERROR
	StatusAPIFailed         StatusCode = 7  // AMDSMI_STATUS_API_FAILED
	StatusTimeout           StatusCode = 8  // AMDSMI_STATUS_TIMEOUT
	StatusRetry             StatusCode = 9  // AMDSMI_STATUS_RETRY
	StatusNoPerm            StatusCode = 10 // AMDSMI_STATUS_NO_PERM
	StatusInterrupt         StatusCode = 11 // AMDSMI_STATUS_INTERRUPT
	StatusIO                StatusCode = 12 // AMDSMI_STATUS_IO
	StatusAddressFault      StatusCode = 13 // AMDSMI_STATUS_ADDRESS_FAULT
	StatusFileError         StatusCode = 14 // AMDSMI_STATUS_FILE_ERROR
	StatusOutOfResources    StatusCode = 15 // AMDSMI_STATUS_OUT_OF_RESOURCES
	StatusInternalException StatusCode = 16 // AMDSMI_STATUS_INTERNAL_EXCEPTION
	StatusInputOutOfBounds  StatusCode = 17 // AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS
	StatusInitError         StatusCode = 18 // AMDSMI_STATUS_INIT_ERROR
	StatusRefcountOverflow  StatusCode = 19 // AMDSMI_STATUS_REFCOUNT_OVERFLOW

	StatusBusy            StatusCode = 30 // AMDSMI_STATUS_BUSY
	StatusNotFound        StatusCode = 31 // AMDSMI_STATUS_NOT_FOUND
	StatusNotInit         StatusCode = 32 // AMDSMI_STATUS_NOT_INIT
	StatusNoSlot          StatusCode = 33 // AMDSMI_STATUS_NO_SLOT
	StatusDriverNotLoaded StatusCode = 34 // AMDSMI_STATUS_DRIVER_NOT_LOADED

	StatusNoData           StatusCode = 40 // AMDSMI_STATUS_NO_DATA
	StatusInsufficientSize StatusCode = 41 // AMDSMI_STATUS_INSUFFICIENT_SIZE
	StatusUnexpectedSize   StatusCode = 42 // AMDSMI_STATUS_UNEXPECTED_SIZE
	StatusUnexpectedData   StatusCode = 43 // AMDSMI_STATUS_UNEXPECTED_DATA

	StatusMapError     StatusCode = 0xFFFFFFFE // AMDSMI_STATUS_MAP_ERROR
	StatusUnknownError StatusCode = 0xFFFFFFFF // AMDSMI_STATUS_UNKNOWN_ERROR
)

func (StatusCode) String

func (code StatusCode) String() string

String returns the string representation of the StatusCode

type VRAM

type VRAM struct {
	Total    uint32
	Used     uint32
	Reserved [5]uint64
}

VRAM is a Go representation of the C amdsmi_vram_info_t struct.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL