in components/otelopscol/receiver/nvmlreceiver/client.go [109:144]
func initializeNvml(logger *zap.Logger) (nvmlCleanup func() error, err error) {
nvmlCleanup = nil
defer func() {
// applicable to tagged releases of github.com/NVIDIA/go-nvml <= v0.11.6-0
if perr := recover(); perr != nil {
err = fmt.Errorf("%v", perr)
}
}()
ret := nvmlInit()
if ret != nvml.SUCCESS {
if ret == nvml.ERROR_LIBRARY_NOT_FOUND {
err = fmt.Errorf("libnvidia-ml.so not found")
} else {
err = fmt.Errorf("'%v'", nvml.ErrorString(ret))
}
return
}
logger.Sugar().Infof("Successfully initialized Nvidia Management Library")
printNvmlAndDriverVersion(logger)
nvmlCleanup = func() error {
ret := nvml.Shutdown()
if ret != nvml.SUCCESS {
msg := fmt.Sprintf("Unable to shutdown Nvidia Management library on '%v'", nvml.ErrorString(ret))
logger.Sugar().Warnf(msg)
return fmt.Errorf("%s", msg)
}
return nil
}
err = nil
return
}