浏览代码

julia: Build on both OSX and Linux.

phuchant 5 年之前
父节点
当前提交
3425fafa96
共有 3 个文件被更改,包括 22 次插入22 次删除
  1. 3 2
      julia/StarPU.jl/Makefile
  2. 6 6
      julia/StarPU.jl/src/StarPU.jl
  3. 13 14
      julia/mult/makefile

+ 3 - 2
julia/StarPU.jl/Makefile

@@ -2,6 +2,7 @@ SRCS=src/jlstarpu_task_submit.c src/jlstarpu_simple_functions.c src/jlstarpu_dat
 CC = gcc
 CFLAGS += $(shell pkg-config --cflags starpu-1.3)
 LDFLAGS += $(shell pkg-config --libs starpu-1.3)
-# for Mac, using .dylib
-lib/libjlstarpu_c_wrapper.dylib: ${SRCS}
+
+lib/libjlstarpu_c_wrapper.so: ${SRCS}
+	test -d lib || mkdir lib
 	$(CC) -O3 -shared -fPIC $(CFLAGS) $^ -o $@ $(LDFLAGS)

+ 6 - 6
julia/StarPU.jl/src/StarPU.jl

@@ -12,14 +12,14 @@ export STARPU_CUDA
 const  STARPU_CPU = 1 << 1
 const  STARPU_CUDA = 1 << 3
 
-global starpu_task_library_name="libjlstarpu_c_wrapper"
+const starpu_task_library_name="libjlstarpu_c_wrapper.so"
 global starpu_tasks_library_handle = C_NULL
 global starpu_target=STARPU_CPU
 
 include("compiler/include.jl")
 
 macro starpufunc(symbol)
-    :($symbol, "libjlstarpu_c_wrapper")
+    :($symbol, starpu_task_library_name)
 end
 
 """
@@ -27,7 +27,7 @@ end
     Works as ccall function
 """
 macro starpucall(func, ret_type, arg_types, args...)
-    return Expr(:call, :ccall, (func, "libjlstarpu_c_wrapper"), esc(ret_type), esc(arg_types), map(esc, args)...)
+    return Expr(:call, :ccall, (func, starpu_task_library_name), esc(ret_type), esc(arg_types), map(esc, args)...)
 end
 
 export @debugprint
@@ -586,8 +586,8 @@ function starpu_init()
         end
     else
         @debugprint "generating codelet library"
-        system("make generated_tasks.dylib")
-        global starpu_tasks_library_handle=Libdl.dlopen("generated_tasks")
+        run(`make generated_tasks.so`);
+        global starpu_tasks_library_handle=Libdl.dlopen("generated_tasks.so")
     end
     output = @starpucall jlstarpu_init Cint ()
 
@@ -1232,7 +1232,7 @@ macro starpu_noparam_function(func_name, ret_type)
 
     quote
         export $func
-        global $func() = ccall(($func_name, "libjlstarpu_c_wrapper"),
+        global $func() = ccall(($func_name, starpu_task_library_name),
                                 $ret_type, ()) :: $ret_type
     end
 end

+ 13 - 14
julia/mult/makefile

@@ -5,19 +5,20 @@ STRIDE=72
 #CC =icc
 #CFLAGS=-restrict -unroll4 -ipo -falign-loops=256 -O3 -DSTRIDE=${STRIDE} -march=native $(shell pkg-config --cflags starpu-1.3)
 # GCC compiler
-CC=gcc-9
-CFLAGS += -O3 -DSTRIDE=${STRIDE} -mavx -mfma -fomit-frame-pointer -march=native -ffast-math $(shell pkg-config --cflags starpu-1.3)
+CC=gcc
+CFLAGS += -O3 -DSTRIDE=${STRIDE} -mavx -fomit-frame-pointer -march=native -ffast-math $(shell pkg-config --cflags starpu-1.3)
 
 LDFLAGS +=$(shell pkg-config --libs starpu-1.3)
-EXTERNLIB=extern_tasks.dylib
-GENERATEDLIB=generated_tasks.dylib
-OBJECTS=$(patsubst %.c,%.o,$(wildcard gen*.c))
+EXTERNLIB=extern_tasks.so
+GENERATEDLIB=generated_tasks.so
+#OBJECTS=$(patsubst %.c,%.o,$(wildcard gen*.c))
+OBJECTS=$(wildcard gen*.c)
 LIBPATH=${PWD}/../StarPU.jl/lib
 
-all: ${EXTERNLIB} 
+all: ${EXTERNLIB}
 
-mult: mult.c cpu_mult.o #gpu_mult.o 
-	$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)	
+mult: mult.c cpu_mult.o #gpu_mult.o
+	$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
 
 gpu_mult.o: gpu_mult.cu
 	nvcc -c $(CFLAGS) $^ -o $@
@@ -25,8 +26,8 @@ gpu_mult.o: gpu_mult.cu
 %.o: %.c
 	$(CC) -c $(CFLAGS) $^ -o $@
 
-${EXTERNLIB}: cpu_mult.o
-	$(CC) -shared -fPIC $(LDFLAGS) $^ -o $@  
+${EXTERNLIB}: cpu_mult.c
+	$(CC) $(CFLAGS) -shared -fPIC $(LDFLAGS) $^ -o $@
 
 gpu_mult.so: gpu_mult.o
 	nvcc $(CFLAGS) $^ --shared --compiler-options '-fPIC' -o $@ $(LDFLAGS)
@@ -35,10 +36,10 @@ cpu_mult_sa: cpu_mult_sa.o
 	$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
 
 ${GENERATEDLIB}: ${OBJECTS}
-	$(CC) -shared -fPIC $(LDFLAGS) $^ -o $@
+	$(CC) $(CFLAGS) -shared -fPIC $(LDFLAGS) $^ -o $@
 
 clean:
-	rm *.so *.o *.dylib c_*.genc gencuda_*.cu *.dat
+	rm -f mult *.so *.o c_*.genc gencuda_*.cu *.dat
 
 # Performance Tests
 cstarpu.dat: mult
@@ -51,5 +52,3 @@ julia_calllib.dat: ${EXTERNLIB}
 	LD_LIBRARY_PATH+=${LIBPATH} JULIA_TASK_LIB="${EXTERNLIB}" STARPU_NOPENCL=0 STARPU_SCHED=dmda STARPU_CALIBRATE=1 julia mult.jl julia_calllib.dat
 
 test: cstarpu.dat julia_generatedc.dat julia_native.dat julia_calllib.dat
-
-