TensorFlow - lncc-sered/manual-sdumont2nd GitHub Wiki

Table of Contents

TensorFlow

Exemplo com TensorFlow via Conda

1) Primeiro, é necessário criar um ambiente virtual do conda, conforme descrito aqui.

 module load anaconda3/2024.10
 conda create --prefix $HOME/conda-env/test-tf python=3.12

2) Ativar o virtual env:

 source activate $SCRATCH/conda-env/test-tf

3) Instalar o TensorFlow

 pip install tensorflow[and-cuda]

Testando a execução do TensorFlow através de um script de exemplo (teste-tf.py):

import tensorflow as tf

print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

print(tf.config.list_physical_devices('GPU'))

print(tf.reduce_sum(tf.random.normal([1000, 1000])))

Script de submissão (sub_tf_conda.srm):

#!/bin/bash
#SBATCH --nodes=1            #Numero de Nos
#SBATCH -p lncc-h100_dev     #Fila (partition) a ser utilizada
#SBATCH -J tensorflow_conda  #Nome job
#SBATCH --gpus=1             #Numero total de GPUS

#Exibe os nós alocados para o Job
echo $SLURM_JOB_NODELIST
nodeset -e $SLURM_JOB_NODELIST

cd $SLURM_SUBMIT_DIR

#Configura os Módulos
module load anaconda3/2024.10

#Ativa o ambiente conda
source activate $SCRATCH/conda-env/test-tf

#Exibe as GPUs disponiveis 
nvidia-smi

#Verificando se está utilizando o python do local correto (ambiente conda)
which python3

#Executa o Tensorflow
python3 ./teste-tf.py

Exemplo com TensorFlow container Nvidia

Referência: https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tensorflow

Lista das verões (tags): https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tensorflow/tags

Versão do exemplo: 25

Exemplo utilizando 1 nó e 1 GPUs por nó, com o mesmo script teste-tf.py utilizado acima.

As imagens dos container disponíveis no catálogo da NVidia e compatíveis com o SDumont2nd já está presentes dentro do sistema de armazenamento, não sendo necessário o Download.

Os módulos disponíveis, conforme exemplos abaixo, configuram a variável de ambiente $TF_IMAGE com o caminho correto da imagem, visando facilitar a utilização do script.

Arquitetura H100

Script sub_tf_container_h100.srm

#!/bin/bash
#SBATCH --nodes=1            #Numero de Nos
#SBATCH -p lncc-h100_dev     #Fila (partition) a ser utilizada
#SBATCH -J tensorflow        #Nome job
#SBATCH --gpus-per-node=1    #Numero total de GPUS

#Exibe os nós alocados para o Job
echo $SLURM_JOB_NODELIST
nodeset -e $SLURM_JOB_NODELIST

cd $SLURM_SUBMIT_DIR

module load arch_gpu
module load tensorflow/25.02-tf2-py3_nv_container

export SINGULARITY="singularity run --nv -B ${PWD}:/host_pwd --pwd /host_pwd $TF_IMAGE"
${SINGULARITY} python3 ./teste-tf.py

Arquitetura GH200

Script sub_tf_container_gh200.srm

#!/bin/bash
#SBATCH --nodes=1          #Numero de Nos
#SBATCH -p lncc-gh200_dev  #Fila (partition) a ser utilizada
#SBATCH -J tensorflow      #Nome job
#SBATCH --gpus-per-node=1  #Numero total de GPUS

#Exibe os nós alocados para o Job
echo $SLURM_JOB_NODELIST
nodeset -e $SLURM_JOB_NODELIST

cd $SLURM_SUBMIT_DIR

module load arch_gpu_sc
module load tensorflow/25.02-tf2-py3_nv_container

export SINGULARITY="singularity run --nv -B ${PWD}:/host_pwd --pwd /host_pwd $TF_IMAGE"
${SINGULARITY} python3 ./teste-tf.py

Editando a imagem do container

EM CONSTRUÇÃO

Início


⚠️ **GitHub.com Fallback** ⚠️