https://github.com/cschpc/magma-testing

https://github.com/cschpc/magma-testing

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (6.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: cschpc
  • License: mit
  • Language: C++
  • Default Branch: main
  • Size: 159 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

Notes on testing MAGMA

This is a test program for comparing the performance of common GPU eigensolvers. - Flag -DCUDA: uses cusolver - Flag -DHIP: uses rocsolver - Flag -DMAGMA: uses the MAGMA library. Also needs either -DCUDA or -DHIP.

Works with symmetric and Hermitian matrices.

Needs compiler with C++17 support.

Summary of test results (LUMI/Mahti)

eigsolvers_cdouble

LUMI / MI250x (1 GCD)

Installing MAGMA

```bash export EBUUSERPREFIX=$PWD/EasyBuild module load LUMI/24.03 module load partition/G module load EasyBuild-user

eb magma-2.8.0-cpeGNU-24.03-rocm.eb -r exit ```

Testing

```bash export EBUUSERPREFIX=$PWD/EasyBuild ml LUMI/24.03 ml partition/G ml rocm/6.0.3 ml magma/2.8.0-cpeGNU-24.03-rocm

hipcc -std=c++17 --offload-arch=gfx90a -O3 -DHIP -lrocblas -lrocsolver eigh.cpp -o rocm6.0.3.x -Wno-unused-result sbatch --partition=dev-g --nodes=1 --ntasks-per-node=1 --cpus-per-task=1 --gpus-per-node=1 --time=01:00:00 -o 'rocm6.0.3.out' --wrap='./rocm6.0.3.x 3,100,200,400,800,1600'

hipcc -std=c++17 --offload-arch=gfx90a -O3 -DMAGMA -DHIP -lmagma eigh.cpp -o magma2.8.0rocm6.0.3.x -Wno-unused-result sbatch --partition=dev-g --nodes=1 --ntasks-per-node=1 --cpus-per-task=1 --gpus-per-node=1 --time=01:00:00 -o 'magma2.8.0rocm6.0.3.out' --wrap='./magma2.8.0_rocm6.0.3.x 3,100,200,400,800,1600,3200,6400,12800' ```

Testing ROCm 6.2.2

```bash ml LUMI/24.03 ml partition/G ml rocm/6.2.2

hipcc -std=c++17 --offload-arch=gfx90a -O3 -DHIP -lrocblas -lrocsolver eigh.cpp -o rocm6.2.2.x -Wno-unused-result sbatch --partition=dev-g --nodes=1 --ntasks-per-node=1 --cpus-per-task=1 --gpus-per-node=1 --time=01:00:00 -o 'rocm6.2.2.out' --wrap='./rocm6.2.2.x 3,100,200,400,800,1600,3200' ```

Testing ROCm 6.3.2 and MAGMA 2.9.0

Container source here.

```bash export SINGULARITY_BIND="/pfs,/scratch,/projappl,/project,/flash,/appl"

singularity exec rocmmagma.sif hipcc -std=c++17 --offload-arch=gfx90a -O3 -DHIP -lrocblas -lrocsolver eigh.cpp -o rocm6.3.2.x -Wno-unused-result sbatch --partition=dev-g --nodes=1 --ntasks-per-node=1 --cpus-per-task=1 --gpus-per-node=1 --time=01:00:00 -o 'rocm6.3.2.out' --wrap='singularity exec rocmmagma.sif ./rocm6.3.2.x 3,100,200,400,800,1600,3200,6400'

singularity exec rocmmagma.sif hipcc -std=c++17 --offload-arch=gfx90a -O3 -DMAGMA -DHIP -lmagma eigh.cpp -o magma2.9.0rocm6.3.2.x -Wno-unused-result sbatch --partition=dev-g --nodes=1 --ntasks-per-node=1 --cpus-per-task=1 --gpus-per-node=1 --time=01:00:00 -o 'magma2.9.0rocm6.3.2.out' --wrap='singularity exec rocmmagma.sif ./magma2.9.0_rocm6.3.2.x 3,100,200,400,800,1600,3200,6400,12800' ```

Mahti / A100

Installing MAGMA

```bash ml cuda/11.5.0

git clone --branch v2.8.0 https://github.com/icl-utk-edu/magma.git cd magma grep -rl '^#!/usr/bin/env python$' . | xargs sed -i 's|^#!/usr/bin/env python$|#!/usr/bin/env python3|g' cp make.inc-examples/make.inc.openblas make.inc

Build on an interactive shell on a node

srun -p test --nodes=1 --ntasks-per-node=1 --cpus-per-task=128 --exclusive -t 1:00:00 --pty bash export TMPDIR=/dev/shm make -j128 lib/libmagma.so GPUTARGET=Ampere OPENBLASDIR=$OPENBLASINSTALLROOT CUDADIR=$CUDAINSTALL_ROOT ```

Testing

```bash ml cuda/11.5.0

nvcc -std=c++17 -arch=sm_80 -O3 -DCUDA -lcusolver eigh.cpp -o cuda11.5.0.x sbatch -p gputest --nodes=1 --ntasks-per-node=1 --gres=gpu:a100:1 -t 0:15:00 -o cuda11.5.0.out --wrap='./cuda11.5.0.x 3,100,200,400,800,1600,3200,6400,12800'

nvcc -std=c++17 -arch=sm80 -O3 -DMAGMA -DCUDA -lmagma -I$PWD/magma/include -L$PWD/magma/lib -Xcompiler \"-Wl,-rpath,$PWD/magma/lib\" eigh.cpp -o magma2.8.0cuda11.5.0.x sbatch -p gputest --nodes=1 --ntasks-per-node=1 --gres=gpu:a100:1 -t 0:15:00 -o magma2.8.0cuda11.5.0.out --wrap='./magma2.8.0cuda11.5.0.x 3,100,200,400,800,1600,3200,6400,12800' ```

Testing CUDA 12.6.1 and MAGMA 2.9.0

Container source here.

```bash export SINGULARITY_BIND="/scratch,/projappl,/appl"

singularity exec -B /localscratch cudamagma.sif nvcc -std=c++17 -arch=sm80 -O3 -DCUDA -lcusolver eigh.cpp -o cuda12.6.1.x sbatch -p gputest --nodes=1 --ntasks-per-node=1 --gres=gpu:a100:1 -t 0:15:00 -o cuda12.6.1.out --wrap='singularity exec --nv cudamagma.sif ./cuda12.6.1.x 3,100,200,400,800,1600,3200,6400,12800'

singularity exec -B /localscratch cudamagma.sif nvcc -std=c++17 -arch=sm80 -O3 -DMAGMA -DCUDA -lmagma eigh.cpp -o magma2.9.0cuda12.6.1.x sbatch -p gputest --nodes=1 --ntasks-per-node=1 --gres=gpu:a100:1 -t 0:15:00 -o magma2.9.0cuda12.6.1.out --wrap='singularity exec --nv cudamagma.sif ./magma2.9.0_cuda12.6.1.x 3,100,200,400,800,1600,3200,6400,12800' ```

Owner

  • Name: CSC HPC
  • Login: cschpc
  • Kind: organization

HPC related software and documentation at CSC - IT Center for Science

GitHub Events

Total
  • Issue comment event: 1
  • Push event: 3
  • Pull request event: 2
  • Create event: 1
Last Year
  • Issue comment event: 1
  • Push event: 3
  • Pull request event: 2
  • Create event: 1