@@ -26,15 +26,21 @@ SINGLE_KERNEL ?= 0
2626# Default is the native GPU target
2727GPU_TARGETS ?= native
2828
29+ EXE =TransferBench
2930DEBUG ?= 0
3031
32+ # Only perform this check if 'make clean' is not the target
3133ifeq ($(filter clean,$(MAKECMDGOALS ) ) ,)
32- # Compile TransferBenchCuda if nvidia-smi returns successfully and nvcc detected
33- ifeq ("$(shell nvidia-smi > /dev/null 2>&1 && test -e $(NVCC) && echo found)", "found")
34- EXE =TransferBenchCuda
35- CXX =$(NVCC )
34+ ifeq ($(MAKECMDGOALS),TransferBenchCuda)
35+ # Check for nvcc
36+ ifneq ($(shell test -e $(NVCC) && echo found), found)
37+ $(error "Could not find $(NVCC). Please set CUDA_PATH appropriately")
38+ else
39+ $(info Compiling TransferBenchCuda using $(NVCC))
40+ endif
41+ NVFLAGS = -x cu -lnuma -arch=native
3642 else
37- EXE =TransferBench
43+ # Check for HIP compiler
3844 ifeq ("$(shell test -e $(HIPCC) && echo found)", "found")
3945 CXX =$(HIPCC )
4046 else ifeq ("$(shell test -e $(ROCM_PATH)/bin/hipcc && echo found)", "found")
@@ -44,18 +50,17 @@ ifeq ($(filter clean,$(MAKECMDGOALS)),)
4450 $(error "Could not find $(HIPCC) or $(ROCM_PATH)/bin/hipcc. Check if the path is correct if you want to build $(EXE)")
4551 endif
4652 GPU_TARGETS_FLAGS = $(foreach target,$(GPU_TARGETS ) ,"--offload-arch=$(target ) ")
47- endif
4853
49- CXXFLAGS = -I$(ROCM_PATH ) /include -I$(ROCM_PATH ) /include/hip -I$(ROCM_PATH ) /include/hsa
50- HIPLDFLAGS = -lnuma -L$(ROCM_PATH ) /lib -lhsa-runtime64 -lamdhip64
51- HIPFLAGS = -Wall -x hip -D__HIP_PLATFORM_AMD__ -D__HIPCC__ $(GPU_TARGETS_FLAGS )
52- ifneq ($(strip $(ROCM_DEVICE_LIB_PATH)),)
53- HIPFLAGS += --rocm-device-lib-path=$(ROCM_DEVICE_LIB_PATH )
54+ CXXFLAGS = -I$(ROCM_PATH ) /include -I$(ROCM_PATH ) /include/hip -I$(ROCM_PATH ) /include/hsa
55+ HIPLDFLAGS = -lnuma -L$(ROCM_PATH ) /lib -lhsa-runtime64 -lamdhip64
56+ HIPFLAGS = -Wall -x hip -D__HIP_PLATFORM_AMD__ -D__HIPCC__ $(GPU_TARGETS_FLAGS )
57+ ifneq ($(strip $(ROCM_DEVICE_LIB_PATH)),)
58+ HIPFLAGS += --rocm-device-lib-path=$(ROCM_DEVICE_LIB_PATH )
59+ endif
5460 endif
55- NVFLAGS = -x cu -lnuma -arch=native
5661
5762 ifeq ($(SINGLE_KERNEL), 1)
58- CXXFLAGS += -DSINGLE_KERNEL
63+ COMMON_FLAGS += -DSINGLE_KERNEL
5964 endif
6065
6166 ifeq ($(DEBUG), 0)
@@ -79,7 +84,7 @@ ifeq ($(filter clean,$(MAKECMDGOALS)),)
7984 else ifeq ("$(shell echo '# include <infiniband/verbs.h>' | $(CXX) -E - 2>/dev/null | grep -c 'infiniband/verbs.h')", "0")
8085 $(info infiniband/verbs.h not found)
8186 else
82- CXXFLAGS += -DNIC_EXEC_ENABLED
87+ COMMON_FLAGS += -DNIC_EXEC_ENABLED
8388 LDFLAGS += -libverbs
8489 NIC_ENABLED = 1
8590 endif
@@ -101,7 +106,7 @@ ifeq ($(filter clean,$(MAKECMDGOALS)),)
101106 $(info Unable to find mpi.h at $(MPI_PATH)/include. Please specify appropriate MPI_PATH)
102107 else
103108 MPI_ENABLED = 1
104- CXXFLAGS += -DMPI_COMM_ENABLED -I$(MPI_PATH ) /include
109+ COMMON_FLAGS += -DMPI_COMM_ENABLED -I$(MPI_PATH ) /include
105110 LDFLAGS += -L/$(MPI_PATH ) /lib -lmpi
106111 ifeq ($(DEBUG), 1)
107112 LDFLAGS += -lmpi_cxx
0 commit comments