Changeset 2659


Ignore:
Timestamp:
09/23/24 16:10:58 (4 days ago)
Author:
jderouillat
Message:

Integrating a Kokkos build into the XIOS one.

Location:
XIOS3/dev/XIOS_KOKKOS
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • XIOS3/dev/XIOS_KOKKOS/arch/arch-X64_JEANZAY_KOKKOS.env

    r2654 r2659  
    11module purge 
     2 
     3XIOS_ARCH=OPENMP 
    24 
    35module load gcc/9.1.0 nvidia-compilers/23.1 cuda/12.1.0 
    46 
    5 export KOKKOS_HOME=${LSCEWORK}/KOKKOS/INSTALL/kokkos.traccs.oMP 
    6 export PATH=${KOKKOS_HOME}/bin:${PATH} 
    7 export LD_LIBRARY_PATH=${KOKKOS_HOME}/lib64:${LD_LIBRARY_PATH} 
    8 export CPATH=${KOKKOS_HOME}/include:${CPATH} 
    9  
    107module load openmpi/4.1.1-cuda 
     8# Kokkos wrapper 
    119export OMPI_CXX=nvcc_wrapper 
    1210module load hdf5/1.12.0-mpi-cuda 
  • XIOS3/dev/XIOS_KOKKOS/arch/arch-X64_JEANZAY_KOKKOS.fcm

    r2654 r2659  
    1919 
    2020%BASE_INC       -D__NONE__ 
    21 %BASE_LD        -lstdc++ -L${KOKKOS_HOME}/lib64 -lkokkoscore -ldl -L/gpfslocalsys/cuda/12.2.0/lib64 -lcudart -fopenmp 
     21%BASE_LD        -lstdc++ -L${KOKKOS_HOME}/lib64 -lkokkoscore -ldl -fopenmp -L/gpfslocalsys/cuda/12.2.0/lib64 -lcudart 
    2222 
    2323%CPP            cpp 
  • XIOS3/dev/XIOS_KOKKOS/arch/arch-X64_JEANZAY_KOKKOS_GPU.env

    r2654 r2659  
    11module purge 
     2 
     3XIOS_ARCH=NVIDIA 
    24 
    35module load gcc/9.1.0 nvidia-compilers/23.1 cuda/12.1.0 
    46 
    5 export KOKKOS_HOME=${LSCEWORK}/KOKKOS/INSTALL/kokkos 
    6 export PATH=${KOKKOS_HOME}/bin:${PATH} 
    7 export LD_LIBRARY_PATH=${KOKKOS_HOME}/lib64:${LD_LIBRARY_PATH} 
    8 export CPATH=${KOKKOS_HOME}/include:${CPATH} 
    9  
    107module load openmpi/4.1.1-cuda 
     8# Kokkos wrapper 
    119export OMPI_CXX=nvcc_wrapper 
    1210module load hdf5/1.12.0-mpi-cuda 
  • XIOS3/dev/XIOS_KOKKOS/arch/arch-X64_JEANZAY_KOKKOS_GPU.fcm

    r2654 r2659  
    88%LINKER         mpif90 
    99 
    10 %BASE_CFLAGS    -I${KOKKOS_HOME}/include -std=c++17 -extended-lambda -arch=sm_70 -fopenmp 
     10%BASE_CFLAGS    -I${KOKKOS_HOME}/include -std=c++17 -extended-lambda -arch=sm_70 
    1111%PROD_CFLAGS    -O3 -w 
    1212%DEV_CFLAGS     -g -traceback 
     
    1919 
    2020%BASE_INC       -D__NONE__ 
    21 %BASE_LD        -acc -gpu=cc70 -lstdc++ -L${KOKKOS_HOME}/lib64 -lkokkoscore -ldl -L/gpfslocalsys/cuda/12.2.0/lib64 -lcudart -fopenmp 
     21%BASE_LD        -acc -gpu=cc70 -lstdc++ -L${KOKKOS_HOME}/lib64 -lkokkoscore -ldl -L/gpfslocalsys/cuda/12.2.0/lib64 -lcudart -lcuda 
    2222 
    2323%CPP            cpp 
  • XIOS3/dev/XIOS_KOKKOS/make_xios

    r2629 r2659  
    168168fi 
    169169 
     170 
     171############################## 
     172# Installation de Kokkos 
     173export CURRENT_DIR=${PWD} 
     174module load cmake 
     175module load git 
     176git clone https://github.com/kokkos/kokkos.git extern/kokkos 
     177 
     178if [  ! -d extern/kokkos ] 
     179then 
     180    # github not reachable from compute nodes ? 
     181    echo "github is not not reachable from the resource used" 
     182    echo "Download kokkos in extern/kokkos bu your own." 
     183    exit 1 
     184fi 
     185 
     186if [ ! -f ${install_dir}/kokkos_${XIOS_ARCH}/lib64/libkokkoscore.a ] 
     187then  
     188 
     189    export KOKKOS_SRC=${PWD}/extern/kokkos 
     190    mkdir -p ${KOKKOS_SRC}/build_${XIOS_ARCH} 
     191    cd ${KOKKOS_SRC}/build_${XIOS_ARCH} 
     192 
     193    if [[ "$XIOS_ARCH" == "NVIDIA" ]]        # GPU 
     194    then 
     195        cmake .. \ 
     196              -DCMAKE_CXX_COMPILER=${KOKKOS_SRC}/bin/nvcc_wrapper \ 
     197              -DCMAKE_INSTALL_PREFIX=${install_dir}/kokkos_${XIOS_ARCH} \ 
     198              -DKokkos_ENABLE_CUDA=ON -DKokkos_ARCH_VOLTA70=ON 
     199        ##../generate_makefile.bash \ 
     200        ##    --compiler=g++ \ 
     201        ##    --prefix=${install_dir}/kokkos_${XIOS_ARCH} \ 
     202        ##    --with-cuda --arch=Volta70  # --with-openmp 
     203    elif [[ "$XIOS_ARCH" == "OPENMP" ]]      # OMP 
     204    then 
     205        cmake .. \ 
     206              -DCMAKE_CXX_COMPILER=${KOKKOS_SRC}/bin/nvcc_wrapper \ 
     207              -DCMAKE_INSTALL_PREFIX=${install_dir}/kokkos_${XIOS_ARCH} \ 
     208              -DKokkos_ENABLE_OPENMP=ON 
     209    elif [[ "$XIOS_ARCH" == "NONE" ]]      # Serial 
     210    then     
     211        cmake .. \ 
     212              -DCMAKE_CXX_COMPILER=${KOKKOS_SRC}/bin/nvcc_wrapper \ 
     213              -DCMAKE_INSTALL_PREFIX=${install_dir}/kokkos_${XIOS_ARCH} \ 
     214              -DKokkos_ENABLE_SERIAL=ON 
     215    fi 
     216 
     217    make -j ${job} 
     218    make install 
     219 
     220fi 
     221 
     222export KOKKOS_HOME=${install_dir}/kokkos_${XIOS_ARCH} 
     223export PATH=${KOKKOS_HOME}/bin:${PATH} 
     224export LD_LIBRARY_PATH=${KOKKOS_HOME}/lib64:${LD_LIBRARY_PATH} 
     225export CPATH=${KOKKOS_HOME}/include:${CPATH} 
     226 
     227cd ${CURRENT_DIR} 
     228# Installation de Kokkos (Fin) 
     229############################## 
     230 
     231 
    170232rm -r $PWD/extern/netcdf4 
    171233 
Note: See TracChangeset for help on using the changeset viewer.