Makefile 682 Bytes
Newer Older
1
GPU_ARCH ?= gfx936
2
3
4
5
6
CXX ?= hipcc
CXX_FLAGS ?= -std=c++17 -O3

TARGET := gemv_bench
SRC := main.cpp
7
8
LIB := libgemv_bf16.so
LIB_SRC := gemv_export.cpp
9
10
DEP := gemv_bf16.h gemv_utils.h hip_compat.h

11
12
13
14
15
16
17
18
19
20
21
22
IS_HIPCC := $(findstring hipcc,$(CXX))

# 根据编译器调整 Flags
ifneq (,$(IS_HIPCC))
    # HIPCC
    ARCH_FLAGS := --offload-arch=$(GPU_ARCH)
else
    # NVCC
    ARCH_FLAGS := -arch=$(GPU_ARCH) -x cu
endif

.PHONY: all clean lib lib.so
23
24
25

all: $(TARGET)

26
27
28
29
30
31
lib: $(LIB)
lib.so: $(LIB)

$(LIB): $(LIB_SRC) $(DEP)
	$(CXX) $(CXX_FLAGS) $(ARCH_FLAGS) -shared -fPIC -o $@ $<

32
$(TARGET): $(SRC) $(DEP)
33
	$(CXX) $(CXX_FLAGS) $(ARCH_FLAGS) -o $@ $<
34
35

clean:
36
	rm -f $(TARGET) $(LIB) *.o lib lib.so