← Журнал · · Разбор
Можно ли переименовать 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:
- name: gpu-container
image: nvidia/cuda:11.0-base
resources:
limits:
nvidia.com/gpu: 1
nodeSelector:
nvidia.com/gpu.product: "A100-SXM4-40GB" # Используйте метку для выбора узла
Такие вот дела! Ставьте 🔥 если интересны такие посты про мои исследования.
Еще думаю переименуюсь все таки в MLOps...🕺 А то контентик в основном про ML сейчас