Ensure that libnvidia-ml.so.1 is found in driver root

This change ensures that the driver root is used to locate libnvidia-ml.so.1
if required.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
Evan Lezar 2024-04-04 15:00:21 +02:00
parent bead6f98f3
commit c5eda7af8e

View File

@ -96,7 +96,16 @@ func New(opts ...Option) (Interface, error) {
root.WithLibrarySearchPaths(l.librarySearchPaths...), root.WithLibrarySearchPaths(l.librarySearchPaths...),
) )
if l.nvmllib == nil { if l.nvmllib == nil {
l.nvmllib = nvml.New() var nvmlOpts []nvml.LibraryOption
candidates, err := l.driver.Libraries().Locate("libnvidia-ml.so.1")
if err != nil {
l.logger.Warningf("Ignoring error in locating libnvidia-ml.so.1: %v", err)
} else {
libNvidiaMlPath := candidates[0]
l.logger.Infof("Using %v", libNvidiaMlPath)
nvmlOpts = append(nvmlOpts, nvml.WithLibraryPath(libNvidiaMlPath))
}
l.nvmllib = nvml.New(nvmlOpts...)
} }
if l.devicelib == nil { if l.devicelib == nil {
l.devicelib = device.New(l.nvmllib) l.devicelib = device.New(l.nvmllib)