Makefile 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. CC=gcc
  2. NVCC=nvcc
  3. ENABLE_CUDA=no
  4. LD=$(CC)
  5. ifeq ($(ENABLE_CUDA),yes)
  6. LD := ${NVCC}
  7. endif
  8. CFLAGS = -O3 -g $(shell pkg-config --cflags starpu-1.3)
  9. CPU_CFLAGS = ${CFLAGS} -Wall -mavx -fomit-frame-pointer -march=native -ffast-math
  10. CUDA_CFLAGS = ${CFLAGS}
  11. LDFLAGS +=$(shell pkg-config --libs starpu-1.3)
  12. EXTERNLIB=extern_tasks.so
  13. GENERATEDLIB=generated_tasks.so
  14. C_OBJECTS=$(patsubst %.c,%.o,$(wildcard gen*.c))
  15. CUDA_OBJECTS=$(patsubst %.cu,%.o,$(wildcard gen*.cu))
  16. ifneq ($(ENABLE_CUDA),yes)
  17. CUDA_OBJECTS:=
  18. endif
  19. LIBPATH=${PWD}/../StarPU.jl/lib
  20. all: ${EXTERNLIB}
  21. vector_scal: vector_scal.c cpu_vector_scal.o #gpu_vector_scal.o
  22. $(CC) $(CPU_CFLAGS) $^ -o $@ $(LDFLAGS)
  23. %.o: %.c
  24. $(CC) -c -fPIC $(CPU_CFLAGS) $^ -o $@
  25. %.o: %.cu
  26. $(NVCC) -dc $(CUDA_CFLAGS) $^ --shared --compiler-options '-fPIC' -o $@ $(LDFLAGS)
  27. ${EXTERNLIB}: cpu_vector_scal.c
  28. $(CC) $(CFLAGS) -shared -fPIC $(LDFLAGS) $^ -o $@
  29. ${GENERATEDLIB}: $(C_OBJECTS) $(CUDA_OBJECTS)
  30. $(LD) -shared $(LDFLAGS) $^ -o $@
  31. PHONY: clean
  32. clean:
  33. rm -f vector_scal *.so *.o genc_*.c gencuda_*.cu *.dat
  34. # Performance Tests
  35. cstarpu.dat: vector_scal
  36. STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 ./vector_scal > $@
  37. julia_generatedc.dat:
  38. LD_LIBRARY_PATH+=${LIBPATH} STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 julia vector_scal.jl $@
  39. julia_native.dat:
  40. LD_LIBRARY_PATH+=${LIBPATH} STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 julia vector_scal_native.jl $@
  41. julia_calllib.dat: ${EXTERNLIB}
  42. LD_LIBRARY_PATH+=${LIBPATH} JULIA_TASK_LIB="${EXTERNLIB}" STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 julia vector_scal.jl julia_calllib.dat
  43. test: cstarpu.dat julia_generatedc.dat julia_native.dat julia_calllib.dat