Catboost использует память gpu, но gpu-util не увеличивается

#python #gpu #nvidia #catboost

#python #gpu #nvidia #catboost

Вопрос:

Я использую catboost для решения многоклассовой классификации.

Когда я подгоняю модель с использованием catboost, использование gpu не увеличивается. Но использование памяти моего gpu явно сильно возрастает.

Я обнаружил, что моя модель подходит для использования с cpu, потому что colab с gpu runtime показал гораздо меньшее время обучения.

У меня графический процессор лучше, чем colab.

Я прилагаю код и результат nvidia-smi.

 model = CatBoostClassifier(
    custom_metric=['TotalF1'],
    random_seed=42,
    logging_level='Silent',
    task_type='GPU'
)

  
 get_gpu_device_count()
3
  
 model.fit(
    X_train, y_train,
    cat_features=categorical_features_indices,
    eval_set=(X_validation, y_validation),
     logging_level='Verbose',  # you can uncomment this for text output
    plot=True
);

Warning: less than 75% gpu memory available for training. Free: 23583.5625 Total: 32480.5
Warning: less than 75% gpu memory available for training. Free: 5569.5625 Total: 32480.5

0:  learn: 0.9920891    test: 0.9923071 best: 0.9923071 (0) total: 2.54s    remaining: 42m 15s
1:  learn: 0.9280651    test: 0.9282007 best: 0.9282007 (1) total: 5.01s    remaining: 41m 40s
2:  learn: 0.8778390    test: 0.8781491 best: 0.8781491 (2) total: 7.45s    remaining: 41m 15s
3:  learn: 0.8469168    test: 0.8473046 best: 0.8473046 (3) total: 9.9s remaining: 41m 5s

....


  

Пожалуйста, игнорируйте устройства GPU 1 и 2, они используются другим пользователем. Я уверен, что когда я подхожу к своей модели, ядро пытается использовать device 0. Как вы можете видеть, gpu devcie 0 не показывает gpu-util. Когда я отключаю свое ядро catboost, использование памяти gpu возвращается к нулю. Когда я подхожу к модели, увеличивается только использование памяти gpu, а использование gpu не увеличивается.

введите описание изображения здесь