Beagle-lib sur la partition GPU

Bonjour,

Je voudrai faire tourner le programme BEAST en mode GPU.
Beast utilise la library beagle pour lancer les jobs.

La library beagle_lib n'a pas était compiler en mode GPU (avec cuda)
j'ai suivi les instructions LinuxInstallInstructions · beagle-dev/beagle-lib Wiki · GitHub
j'ai donc installé le programme dans mon home depuis le noeud GPU (accès à cuda)

srun -p gpu --gres=gpu:1g.5gb:1 --cpus-per-task=2  --account glp701 --pty bash -i
git clone --depth=1 https://github.com/beagle-dev/beagle-lib.git
cd beagle-lib/
mkdir build
cd build/
conda activate cmake
cmake -DCMAKE_INSTALL_PREFIX:PATH=~/softs/BEASTv1.8.4/lib/ -DBUILD_OPENCL=OFF -DBUILD_CUDA=ON -DOpenCL_LIBRARY=/usr/local/cuda-11.4/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda-11.4/include ..
make install
export LD_LIBRARY_PATH=/shared/ifbstor1/home/sravel/softs/BEASTv1.8.4/lib/ # ajouter dans le module load BEAST
module load BEAST
beast -beagle_info

la commande me retourne bien la carte GPU mais une seul...

BEAGLE resources available:
0 : CPU (x86_64)
    Flags: PRECISION_SINGLE PRECISION_DOUBLE COMPUTATION_SYNCH EIGEN_REAL EIGEN_COMPLEX SCALING_MANUAL SCALING_AUTO SCALING_ALWAYS SCALERS_RAW SCALERS_LOG VECTOR_SSE VECTOR_NONE THREADING_NONE PROCESSOR_CPU FRAMEWORK_CPU


1 : NVIDIA A100-PCIE-40GB MIG 1g.5gb
    Global memory (MB): 4864
    Clock speed (Ghz): 1,41
    Number of cores: 1792
    Flags: PRECISION_SINGLE PRECISION_DOUBLE COMPUTATION_SYNCH COMPUTATION_ASYNCH EIGEN_REAL EIGEN_COMPLEX SCALING_MANUAL SCALING_AUTO SCALING_ALWAYS SCALERS_RAW SCALERS_LOG VECTOR_NONE THREADING_NONE PROCESSOR_GPU FRAMEWORK_CUDA

mon programme se lance bien en GPU tout semble fonctionner

Sauf que si je tente depuis les srun suivant je ne voie plus de carte GPU...

srun -p gpu --gres=gpu:1g.5gb:0 --cpus-per-task=2  --account glp701 --pty bash -i
srun -p gpu --gres=gpu:7g.40gb:0 --cpus-per-task=2  --account glp701 --pty bash -i
srun -p gpu --gres=gpu:7g.40gb:1 --cpus-per-task=2  --account glp701 --pty bash -i # ne fonctionne pas
srun: Required node not available (down, drained or reserved)

beast -beagle_info

J'ai tenter de recompiler beagle a chaque srun mais sans succès, cela ne fonctionne qu'avec l'option
--gres=gpu:1g.5gb:1

est-il possible d'avoir beagle-lib compiler pour GPU quelque-soit la partition?

merci d'avance

Sébastien

Bonjour Sébastien,

Le serveur gpu-node-3 (avec les partitions 7g.40gb) était en erreur. Il est à nouveau disponible (merci @gseith).

La partition et l'option --gres=gpu:7g.40gb:1 devrait à nouveau fonctionner.

bonjour @dbenaben ,

merci mais cela ne fonctionne pas, beagle ne voie pas la carte qu'avec

srun -p gpu --gres=gpu:1g.5gb:1 --cpus-per-task=2  --account glp701 --pty bash -i

et pas avec

--gres=gpu:1g.5gb:1
--gres=gpu:7g.40gb:0
--gres=gpu:7g.40gb:1

ping @jhaessig

@sravel il y a deux jobs en cours avec gpu:7g.40gb:1, cela fonctionne donc à priori (je ne peux tester pour être sûr puisqu'il n'y a pas de slot 7g.40gb disponible pour l'instant, les deux slots étant actuellement occupés)

Q'est-ce qui vous fait dire que votre commande (srun -p gpu --gres=gpu:7g.40gb:1 --cpus-per-task=2 --account glp701 --pty bash -i) ne fonctionne pas ?

En effet, l'erreur "Required node not available" précédente était dû au pb sur le serveur qui a été corrigé.
Aussi, l'option "--gres=gpu:7g.40gb:0" ne devrait pas vraiment fonctionner puisque l'on demande "0" ressources gpu (le dernier chiffre étant le nombre souhaité).