← Журнал · · Разбор

Можно ли переименовать nvidia.com/gpu в модель видеокарты

Всем привет! Давно не списывались
(честно, я был в отпуске после выступления на Тех Дей)

Сейчас снова приступаю к исследованиям ML инфраструктуры и хочу с вами делиться контентом

Решил посмотреть, можно ли ресурс в kubernetes nvidia.com/gpu (который отвечает за наличие и емкость GPU на нодах) переименовать в конкретную GPU, например nvidia.com/A100

По использованию MIG я знаю что есть конфиг, где мы можем определить названия ресурсов для разных партиций. Можно ли сделать такой же конфиг для обычных GPU?

Логика регистрации ресурсов находиться в этом файле в nvidia device plugin - и к сожалению кроме как обычных nvidia.com/gpu или преобразований с MIG изменить название ресурса нельзя. Только если переписывать код, например так

for i := 0; i < deviceCount; i++ {
device, err := nvml.DeviceGetHandleByIndex(i)
if err != nil {
return fmt.Errorf("failed to get device handle: %v", err)
}

    model, err := nvml.DeviceGetName(device)  
    if err != nil {  
        return fmt.Errorf("failed to get device name: %v", err)  
    }  

    // Register resource with the model name  
    resourceName := "nvidia.com/" + strings.ToLower(model)  
    \_ = config.Resources.AddGPUResource("\*", resourceName)  
}  

Но в целом тогда как решить следующую проблему - аллоцирование подов на конкретную GPU?

Можно использовать nodeSelector и лейбл nvidia.com/gpu.product - который сетит название GPU. Выглядить это будет так

apiVersion: v1
kind: Pod
metadata:
name: gpu-pod
spec:
containers:

Такие вот дела! Ставьте 🔥 если интересны такие посты про мои исследования.
Еще думаю переименуюсь все таки в MLOps...🕺 А то контентик в основном про ML сейчас

Оригинал в Telegram ↗

↑↓ выбор · Enter открыть · Esc закрыть