Unverified Commit 9ec17d7d authored by gilbertlee-amd's avatar gilbertlee-amd Committed by GitHub
Browse files

Fixing some Makefile issues, Null memory parsing (#231)

parent fb07c307
...@@ -3,6 +3,14 @@ ...@@ -3,6 +3,14 @@
Documentation for TransferBench is available at Documentation for TransferBench is available at
[https://rocm.docs.amd.com/projects/TransferBench](https://rocm.docs.amd.com/projects/TransferBench). [https://rocm.docs.amd.com/projects/TransferBench](https://rocm.docs.amd.com/projects/TransferBench).
## v1.66.01
## Fixed
- Adding support for TheRock
- Fixing parsing issue when using NULL memory type
- Fixing CUAD compilation flags when enabling NIC/MPI
## Modified
- TransferBenchCuda must now be explicitly built with via 'make TransferBenchCuda'
## v1.66.00 ## v1.66.00
### Added ### Added
- Adding multi-node support - Adding multi-node support
......
...@@ -9,7 +9,7 @@ if (NOT CMAKE_TOOLCHAIN_FILE) ...@@ -9,7 +9,7 @@ if (NOT CMAKE_TOOLCHAIN_FILE)
message(STATUS "CMAKE_TOOLCHAIN_FILE: ${CMAKE_TOOLCHAIN_FILE}") message(STATUS "CMAKE_TOOLCHAIN_FILE: ${CMAKE_TOOLCHAIN_FILE}")
endif() endif()
set(VERSION_STRING "1.66.00") set(VERSION_STRING "1.66.01")
project(TransferBench VERSION ${VERSION_STRING} LANGUAGES CXX) project(TransferBench VERSION ${VERSION_STRING} LANGUAGES CXX)
## Load CMake modules ## Load CMake modules
......
...@@ -26,15 +26,21 @@ SINGLE_KERNEL ?= 0 ...@@ -26,15 +26,21 @@ SINGLE_KERNEL ?= 0
# Default is the native GPU target # Default is the native GPU target
GPU_TARGETS ?= native GPU_TARGETS ?= native
EXE=TransferBench
DEBUG ?= 0 DEBUG ?= 0
# Only perform this check if 'make clean' is not the target
ifeq ($(filter clean,$(MAKECMDGOALS)),) ifeq ($(filter clean,$(MAKECMDGOALS)),)
# Compile TransferBenchCuda if nvidia-smi returns successfully and nvcc detected ifeq ($(MAKECMDGOALS),TransferBenchCuda)
ifeq ("$(shell nvidia-smi > /dev/null 2>&1 && test -e $(NVCC) && echo found)", "found") # Check for nvcc
EXE=TransferBenchCuda ifneq ($(shell test -e $(NVCC) && echo found), found)
CXX=$(NVCC) $(error "Could not find $(NVCC). Please set CUDA_PATH appropriately")
else
$(info Compiling TransferBenchCuda using $(NVCC))
endif
NVFLAGS = -x cu -lnuma -arch=native
else else
EXE=TransferBench # Check for HIP compiler
ifeq ("$(shell test -e $(HIPCC) && echo found)", "found") ifeq ("$(shell test -e $(HIPCC) && echo found)", "found")
CXX=$(HIPCC) CXX=$(HIPCC)
else ifeq ("$(shell test -e $(ROCM_PATH)/bin/hipcc && echo found)", "found") else ifeq ("$(shell test -e $(ROCM_PATH)/bin/hipcc && echo found)", "found")
...@@ -44,18 +50,17 @@ ifeq ($(filter clean,$(MAKECMDGOALS)),) ...@@ -44,18 +50,17 @@ ifeq ($(filter clean,$(MAKECMDGOALS)),)
$(error "Could not find $(HIPCC) or $(ROCM_PATH)/bin/hipcc. Check if the path is correct if you want to build $(EXE)") $(error "Could not find $(HIPCC) or $(ROCM_PATH)/bin/hipcc. Check if the path is correct if you want to build $(EXE)")
endif endif
GPU_TARGETS_FLAGS = $(foreach target,$(GPU_TARGETS),"--offload-arch=$(target)") GPU_TARGETS_FLAGS = $(foreach target,$(GPU_TARGETS),"--offload-arch=$(target)")
endif
CXXFLAGS = -I$(ROCM_PATH)/include -I$(ROCM_PATH)/include/hip -I$(ROCM_PATH)/include/hsa CXXFLAGS = -I$(ROCM_PATH)/include -I$(ROCM_PATH)/include/hip -I$(ROCM_PATH)/include/hsa
HIPLDFLAGS= -lnuma -L$(ROCM_PATH)/lib -lhsa-runtime64 -lamdhip64 HIPLDFLAGS= -lnuma -L$(ROCM_PATH)/lib -lhsa-runtime64 -lamdhip64
HIPFLAGS = -Wall -x hip -D__HIP_PLATFORM_AMD__ -D__HIPCC__ $(GPU_TARGETS_FLAGS) HIPFLAGS = -Wall -x hip -D__HIP_PLATFORM_AMD__ -D__HIPCC__ $(GPU_TARGETS_FLAGS)
ifneq ($(strip $(ROCM_DEVICE_LIB_PATH)),) ifneq ($(strip $(ROCM_DEVICE_LIB_PATH)),)
HIPFLAGS += --rocm-device-lib-path=$(ROCM_DEVICE_LIB_PATH) HIPFLAGS += --rocm-device-lib-path=$(ROCM_DEVICE_LIB_PATH)
endif
endif endif
NVFLAGS = -x cu -lnuma -arch=native
ifeq ($(SINGLE_KERNEL), 1) ifeq ($(SINGLE_KERNEL), 1)
CXXFLAGS += -DSINGLE_KERNEL COMMON_FLAGS += -DSINGLE_KERNEL
endif endif
ifeq ($(DEBUG), 0) ifeq ($(DEBUG), 0)
...@@ -79,7 +84,7 @@ ifeq ($(filter clean,$(MAKECMDGOALS)),) ...@@ -79,7 +84,7 @@ ifeq ($(filter clean,$(MAKECMDGOALS)),)
else ifeq ("$(shell echo '#include <infiniband/verbs.h>' | $(CXX) -E - 2>/dev/null | grep -c 'infiniband/verbs.h')", "0") else ifeq ("$(shell echo '#include <infiniband/verbs.h>' | $(CXX) -E - 2>/dev/null | grep -c 'infiniband/verbs.h')", "0")
$(info infiniband/verbs.h not found) $(info infiniband/verbs.h not found)
else else
CXXFLAGS += -DNIC_EXEC_ENABLED COMMON_FLAGS += -DNIC_EXEC_ENABLED
LDFLAGS += -libverbs LDFLAGS += -libverbs
NIC_ENABLED = 1 NIC_ENABLED = 1
endif endif
...@@ -101,7 +106,7 @@ ifeq ($(filter clean,$(MAKECMDGOALS)),) ...@@ -101,7 +106,7 @@ ifeq ($(filter clean,$(MAKECMDGOALS)),)
$(info Unable to find mpi.h at $(MPI_PATH)/include. Please specify appropriate MPI_PATH) $(info Unable to find mpi.h at $(MPI_PATH)/include. Please specify appropriate MPI_PATH)
else else
MPI_ENABLED = 1 MPI_ENABLED = 1
CXXFLAGS += -DMPI_COMM_ENABLED -I$(MPI_PATH)/include COMMON_FLAGS += -DMPI_COMM_ENABLED -I$(MPI_PATH)/include
LDFLAGS += -L/$(MPI_PATH)/lib -lmpi LDFLAGS += -L/$(MPI_PATH)/lib -lmpi
ifeq ($(DEBUG), 1) ifeq ($(DEBUG), 1)
LDFLAGS += -lmpi_cxx LDFLAGS += -lmpi_cxx
......
...@@ -40,7 +40,7 @@ THE SOFTWARE. ...@@ -40,7 +40,7 @@ THE SOFTWARE.
#include <random> #include <random>
#include <time.h> #include <time.h>
#define CLIENT_VERSION "00" #define CLIENT_VERSION "01"
#include "TransferBench.hpp" #include "TransferBench.hpp"
using namespace TransferBench; using namespace TransferBench;
......
...@@ -1176,7 +1176,10 @@ namespace { ...@@ -1176,7 +1176,10 @@ namespace {
} }
// Parse memory type // Parse memory type
ERR_CHECK(CharToMemType(*ptr, w.memType)); ErrResult err = CharToMemType(*ptr, w.memType);
if (err.errType != ERR_NONE) {
return {err.errType, "Error parsing token [%s]: %s\n", token.c_str(), err.errMsg.c_str()};
}
ptr++; // Skip memory type ptr++; // Skip memory type
// Parse memory index // Parse memory index
...@@ -1184,6 +1187,8 @@ namespace { ...@@ -1184,6 +1187,8 @@ namespace {
ptr = ParseRange(ptr, -1, w.memIndices); ptr = ParseRange(ptr, -1, w.memIndices);
if (!ptr) return {ERR_FATAL, "Unable to parse device index in memory token %s", token.c_str()}; if (!ptr) return {ERR_FATAL, "Unable to parse device index in memory token %s", token.c_str()};
memDevices.push_back(w); memDevices.push_back(w);
} else {
break;
} }
} }
return ERR_NONE; return ERR_NONE;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment