CIVL=civl
VERIFY=${CIVL} verify -enablePrintf=false 
CLOC=cloc --csv --quiet
TYPE=$$\\\\text{C}$$
INFO=echo "NAME: $<"; echo "CITE: \\\\cite{$(1)}"; echo "TYPE: ${TYPE}"; echo "SCALE: {\\\\texttt{${2}}}"; ${CLOC} $<

all: cudaOmp dot matMult1 sum


SUM_SCALE=NBLK=4,NTperBLK=2
sum: sum.cu
	@${call INFO,hathhorn-etal:2012:cuda-semantics,${SUM_SCALE}}
	${VERIFY} -inputN=8 -inputNBLOCKS=4 $<

DOT_SCALE=1$$\\\\leq\$$N$$\\\\leq\$$6, 1$$\\\\leq\$$NTperBLK$$\\\\leq\$$4
dot: dot.cu
	@${call INFO,sanders-kandrot:2010:cuda-by-example,${DOT_SCALE}}
	${VERIFY} -inputN_B=6 -inputthreadsPerBlock_B=4 $<

CUDA_OMP_SCALE=1$$\\\\leq\$$NBLK$$\\\\leq\$$4,1$$\\\\leq\$$NTperBLK$$\\\\leq\$$2
cudaOmp: cuda-omp.cu
	@${call INFO,arc:cuda,${CUDA_OMP_SCALE}}
	${VERIFY} -inputBLOCK_B=4 -inputTHREADS_B=2 $<

MAT_MULT_SCALE=NBLK=4,NTperBLK=1
matMult1: matMult1.cu
	@${call INFO,rcac:cuda,${MAT_MULT_SCALE}}
	${VERIFY} -inputN=2 -inputTILE_WIDTH=1 $<

clean: 
	rm -f -r CIVLREP
	rm -f *~
