in pkg/gpu/nvidia/manager.go [90:115]
func (config *GPUConfig) AddDefaultsAndValidate() error {
if config.MaxTimeSharedClientsPerGPU > 0 {
if config.GPUSharingConfig.GPUSharingStrategy != "" || config.GPUSharingConfig.MaxSharedClientsPerGPU > 0 {
glog.Infof("Both MaxTimeSharedClientsPerGPU and GPUSharingConfig are set, use the value of MaxTimeSharedClientsPerGPU")
}
config.GPUSharingConfig.GPUSharingStrategy = gpusharing.TimeSharing
config.GPUSharingConfig.MaxSharedClientsPerGPU = config.MaxTimeSharedClientsPerGPU
} else {
switch config.GPUSharingConfig.GPUSharingStrategy {
case gpusharing.TimeSharing, gpusharing.MPS:
if config.GPUSharingConfig.MaxSharedClientsPerGPU <= 0 {
return fmt.Errorf("MaxSharedClientsPerGPU should be > 0 for time-sharing or mps GPU sharing strategies")
}
break
case gpusharing.Undefined:
if config.GPUSharingConfig.MaxSharedClientsPerGPU > 0 {
return fmt.Errorf("GPU sharing strategy needs to be specified when MaxSharedClientsPerGPU > 0")
}
default:
return fmt.Errorf("invalid GPU Sharing strategy: %v, should be one of time-sharing or mps", config.GPUSharingConfig.GPUSharingStrategy)
}
}
gpusharing.SharingStrategy = config.GPUSharingConfig.GPUSharingStrategy
return nil
}