-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMakefile
More file actions
67 lines (55 loc) · 2.56 KB
/
Copy pathMakefile
File metadata and controls
67 lines (55 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
SM=80
COMPUTE=$(SM)
CC=gcc
NVCC=nvcc
SRC_PATH=lib
BUILD_PATH=build
SRC_ALIGNER=tools/aligner.c utils/arg_handler.c utils/sequence_reader.c
SRC_LIB=$(SRC_PATH)/kernels/sequence_alignment_kernel.cu $(SRC_PATH)/kernels/sequence_alignment_kernel_aband.cu $(SRC_PATH)/kernels/sequence_distance_kernel.cu $(SRC_PATH)/kernels/sequence_distance_kernel_aband.cu $(SRC_PATH)/kernels/sequence_packing_kernel.cu $(wildcard $(SRC_PATH)/*.cu) lib/alignment_results.c lib/aligner.c utils/cigar.c utils/verification.c utils/device_query.cu
SRC_WFA_CPU=utils/wfa_cpu.c
ARGS=-I . -Ilib/
ARGS_ALIGNER=-Wall -Wno-unused-function -Lbuild/ -L/usr/local/cuda/lib64 $(ARGS)
ARGS_WFA_CPU=-Lexternal/WFA2-lib/lib/ $(ARGS) -Iexternal/WFA2-lib/ -lwfa
NVCC_OPTIONS=-O3 -maxrregcount=64 -gencode arch=compute_$(COMPUTE),code=sm_$(SM) -Xptxas -v# -Xcompiler -fopenmp
aligner: wfa-cpu wfa-gpu-so $(SRC_ALIGNER)
mkdir -p bin
$(CC) $(SRC_ALIGNER) $(ARGS_ALIGNER) -Lexternal/WFA2-lib/lib/ -O3 -o bin/wfa.affine.gpu -lwfagpu -lwfa -lm -Wl,-rpath=$(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build/ -fopenmp
aligner-debug: wfa-cpu wfa-gpu-debug-so $(SRC_ALIGNER)
mkdir -p bin
$(CC) $(SRC_ALIGNER) $(ARGS_ALIGNER) -ggdb -DDEBUG -Lexternal/WFA2-lib/lib/ -o bin/wfa.affine.gpu -lwfagpu -lwfa -lm -fopenmp
aligner-profile: wfa-cpu wfa-gpu-profile-so $(SRC_ALIGNER)
mkdir -p bin
$(CC) $(SRC_ALIGNER) $(ARGS_ALIGNER) -Lexternal/WFA2-lib/lib/ -o bin/wfa.affine.gpu -lwfagpu -lwfa -lm -fopenmp
run-tests:
for f in bin/test-*; do ./$$f; done
wfa-gpu-so: $(SRC_LIB)
mkdir -p build
$(NVCC) $(NVCC_OPTIONS) $(ARGS) -Xcompiler -fPIC -Xcompiler -fopenmp -dc $(SRC_LIB)
mv *.o build/
$(NVCC) $(NVCC_OPTIONS) -shared -o build/libwfagpu.so build/*.o -lcudart
wfa-gpu-debug-so: $(SRC_LIB)
mkdir -p build
$(NVCC) $(NVCC_OPTIONS) -g -G -DDEBUG $(ARGS) -Xcompiler -fPIC -dc $(SRC_LIB)
mv *.o build/
$(NVCC) $(NVCC_OPTIONS) -shared -o build/libwfagpu.so build/*.o -lcudart
wfa-gpu-profile-so: $(SRC_LIB)
mkdir -p build
$(NVCC) $(NVCC_OPTIONS) -lineinfo $(ARGS) -Xcompiler -fPIC -dc $(SRC_LIB)
mv *.o build/
$(NVCC) $(NVCC_OPTIONS) -lineinfo -shared -o build/libwfagpu.so build/*.o -lcudart
external/WFA2-lib:
$(MAKE) -C $@
wfa-cpu: $(SRC_WFA_CPU) external/WFA2-lib
mkdir -p build
$(CC) $(ARGS) $(ARGS_WFA_CPU) -O3 -fopenmp -Wall -fPIC -c $(SRC_WFA_CPU)
mv *.o build/
wfa-gpu: $(SRC_LIB) wfa-cpu
# TODO: Not working well
mkdir -p build
$(NVCC) $(NVCC_OPTIONS) $(ARGS) -Xcompiler -fPIC -dc $^
mv *.o build/
$(NVCC) -dlink -o wfagpu.o build/*.o -lcudart
ar cru build/libwfagpu.a build/*.o
clean:
rm -rf build/ bin/
.PHONY: external/WFA2-lib