Makefile 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # tile size. Should be changed in mult.jl as well
  2. STRIDE=72
  3. # ICC compiler
  4. #CC =icc
  5. #CFLAGS=-restrict -unroll4 -ipo -falign-loops=256 -O3 -DSTRIDE=${STRIDE} -march=native $(shell pkg-config --cflags starpu-1.3)
  6. # GCC compiler
  7. CC=gcc
  8. CFLAGS += -O3 -DSTRIDE=${STRIDE} -mavx -fomit-frame-pointer -march=native -ffast-math $(shell pkg-config --cflags starpu-1.3)
  9. LDFLAGS +=$(shell pkg-config --libs starpu-1.3)
  10. EXTERNLIB=extern_tasks.so
  11. GENERATEDLIB=generated_tasks.so
  12. #OBJECTS=$(patsubst %.c,%.o,$(wildcard gen*.c))
  13. OBJECTS=$(wildcard gen*.c)
  14. LIBPATH=${PWD}/../StarPU.jl/lib
  15. all: ${EXTERNLIB}
  16. mult: mult.c cpu_mult.o #gpu_mult.o
  17. $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
  18. gpu_mult.o: gpu_mult.cu
  19. nvcc -c $(CFLAGS) $^ -o $@
  20. %.o: %.c
  21. $(CC) -c $(CFLAGS) $^ -o $@
  22. ${EXTERNLIB}: cpu_mult.c
  23. $(CC) $(CFLAGS) -shared -fPIC $(LDFLAGS) $^ -o $@
  24. gpu_mult.so: gpu_mult.o
  25. nvcc $(CFLAGS) $^ --shared --compiler-options '-fPIC' -o $@ $(LDFLAGS)
  26. cpu_mult_sa: cpu_mult_sa.o
  27. $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
  28. ${GENERATEDLIB}: ${OBJECTS}
  29. $(CC) $(CFLAGS) -shared -fPIC $(LDFLAGS) $^ -o $@
  30. clean:
  31. rm -f mult *.so *.o c_*.genc gencuda_*.cu *.dat
  32. # Performance Tests
  33. cstarpu.dat: mult
  34. STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 ./mult > $@
  35. julia_generatedc.dat:
  36. LD_LIBRARY_PATH+=${LIBPATH} STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 julia mult.jl $@
  37. julia_native.dat:
  38. LD_LIBRARY_PATH+=${LIBPATH} STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 julia mult_native.jl $@
  39. julia_calllib.dat: ${EXTERNLIB}
  40. LD_LIBRARY_PATH+=${LIBPATH} JULIA_TASK_LIB="${EXTERNLIB}" STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 julia mult.jl julia_calllib.dat
  41. test: cstarpu.dat julia_generatedc.dat julia_native.dat julia_calllib.dat