Makefile 1.7 KB

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