Skip to content

Commit

Permalink
enable affinity mini-app to build for nvidia
Browse files Browse the repository at this point in the history
  • Loading branch information
cjknight committed Feb 25, 2025
1 parent 78d0379 commit 213b529
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 37 deletions.
81 changes: 47 additions & 34 deletions gpu/mini-apps/affinity/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#

# Definition of MACROS

BASE_LIBGPU=../../src
Expand All @@ -10,74 +10,87 @@ CXX = g++
CXXFLAGS=
FC=gfortran
FCFLAGS=
LD = g++
LD = $(CXX)
LDFLAGS = -fPIC -shared
AR = ar rcs
CPP=cpp -P -traditional
CPP = cpp -P -traditional
INSTALL=../

CUDA_CXX = $(CXX)
CUDA_CXXFLAGS =

ARCH ?= polaris-gnu-nvcc
include $(BASE_LIBGPU)/arch/$(ARCH)

CXXFLAGS += -I$(BASE_LIBGPU)
# -- subset of src files with cuda kernels (need nvcc compiler)
CUDA_SRC = pm/pm_cuda.cpp
CUDA_INC = $(CUDA_SRC:.cpp=.h)
TMP0 = $(CUDA_SRC:pm/%=%)
CUDA_OBJ = $(TMP0:.cpp=.o)

$(info ARCH is [${ARCH}])
# -- subset of src files in src directory
C_SRC = $(wildcard *.cpp)
C_INC = $(wildcard *.h)
C_OBJ = $(C_SRC:.cpp=.o)

CSRC = $(wildcard *.cpp)
INC = $(wildcard *.h)
COBJ = $(CSRC:.cpp=.o)
# -- subset of src files in src/pm directory
PM_SRC = $(filter-out $(CUDA_SRC), $(wildcard pm/*.cpp))
PM_INC = $(filter-out $(CUDA_INC), $(wildcard pm/*.h))
TMP1 = $(PM_SRC:pm/%=%)
PM_OBJ = $(TMP1:.cpp=.o)

FSRC = $(wildcard *.F90)
MOD = $(FSRC:.F90=.mod)
FOBJ = $(FSRC:.F90=.o)
#$(info CUDA_SRC is [${CUDA_SRC}])
#$(info CUDA_INC is [${CUDA_INC}])
#$(info CUDA_OBJ is [${CUDA_OBJ}])

#$(info CSRC is [${CSRC}])
#$(info INC is [${INC}])
#$(info COBJ is [${COBJ}])
#$(info C_SRC is [${C_SRC}])
#$(info C_INC is [${C_INC}])
#$(info C_OBJ is [${C_OBJ}])

#$(info FSRC is [${FSRC}])
#$(info MOD is [${MOD}])
#$(info FOBJ is [${FOBJ}])
#$(info PM_SRC is [${PM_SRC}])
#$(info PM_INC is [${PM_INC}])
#$(info PM_OBJ is [${PM_OBJ}])

#
# -- target : Dependencies
# -- Rule to create target

$(EXE): $(COBJ) $(FOBJ) $(MOD)
$(LD) $(LDFLAGS) -o $@ $(COBJ) $(LIB)

install: $(EXE)
cp $(EXE) $(INSTALL)
# cp $(MOD) $(FOBJ) $(INSTALL)/include
$(EXE): $(C_OBJ) $(CUDA_OBJ) $(PM_OBJ)
$(LD) $(LDFLAGS) -o $@ $(C_OBJ) $(CUDA_OBJ) $(PM_OBJ) $(LIB)

update:
cp ../../src/pm*.cpp ./
cp -r ../../src/pm ./
rm -f ./pm/device_*

####################################################################

$(COBJ): %.o: %.cpp
$(C_OBJ): %.o: %.cpp
$(CXX) $(CXXFLAGS) -c $<

$(FOBJ): %.o: %.F90
$(FC) $(FCFLAGS) -c $<
$(CUDA_OBJ): %.o: pm/%.cpp
$(CUDA_CXX) -x cu $(CUDA_CXXFLAGS) -c $< -o $@

$(MOD): %.mod: %.F90
$(FC) $(FCFLAGS) -c $<
$(PM_OBJ): %.o: pm/%.cpp
$(CXX) $(CXXFLAGS) -c $<

#
# -- Remove *.o and *~ from the directory
clean:
rm -f *.o *.mod *~ $(EXE)
rm -f *.o *~ ./$(EXE)
rm -f $(INSTALL)/$(EXE)
rm -rf $(EXE).dSYM
#
# -- Remove *.o, *~, and executable from the directory
realclean:
rm -f *.o *.mod *~ $(EXE)
rm -f *.o *~ ./$(EXE)
rm -f $(INSTALL)/$(EXE)
rm -rf $(EXE).dSYM
rm -f *.optrpt
rm -f pm*.cpp
rm -r pm

#
# -- Simple dependencies

pm_cuda.o : pm/pm_cuda.cpp pm/pm_cuda.h pm/pm.h
pm_sycl.o : pm/pm_sycl.cpp pm/pm_sycl.h pm/pm.h
pm_hip.o : pm/pm_hip.cpp pm/pm_hip.h pm/pm.h
pm_openmp.o : pm/pm_openmp.cpp pm/pm_openmp.h pm/pm.h
pm_host.o : pm/pm_host.cpp pm/pm_host.h pm/pm.h
2 changes: 1 addition & 1 deletion gpu/mini-apps/affinity/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#include <mpi.h>
#include <omp.h>

#include "pm.h"
#include "pm/pm.h"

using namespace PM_NS;

Expand Down
2 changes: 0 additions & 2 deletions gpu/mini-apps/math/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,6 @@ realclean:
#
# -- Simple dependencies

libgpu.o : libgpu.cpp libgpu.h

pm_cuda.o : pm/pm_cuda.cpp pm/pm_cuda.h pm/pm.h
pm_sycl.o : pm/pm_sycl.cpp pm/pm_sycl.h pm/pm.h
pm_hip.o : pm/pm_hip.cpp pm/pm_hip.h pm/pm.h
Expand Down

0 comments on commit 213b529

Please sign in to comment.