https://github.com/RSkinderowicz/GPUBasedACS
Tip revision: f2c85cd5bf10321b1e1a19ca8d1ecb3bd0054fb1 authored by rafski on 05 May 2017, 10:32:42 UTC
Extended description in README
Extended description in README
Tip revision: f2c85cd
Makefile
GOOD_WARN = -std=c++11
NVCC = nvcc
CXX = g++
# The following should be adjusted to the target GPU architecture:
# -gencode arch=compute_50,code=sm_50
mode = release
ifeq ($(mode),release)
CXXFLAGS = -pipe -std=c++11 -Wall -pedantic -DNDEBUG -O2 -mtune=native -march=native
NVCCFLAGS = -std=c++11 -m64 -gencode arch=compute_50,code=sm_50 -Xptxas="-v" -DNDEBUG
else
mode = debug
CXXFLAGS = -g -pipe -std=c++11 -Wall -O0 -Wcast-align -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wnoexcept -Woverloaded-virtual -Wredundant-decls -Wsign-promo -Wstrict-null-sentinel -Wstrict-overflow=5 -Wswitch-default -Wundef -Werror -Wno-unused
NVCCFLAGS = -G -std=c++11 -m64 -gencode arch=compute_50,code=sm_50
endif
# This should point to a valid CUDA lib64/ location
LDFLAGS = -L/usr/local/cuda/lib64/ -lcuda -lcudart
BUILDDIR = obj
TARGET = gpuants
SRCDIR = src
SOURCES = main.cc ants.cc common.cc stopcondition.cc local_search.cc
CUDA_SOURCES = gpu_ants.cu gpu_phmem.cu tsp_ls_gpu.cu cuda_utils.cu gpu_acs.cu
OBJS = $(SOURCES:.cc=.o)
CUDA_OBJS = $(CUDA_SOURCES:.cu=.o)
$(info $$OBJS is [${OBJS}])
OUT_OBJS = $(addprefix $(BUILDDIR)/,$(OBJS))
OUT_CUDA_OBJS = $(addprefix $(BUILDDIR)/,$(CUDA_OBJS))
DEPS = $(SOURCES:%.cc=$(BUILDDIR)/%.depends)
DEPS += $(SOURCES:%.cu=$(BUILDDIR)/%.depends)
$(warning $(DEPS))
.PHONY: clean all
all: $(TARGET)
$(TARGET): $(OUT_OBJS) $(OUT_CUDA_OBJS)
$(NVCC) $(NVCCFLAGS) $(OUT_CUDA_OBJS) -dlink -o $(BUILDDIR)/link.o
$(CXX) $(CXXFLAGS) $(OUT_OBJS) $(OUT_CUDA_OBJS) $(BUILDDIR)/link.o $(LDFLAGS) -o $(TARGET)
$(BUILDDIR)/%.o: $(SRCDIR)/%.cc
@mkdir -p $(BUILDDIR)
$(CXX) $(CXXFLAGS) -c $< -o $@
$(BUILDDIR)/%.o: $(SRCDIR)/%.cu
$(NVCC) $(NVCCFLAGS) -dc $< -o $@
$(BUILDDIR)/%.depends: $(SRCDIR)/%.cc
@mkdir -p depends
$(CXX) -MF"$@" -MG -MM -MP -MT"$(<F:%.cc=$(BUILDDIR)/%.o)" $(CXXFLAGS) $< > $@
$(BUILDDIR)/%.depends: $(SRCDIR)/%.cu
$(CXX) -MF"$@" -MG -MM -MP -MT"$(<F:%.cu=$(BUILDDIR)/%.o)" $(CXXFLAGS) $< > $@
clean:
rm -f $(OUT_OBJS) $(OUT_CUDA_OBJS) $(DEPS) $(TARGET)
-include $(DEPS)