Makefile 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. CC=gcc
  2. CFLAGS += -Wall -Wextra -O3 -mavx -mfma -fomit-frame-pointer -march=native -ffast-math $(shell pkg-config --cflags starpu-1.3)
  3. LDFLAGS +=$(shell pkg-config --libs starpu-1.3) -lm
  4. EXTERNLIB=extern_tasks.so
  5. GENERATEDLIB=generated_tasks.so
  6. #OBJECTS=$(patsubst %.c,%.o,$(wildcard gen*.c))
  7. OBJECTS=$(wildcard gen*.c)
  8. LIBPATH=${PWD}/../StarPU.jl/lib
  9. all: ${EXTERNLIB}
  10. mandelbrot: mandelbrot.c cpu_mandelbrot.o #gpu_mandelbrot.o
  11. $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
  12. gpu_mandelbrot.o: gpu_mandelbrot.cu
  13. nvcc -c $(CFLAGS) $^ -o $@
  14. %.o: %.c
  15. $(CC) -c $(CFLAGS) $^ -o $@
  16. ${EXTERNLIB}: cpu_mandelbrot.c
  17. $(CC) $(CFLAGS) -shared -fPIC $(LDFLAGS) $^ -o $@
  18. gpu_mandelbrot.so: gpu_mandelbrot.o
  19. nvcc $(CFLAGS) $^ --shared --compiler-options '-fPIC' -o $@ $(LDFLAGS)
  20. cpu_mandelbrot_sa: cpu_mandelbrot_sa.o
  21. $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
  22. ${GENERATEDLIB}: ${OBJECTS}
  23. $(CC) $(CFLAGS) -shared -fPIC $(LDFLAGS) $^ -o $@
  24. clean:
  25. rm -f mandelbrot *.so *.o c_*.genc gencuda_*.cu *.dat
  26. # Performance Tests
  27. cstarpu.dat: mandelbrot
  28. STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 ./mandelbrot -0.800671 -0.158392 32 32 4096 4 > $@
  29. julia_generatedc.dat:
  30. LD_LIBRARY_PATH+=${LIBPATH} STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 julia mandelbrot.jl $@
  31. julia_native.dat:
  32. LD_LIBRARY_PATH+=${LIBPATH} STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 julia mandelbrot_native.jl $@
  33. julia_calllib.dat: ${EXTERNLIB}
  34. LD_LIBRARY_PATH+=${LIBPATH} JULIA_TASK_LIB="${EXTERNLIB}" STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 julia mandelbrot.jl julia_calllib.dat
  35. test: cstarpu.dat julia_generatedc.dat julia_native.dat julia_calllib.dat