build_test:
	mkdir -p work
	nvcc -o work/test -std=c++17 -arch=sm_80 -I. -I../../include test.cu

run_test:
	mkdir -p work
	nvcc -o work/test -std=c++17 -arch=sm_80 -I.  -I../../include test.cu
	work/test


build_perf:
	mkdir -p work
	nvcc -lineinfo -o work/perf -std=c++17 -arch=sm_80 -I. -I../../include perf_test.cu

run_perf:
	make build_perf
	work/perf


build_mem:
	mkdir -p work
	nvcc -lineinfo -o work/mem -std=c++17 -arch=sm_80 -I. -I../../include memory_test.cu

run_mem:
	make build_mem
	work/mem


build_transpose:
	mkdir -p work
	nvcc -lineinfo -o work/transpose -std=c++17 -arch=sm_80 -I. -I../../include transpose_test.cu

run_transpose:
	make build_transpose
	work/transpose


build_compute:
	mkdir -p work
	nvcc -lineinfo -o work/compute -std=c++17 -arch=sm_80 -I. -I../../include compute_test.cu

run_compute:
	make build_compute
	work/compute