CUDA (Compute Unified Device Architecture) is an interface to program Nvidia GPUs. It offers support to the languages such as C, C++, and Fortran.
To build and execute code on the GPU A100 cluster, please login to
...
Codeblock |
---|
language | text |
---|
title | CUDA with cublas |
---|
|
bgnlogin1 $ module load nvhpc-hpcx/23.1
bgnlogin1 $ module list
Currently Loaded Modulefiles: ... 4) hpcx 5) nvhpc-hpcx/23.1
bgnlogin1 $ nvc -cuda -gpu=cc8.0 -o cuda_cublas.bin cuda_cublas.c
bgnlogin1 $ nvc -cuda -gpu=cc8.0 -cudalib=cublas -o cuda_cublas.bin cuda_cublas.c
bgnlogin1 $ mpicc -cuda -gpu=cc8.0 -cudalib=cublas -o mpi_cuda_cublas_mpi.bin mpi_cuda_cublas_mpi.c |
Code execution
All available slurm partitions for the A100 GPU partition you can see on Slurm partitions GPU A100.
Codeblock |
---|
language | text |
---|
title | Job script for plain OpenMP |
---|
|
#!/bin/bash
#SBATCH --partition=gpu-a100
#SBATCH --gres=gpu:4
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=72
./openmp_gpucuda.bin
./cuda_cublas.bin
|
Codeblock |
---|
language | text |
---|
title | Job script for MPI + OpenMP |
---|
|
#!/bin/bash
#SBATCH --partition=gpu-a100
#SBATCH --gres=gpu:4
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=72
module load nvhpc-hpcx/23.1
mpirun --np 8 --map-by ppr:2:socket:pe=1 ./mpi_openmpcuda_gpucublas.bin
|