GPU_ARCH ?= gfx936
CXX ?= hipcc
CXX_FLAGS ?= -std=c++17 -O3
HIPCC_FLAGS = --offload-arch=$(GPU_ARCH)
NVCC_FLAGS = -arch=$(GPU_ARCH) -x cu

TARGET := gemv_bench
SRC := main.cpp
DEP := gemv_bf16.h gemv_utils.h hip_compat.h

.PHONY: all clean

all: $(TARGET)

# 根据 CXX 变量判断编译器类型
ifneq (,$(findstring hipcc,$(CXX)))
# HIPCC 编译
$(TARGET): $(SRC) $(DEP)
	$(CXX) $(CXX_FLAGS) $(HIPCC_FLAGS) $< -o $@
else
# NVCC 编译
$(TARGET): $(SRC) $(DEP)
	$(CXX) $(CXX_FLAGS) $(NVCC_FLAGS) $< -o $@
endif

clean:
	rm -f $(TARGET)
