mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2024-11-25 05:21:33 +00:00
abd638add9
Bumps [github.com/NVIDIA/go-nvml](https://github.com/NVIDIA/go-nvml) from 0.12.0-6 to 0.12.4-0. - [Commits](https://github.com/NVIDIA/go-nvml/compare/v0.12.0-6...v0.12.4-0) --- updated-dependencies: - dependency-name: github.com/NVIDIA/go-nvml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
139 lines
4.8 KiB
Go
139 lines
4.8 KiB
Go
// Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package nvml
|
|
|
|
// nvml.SystemGetDriverVersion()
|
|
func (l *library) SystemGetDriverVersion() (string, Return) {
|
|
Version := make([]byte, SYSTEM_DRIVER_VERSION_BUFFER_SIZE)
|
|
ret := nvmlSystemGetDriverVersion(&Version[0], SYSTEM_DRIVER_VERSION_BUFFER_SIZE)
|
|
return string(Version[:clen(Version)]), ret
|
|
}
|
|
|
|
// nvml.SystemGetNVMLVersion()
|
|
func (l *library) SystemGetNVMLVersion() (string, Return) {
|
|
Version := make([]byte, SYSTEM_NVML_VERSION_BUFFER_SIZE)
|
|
ret := nvmlSystemGetNVMLVersion(&Version[0], SYSTEM_NVML_VERSION_BUFFER_SIZE)
|
|
return string(Version[:clen(Version)]), ret
|
|
}
|
|
|
|
// nvml.SystemGetCudaDriverVersion()
|
|
func (l *library) SystemGetCudaDriverVersion() (int, Return) {
|
|
var CudaDriverVersion int32
|
|
ret := nvmlSystemGetCudaDriverVersion(&CudaDriverVersion)
|
|
return int(CudaDriverVersion), ret
|
|
}
|
|
|
|
// nvml.SystemGetCudaDriverVersion_v2()
|
|
func (l *library) SystemGetCudaDriverVersion_v2() (int, Return) {
|
|
var CudaDriverVersion int32
|
|
ret := nvmlSystemGetCudaDriverVersion_v2(&CudaDriverVersion)
|
|
return int(CudaDriverVersion), ret
|
|
}
|
|
|
|
// nvml.SystemGetProcessName()
|
|
func (l *library) SystemGetProcessName(pid int) (string, Return) {
|
|
name := make([]byte, SYSTEM_PROCESS_NAME_BUFFER_SIZE)
|
|
ret := nvmlSystemGetProcessName(uint32(pid), &name[0], SYSTEM_PROCESS_NAME_BUFFER_SIZE)
|
|
return string(name[:clen(name)]), ret
|
|
}
|
|
|
|
// nvml.SystemGetHicVersion()
|
|
func (l *library) SystemGetHicVersion() ([]HwbcEntry, Return) {
|
|
var hwbcCount uint32 = 1 // Will be reduced upon returning
|
|
for {
|
|
hwbcEntries := make([]HwbcEntry, hwbcCount)
|
|
ret := nvmlSystemGetHicVersion(&hwbcCount, &hwbcEntries[0])
|
|
if ret == SUCCESS {
|
|
return hwbcEntries[:hwbcCount], ret
|
|
}
|
|
if ret != ERROR_INSUFFICIENT_SIZE {
|
|
return nil, ret
|
|
}
|
|
hwbcCount *= 2
|
|
}
|
|
}
|
|
|
|
// nvml.SystemGetTopologyGpuSet()
|
|
func (l *library) SystemGetTopologyGpuSet(cpuNumber int) ([]Device, Return) {
|
|
var count uint32
|
|
ret := nvmlSystemGetTopologyGpuSet(uint32(cpuNumber), &count, nil)
|
|
if ret != SUCCESS {
|
|
return nil, ret
|
|
}
|
|
if count == 0 {
|
|
return []Device{}, ret
|
|
}
|
|
deviceArray := make([]nvmlDevice, count)
|
|
ret = nvmlSystemGetTopologyGpuSet(uint32(cpuNumber), &count, &deviceArray[0])
|
|
return convertSlice[nvmlDevice, Device](deviceArray), ret
|
|
}
|
|
|
|
// nvml.SystemGetConfComputeCapabilities()
|
|
func (l *library) SystemGetConfComputeCapabilities() (ConfComputeSystemCaps, Return) {
|
|
var capabilities ConfComputeSystemCaps
|
|
ret := nvmlSystemGetConfComputeCapabilities(&capabilities)
|
|
return capabilities, ret
|
|
}
|
|
|
|
// nvml.SystemGetConfComputeState()
|
|
func SystemGetConfComputeState() (ConfComputeSystemState, Return) {
|
|
var state ConfComputeSystemState
|
|
ret := nvmlSystemGetConfComputeState(&state)
|
|
return state, ret
|
|
}
|
|
|
|
// nvml.SystemGetConfComputeGpusReadyState()
|
|
func SystemGetConfComputeGpusReadyState() (uint32, Return) {
|
|
var isAcceptingWork uint32
|
|
ret := nvmlSystemGetConfComputeGpusReadyState(&isAcceptingWork)
|
|
return isAcceptingWork, ret
|
|
}
|
|
|
|
// nvml.SystemSetConfComputeGpusReadyState()
|
|
func SystemSetConfComputeGpusReadyState(isAcceptingWork uint32) Return {
|
|
return nvmlSystemSetConfComputeGpusReadyState(isAcceptingWork)
|
|
}
|
|
|
|
// nvml.SystemSetNvlinkBwMode()
|
|
func SystemSetNvlinkBwMode(nvlinkBwMode uint32) Return {
|
|
return nvmlSystemSetNvlinkBwMode(nvlinkBwMode)
|
|
}
|
|
|
|
// nvml.SystemGetNvlinkBwMode()
|
|
func SystemGetNvlinkBwMode() (uint32, Return) {
|
|
var nvlinkBwMode uint32
|
|
ret := nvmlSystemGetNvlinkBwMode(&nvlinkBwMode)
|
|
return nvlinkBwMode, ret
|
|
}
|
|
|
|
// nvml.SystemGetConfComputeKeyRotationThresholdInfo()
|
|
func (l *library) SystemGetConfComputeKeyRotationThresholdInfo() (ConfComputeGetKeyRotationThresholdInfo, Return) {
|
|
var keyRotationThresholdInfo ConfComputeGetKeyRotationThresholdInfo
|
|
ret := nvmlSystemGetConfComputeKeyRotationThresholdInfo(&keyRotationThresholdInfo)
|
|
return keyRotationThresholdInfo, ret
|
|
}
|
|
|
|
// nvml.SystemGetConfComputeSettings()
|
|
func (l *library) SystemGetConfComputeSettings() (SystemConfComputeSettings, Return) {
|
|
var settings SystemConfComputeSettings
|
|
ret := nvmlSystemGetConfComputeSettings(&settings)
|
|
return settings, ret
|
|
}
|
|
|
|
// nvml.SystemSetConfComputeKeyRotationThresholdInfo()
|
|
func (l *library) SystemSetConfComputeKeyRotationThresholdInfo(keyRotationThresholdInfo ConfComputeSetKeyRotationThresholdInfo) Return {
|
|
return nvmlSystemSetConfComputeKeyRotationThresholdInfo(&keyRotationThresholdInfo)
|
|
}
|