R/tensorflow qui ne tourne pas en GPU

,

Bonjour
J'ai lancé avec SLURM un script R qui utilise les packages keras et tensorflow sur la partition gpu. Voici le début du fichier .sh :

#!/bin/sh
#SBATCH -A deeplearning_oilpalm
#SBATCH -p gpu
#SBATCH --gres=gpu:3g.20gb:1
#SBATCH -J MLP_OptTrPop_R_gpu
#SBATCH -n 32
#SBATCH --mem-per-cpu 15G

Ca tourne mais je pense que les calculs ne se font pas en GPU, car j'ai le message suivant dans le fichier .err :

2023-05-30 22:20:30.755416: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudnn.so.8'; dlerror: libcudnn.so.8: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /shared/ifbstor1/software/miniconda/envs/r-4.1.1/lib
2023-05-30 22:20:30.756773: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1850] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...

Est-ce qu'il est possible d'installer les librairies manquantes ? ou de m'indiquer comment les charger :slight_smile:

Merci

David

Bonjour David,

En effet, vos jobs n'utilisent pas les GPU... je vois pas bien pourquoi.

Le temps que l'on comprenne ce qui se passe, pouvez-vous éviter de lancer ces derniers sur la partition GPU. Les cartes sont réservées pour rien (alors que du monde attends pour les utiliser).

PS: lorsque vous utilisez gpu:3g.20gb:2, vous réserver en effet 2 profils "3g.20G". A vérifier, mais pour moi Alphafold (lancé par la suite) n'utilise qu'un seul profil.

Bonjour
Merci.
Je ne lance plus ce script R sur gpu en attendant alors.
Mais est-ce que vous voulez dire que mes autres jobs n'utilisent pas les GPU non plus ? le job dont je parlais est le 33548089 (script R). Les autres que je fais tourner sont des scripts python et je pense que ceux-ci utilisent bien les GPU car je n'ai pas de message d'erreur à ce sujet (mais je suis débutant en python et GPU, alors j'ai peut-être tort... si c'est le cas je peux annuler le job qui est pending).
Je n'ai pas compris la référence à Alphafold (je n'utilise pas ce programme) et j'utilise --gres=gpu:7g.40gb:1 comme configuration (que j'ai trouvé dans la documentation...).
A bientôt
David C

Le job 33548089 est terminé, je ne sais pas vous dire sa consommation GPU.

Pour alphafold... je me suis emmêlé les pinceaux, dsl.

Par contre pour 33596270 (job MLP_gpu ), je vous confirme que vous n'utilisez pas les gpu.
Via nvidia-smi sur le noeud de votre job (ssh gpu-node-02 nvidia-smi) l'on constate qu'un seul processus utilise le GPU, processus qui est pour un autre utilisateur/job.

Si vous voulez que l'on vérifie d'autre job, il faut nous donner un maximum d'information (jobid, script, etc.).

ah ok :frowning: je pensais que c'était bon, parce que ça tournait plus vite que quand je lance sur des cpus...

Voici le script .sh du job 33596270 en cours :

#!/bin/sh
#SBATCH -A deeplearning_oilpalm
#SBATCH -p gpu
#SBATCH --gres=gpu:7g.40gb:1
#SBATCH -J MLP_gpu
#SBATCH -n 48
#SBATCH --mem-per-cpu 12G
#SBATCH --output=MLP_gpu.%j.out
#SBATCH --error=MLP_gpu.%j.err
#SBATCH --mail-type=ALL
#SBATCH --mail-user=david.cros@cirad.fr
#SBATCH --time=3-00:00:00

module load python/3.9

python MLP_v4_202305_OptTrPop.py

Et le script .py importe les modules suivants :

import pandas as pd
import numpy as np
import tensorflow as tf
import tensorflow_probability as tfp
from tensorflow import keras
from tensorflow.keras import layers
import keras_tuner
import tensorflow_addons as tfa

Merci

David

On constate la même erreur (MLP_gpu.33596270.err)

2023-06-01 01:53:41.091887: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudnn.so.8'; dlerror: libcudnn.so.8: cannot open shared object file: No such file or directory
2023-06-01 01:53:41.092023: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1934] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...

Pouvez-vous réessayer en chargeant au préalable le module cudatoolkit

[...]

module load python/3.9
module load cudatoolkit/11.6.0

python MLP_v4_202305_OptTrPop.py

Merci, j'ai corrigé et lancé le job, 33623660, pour l'instant il est PD, je vous dis quand il démarre.

Il tourne mais c'est pareil :

2023-06-01 23:27:33.178564: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /shared/ifbstor1/software/miniconda/envs/cudatoolkit-11.6.0/lib

2023-06-01 23:27:33.191674: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /shared/ifbstor1/software/miniconda/envs/cudatoolkit-11.6.0/lib

2023-06-01 23:27:33.191735: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.

warnings.warn(
2023-06-01 23:27:52.292023: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudnn.so.8'; dlerror: libcudnn.so.8: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /shared/ifbstor1/software/miniconda/envs/cudatoolkit-11.6.0/lib
2023-06-01 23:27:52.292189: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1934] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at ติดตั้ง TensorFlow ด้วย pip for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...

On va essayer d'installer cudnn/8.8.0.121.
Demande d'installation en cours: add cuDNN library (!1107) · Merge requests · Institut Français de Bioinformatique / Cluster / tools · GitLab

1 « J'aime »

C'est disponible.
Pouvez-vous essayer en rajoutant:

module load cudnn/8.8.0.121

# Je pense qu'il faudra aussi faire :
export LD_LIBRARY_PATH=/shared/software/modulefiles/cudnn/8.8.0.121:$LD_LIBRARY_PATH

On me signale dans l'oreillette que normalement le module python/3.9 vient avec l'environnement tensorflow fonctionnel.
La gestion des dépendances et libraires est assez lourde (cf tools/python-pytorch-tensorflow/3.9-1.11.0-2.6.2/env.yml · master · Institut Français de Bioinformatique / Cluster / tools · GitLab) mais le module a été testé avec succès (pour pytorch/keras/tensorflow).

Je me demande donc si vous n'avais pas des modules python (ou plus généralement) un environnement qui vient perturber tout ça.
Essayer peut-être de nettoyer en supprimant par exemple les paquets python installé dans votre home (~/.local/lib/python3.9/site-packages/ ) et de ressayer.