func()

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
}