Spaces:
Build error
Build error
# Unix commands. | |
PYTHON := python3 | |
NVCC_COMPILE := nvcc -c -o | |
RM_RF := rm -rf | |
# Library compilation rules. | |
NVCC_FLAGS := -x cu -Xcompiler -fPIC -shared | |
# File structure. | |
BUILD_DIR := build | |
INCLUDE_DIRS := src | |
TORCH_FFI_BUILD := build_ffi.py | |
KNN_KERNEL := $(BUILD_DIR)/knn_cuda_kernel.so | |
TORCH_FFI_TARGET := $(BUILD_DIR)/knn_pytorch/_knn_pytorch.so | |
INCLUDE_FLAGS := $(foreach d, $(INCLUDE_DIRS), -I$d) | |
DEBUB := 0 | |
# Debugging | |
ifeq ($(DEBUG), 1) | |
COMMON_FLAGS += -DDEBUG -g -O0 | |
NVCC_FLAGS += -G | |
else | |
COMMON_FLAGS += -DNDEBUG -O2 | |
endif | |
all: $(TORCH_FFI_TARGET) | |
$(TORCH_FFI_TARGET): $(KNN_KERNEL) $(TORCH_FFI_BUILD) | |
$(PYTHON) $(TORCH_FFI_BUILD) | |
$(BUILD_DIR)/%.so: src/%.cu | |
@ mkdir -p $(BUILD_DIR) | |
# Separate cpp shared library that will be loaded to the extern C ffi | |
$(NVCC_COMPILE) $@ $? $(NVCC_FLAGS) $(INCLUDE_FLAGS) | |
clean: | |
$(RM_RF) $(BUILD_DIR) $(KNN_KERNEL) | |