
CC = nvcc
CFLAGS = 
fPIC_flag = -Xcompiler=-fPIC

obj_files = conv2d_bias_few_channels_0.obj fused_elementwise_507.obj layernorm_3.obj gemm_rcr_bias_permute_5.obj split_7.obj reshape_8.obj mem_eff_attention_11.obj gemm_rcr_bias_add_13.obj fused_elementwise_508.obj gemm_rcr_bias_gelu_17.obj gemm_rcr_bias_18.obj fused_elementwise_509.obj fused_elementwise_510.obj fused_elementwise_511.obj fused_elementwise_512.obj fused_elementwise_513.obj fused_elementwise_514.obj fused_elementwise_515.obj fused_elementwise_516.obj fused_elementwise_517.obj fused_elementwise_518.obj fused_elementwise_519.obj fused_elementwise_520.obj fused_elementwise_521.obj fused_elementwise_522.obj fused_elementwise_523.obj fused_elementwise_524.obj fused_elementwise_525.obj fused_elementwise_526.obj fused_elementwise_527.obj fused_elementwise_528.obj fused_elementwise_529.obj fused_elementwise_530.obj fused_elementwise_531.obj fused_elementwise_532.obj fused_elementwise_533.obj fused_elementwise_534.obj fused_elementwise_535.obj fused_elementwise_536.obj fused_elementwise_537.obj fused_elementwise_538.obj fused_elementwise_539.obj fused_elementwise_540.obj fused_elementwise_541.obj fused_elementwise_542.obj fused_elementwise_543.obj fused_elementwise_544.obj fused_elementwise_545.obj fused_elementwise_546.obj fused_elementwise_547.obj fused_elementwise_548.obj fused_elementwise_549.obj fused_elementwise_550.obj fused_elementwise_551.obj fused_elementwise_552.obj fused_elementwise_553.obj fused_elementwise_554.obj fused_elementwise_555.obj fused_elementwise_556.obj fused_elementwise_557.obj fused_elementwise_558.obj fused_elementwise_559.obj fused_elementwise_560.obj fused_elementwise_561.obj fused_elementwise_562.obj expand_490_constant_folding.obj gemm_rcr_bias_permute_5_constant_folding.obj split_7_constant_folding.obj reshape_8_constant_folding.obj mem_eff_attention_11_constant_folding.obj constants.obj model_container_base.obj debug_utility.obj model_container.obj model_interface.obj utility.obj

%.obj : %.cu
	nvcc -t=0 -DCUTLASS_ENABLE_TENSOR_CORE_MMA=1 -w -gencode=arch=compute_80,code=[sm_80,compute_80] -O3 -std=c++17 --expt-relaxed-constexpr -DCUTLASS_DEBUG_TRACE_LEVEL=0 -DNDEBUG --use_fast_math -DAIT_USE_FAST_MATH=1 -Xcompiler=-fPIC -Xcompiler=-Wconversion -Xcompiler=-fno-strict-aliasing -Xcompiler -fvisibility=hidden -I/srv/home/AITemplate/venv/lib/python3.12/site-packages/aitemplate/3rdparty/../static/include/kernels -I/srv/home/AITemplate/venv/lib/python3.12/site-packages/aitemplate/3rdparty/cutlass/include -I/srv/home/AITemplate/venv/lib/python3.12/site-packages/aitemplate/3rdparty/cutlass/tools/util/include -I/srv/home/AITemplate/venv/lib/python3.12/site-packages/aitemplate/3rdparty/cutlass/examples/35_gemm_softmax -I/srv/home/AITemplate/venv/lib/python3.12/site-packages/aitemplate/3rdparty/cutlass/examples/41_fused_multi_head_attention -I/srv/home/AITemplate/venv/lib/python3.12/site-packages/aitemplate/3rdparty/cutlass/examples/45_dual_gemm -I/srv/home/AITemplate/venv/lib/python3.12/site-packages/aitemplate/3rdparty/cutlass/../../backend/cuda/attention/src/./ -I/srv/home/AITemplate/venv/lib/python3.12/site-packages/aitemplate/3rdparty/cutlass/../../backend/cuda/attention/src/fmha -c -o $@ $<
%.obj : %.bin
	ld -r -b binary -o $@ $< && objcopy --rename-section .data=.lrodata,alloc,load,readonly,data,contents $@ $@

.PHONY: all clean clean_constants
all: test.so

test.so: $(obj_files)
	$(CC) -shared $(fPIC_flag) $(CFLAGS) -o $@ $(obj_files)



clean:
	rm -f *.obj test.so

clean_constants:
	rm -f constants.bin