|
@@ -1,5 +1,3 @@
|
|
|
-include ./findcudalib.mk
|
|
|
-
|
|
|
# Names of target, sources and object files
|
|
|
BIN = benchmark
|
|
|
SRC = $(wildcard *.c)
|
|
@@ -10,6 +8,9 @@ DEP_OCLFFT = .deps/oclfft/src/liboclfft.so
|
|
|
DEP_CLFFT = .deps/clFFT/src/library/libclFFT.so
|
|
|
DEPS = $(DEP_OCLFFT)
|
|
|
|
|
|
+# Libs titiles
|
|
|
+LIBS_MSG :=
|
|
|
+
|
|
|
# Common flags definition
|
|
|
CPPFLAGS :=
|
|
|
CFLAGS := -O3 -Wall -Werror -std=c99 -fmessage-length=0
|
|
@@ -18,17 +19,28 @@ LDFLAGS := -lOpenCL -lm
|
|
|
# Get bits of OS
|
|
|
ARCH := $(shell getconf LONG_BIT 2> /dev/null)
|
|
|
|
|
|
-# Determine AMDAPPSDKROOT includes
|
|
|
-ifeq ($(AMDAPPSDKROOT),)
|
|
|
- # Detect NVCC compiler
|
|
|
- NVCC_RESULT := $(shell which nvcc 2> /dev/null)
|
|
|
- NVCC_TEST := $(notdir $(NVCC_RESULT))
|
|
|
- CUDA_PATH := $(subst /bin/$(NVCC_TEST),"",$(NVCC_RESULT))
|
|
|
+# Detect NVCC compiler
|
|
|
+CUDA_NVCC_PATH := $(shell which nvcc 2> /dev/null)
|
|
|
+NVCC_NAME := $(notdir $(CUDA_NVCC_PATH))
|
|
|
|
|
|
- ifeq ($(NVCC_TEST),nvcc)
|
|
|
+# Detect CUDA_PATH compiler
|
|
|
+CUDA_PATH := $(subst /bin/$(NVCC_NAME),,$(CUDA_NVCC_PATH))
|
|
|
+CUDA_FFT := $(shell find $(CUDA_PATH)/ -maxdepth 2 -type f -name "libcufft.so*" 2> /dev/null)
|
|
|
+
|
|
|
+$(info $(CUDA_NVCC_PATH))
|
|
|
+$(info $(NVCC_NAME))
|
|
|
+$(info $(CUDA_PATH))
|
|
|
+$(info $(CUDA_FFT))
|
|
|
+
|
|
|
+# If true then try to use CUDA, otherwise AMD
|
|
|
+ifneq ($(CUDA_FFT),)
|
|
|
+ ifeq ($(NVCC_NAME),nvcc)
|
|
|
+$(info "WE USE CUDA")
|
|
|
CC := nvcc
|
|
|
override CPPFLAGS += -DHAVE_CUDA -DHAVE_CUDA_FFT
|
|
|
+
|
|
|
override CFLAGS += -I$(CUDA_PATH)/include
|
|
|
+
|
|
|
ifeq ($(ARCH),64)
|
|
|
override LDFLAGS += -L$(CUDA_PATH)/lib64
|
|
|
else
|
|
@@ -36,21 +48,23 @@ ifeq ($(AMDAPPSDKROOT),)
|
|
|
endif
|
|
|
|
|
|
override LDFLAGS += -lcufft -lcudart
|
|
|
- LIBS_MSG += " +cuda"
|
|
|
+
|
|
|
+ override LIBS_MSG += " +cuda"
|
|
|
endif
|
|
|
else
|
|
|
- override CFLAGS += -I$(AMDAPPSDKROOT)/include
|
|
|
-
|
|
|
- ifeq ($(ARCH),64)
|
|
|
- override LDFLAGS += -L$(AMDAPPSDKROOT)/lib/x86_64
|
|
|
+ ifneq ($(AMDAPPSDKROOT),)
|
|
|
+ override CFLAGS += -I$(AMDAPPSDKROOT)/include
|
|
|
+
|
|
|
+ #ifeq ($(ARCH),64)
|
|
|
+ # override LDFLAGS += -L$(AMDAPPSDKROOT)/lib/x86_64
|
|
|
+ #else
|
|
|
+ # override LDFLAGS += -L$(AMDAPPSDKROOT)/lib/x86
|
|
|
+ #endif
|
|
|
else
|
|
|
- override LDFLAGS += -L$(AMDAPPSDKROOT)/lib/x86
|
|
|
+$(error "SDKs paths cannot be found. Try setting CUDA_PATH for CUDA SDK or AMDAPPSDKROOT for AMD SDK.")
|
|
|
endif
|
|
|
endif
|
|
|
|
|
|
-# Libs titiles
|
|
|
-LIBS_MSG = ""
|
|
|
-
|
|
|
# AMD FFT library
|
|
|
AMD_FFT_EXISTS = $(shell pkg-config --exists clFFT && echo "1" || echo "0")
|
|
|
|
|
@@ -58,19 +72,19 @@ ifeq ($(AMD_FFT_EXISTS),1)
|
|
|
override CPPFLAGS += -DHAVE_AMD_FFT
|
|
|
override CFLAGS += $(shell pkg-config --cflags clFFT)
|
|
|
override LDFLAGS += $(shell pkg-config --libs clFFT)
|
|
|
- LIBS_MSG += " +amd"
|
|
|
+ override LIBS_MSG += " +amd"
|
|
|
else
|
|
|
override DEPS += $(DEP_CLFFT)
|
|
|
override CFLAGS += -I.deps/clFFT/src/include -DHAVE_AMD_FFT
|
|
|
override LDFLAGS += -L.deps/clFFT/src/library -lclFFT
|
|
|
- LIBS_MSG += " +amd"
|
|
|
+ override LIBS_MSG += " +amd"
|
|
|
endif
|
|
|
|
|
|
# Apple FFT library
|
|
|
override CPPFLAGS += -DHAVE_APPLE_FFT
|
|
|
override CFLAGS += -I.deps/
|
|
|
override LDFLAGS += -L.deps/oclfft/src -loclfft
|
|
|
-LIBS_MSG += " +apple"
|
|
|
+override LIBS_MSG += " +apple"
|
|
|
|
|
|
# FFTW library
|
|
|
FFTW_EXISTS = $(shell pkg-config --exists fftw3 && echo "1" || echo "0")
|
|
@@ -79,16 +93,16 @@ ifeq ($(FFTW_EXISTS),1)
|
|
|
override CPPFLAGS += -DHAVE_FFTW
|
|
|
override CFLAGS += $(shell pkg-config --cflags fftw3)
|
|
|
override LDFLAGS += $(shell pkg-config --libs fftw3)
|
|
|
- LIBS_MSG += " +fftw"
|
|
|
+ override LIBS_MSG += " +fftw"
|
|
|
endif
|
|
|
|
|
|
GENCODE_SM20 := -gencode arch=compute_20,code=sm_20
|
|
|
GENCODE_SM30 := -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=\"sm_35,compute_35\"
|
|
|
GENCODE_FLAGS := $(GENCODE_SM10) $(GENCODE_SM20) $(GENCODE_SM30)
|
|
|
|
|
|
-ALL_CPPFLAGS :=
|
|
|
-ALL_CFLAGS :=
|
|
|
-ALL_LDFLAGS :=
|
|
|
+ALL_CPPFLAGS :=
|
|
|
+ALL_CFLAGS :=
|
|
|
+ALL_LDFLAGS :=
|
|
|
|
|
|
ifeq ($(CC),nvcc)
|
|
|
override ALL_CFLAGS += $(addprefix -Xcompiler ,$(CFLAGS))
|
|
@@ -108,7 +122,6 @@ all: $(BIN)
|
|
|
%.o: %.c Makefile $(DEPS)
|
|
|
@echo [CC] $@
|
|
|
@echo $(wildcard $(AMDAPPSDKROOT))
|
|
|
- @echo $(NVCC_RESULT)
|
|
|
@echo $(CFLAGS)
|
|
|
@echo $(ALL_LDFLAGS)
|
|
|
@$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c $< -o $@
|