diff --git a/Makefile b/Makefile index 0ccbb8e48..25b0bc591 100644 --- a/Makefile +++ b/Makefile @@ -85,7 +85,13 @@ ifeq ($(findstring -DPARIS,$(DFLAGS)),-DPARIS) CXXFLAGS += -I$(ROCM_PATH)/include/hipfft -I$(ROCM_PATH)/hipfft/include GPUFLAGS += -I$(ROCM_PATH)/include/hipfft -I$(ROCM_PATH)/hipfft/include LIBS += -L$(ROCM_PATH)/hipfft/lib -lhipfft - else + else ifdef NVIDIAMATH_ROOT + # on a subset of CUDA platform, the NVIDIA MATH libraries are handled + # separately from the rest of the core CUDA runtime libraries + CXXFLAGS += -I$(NVIDIAMATH_ROOT)/include + GPUFLAGS += -I$(NVIDIAMATH_ROOT)/include + LIBS += -L$(NVIDIAMATH_ROOT)/lib64 -lcufft + #else LIBS += -lcufft endif ifeq ($(findstring -DGRAVITY_5_POINTS_GRADIENT,$(DFLAGS)),-DGRAVITY_5_POINTS_GRADIENT) diff --git a/builds/machine.sh b/builds/machine.sh index 88ea91198..39d16cf0c 100755 --- a/builds/machine.sh +++ b/builds/machine.sh @@ -26,6 +26,9 @@ case $FQDN in *crusher* | *frontier* ) echo "frontier" exit 0 ;; + *vista.tacc* ) + echo "vista" + exit 0 ;; *) host=$(hostname) echo "Using default hostname, expecting make.host.$host" >&2 diff --git a/builds/make.host.vista b/builds/make.host.vista new file mode 100644 index 000000000..be8728f0c --- /dev/null +++ b/builds/make.host.vista @@ -0,0 +1,24 @@ + +#-- Compiler and flags for different build type +CXX = mpicxx +CXXFLAGS_DEBUG = -g -O0 -std=c++17 +CXXFLAGS_OPTIMIZE = -Ofast -std=c++17 +GPUFLAGS_OPTIMIZE = -g -O3 -std=c++17 +CUDA_ARCH = sm_90 +OMP_NUM_THREADS = 16 + +#-- Library +# The following ENV variable is defined by TACC's HDF5 module +# - the module files clearly state that these environment variables +# are defined when the modules are loaded +CUDA_ROOT := ${TACC_CUDA_DIR} +HDF5_ROOT := ${TACC_HDF5_DIR} + +# the following is required for cufft +# - note, the module file description doesn't clearly state that the +# environment variable is defined, but it is defined by the module +# file and it follows TACC's standard conventions +NVIDIAMATH_ROOT := ${TACC_NVIDIA_MATH_DIR} + +#-- MPI calls accept GPU buffers (requires GPU-aware MPI) +MPI_GPU = -DMPI_GPU diff --git a/builds/setup.vista.sh b/builds/setup.vista.sh new file mode 100755 index 000000000..9980edfce --- /dev/null +++ b/builds/setup.vista.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +#-- This script needs to be source-d in the terminal, e.g. +# source ./setup.vista.gcc.sh + +module load cuda/12.5 openmpi/5.0.5 hdf5/1.14.4 nvidia_math/12.4 + +export CHOLLA_ENVSET=1