Przeglądaj źródła

Also build vector_scal with icc when available

Samuel Thibault 13 lat temu
rodzic
commit
7a0f65790f

+ 5 - 0
configure.ac

@@ -33,6 +33,11 @@ AC_PROG_CPP
 AC_PROG_SED
 AC_PROG_LN_S
 AC_PROG_F77
+AC_CHECK_PROGS([ICC], [icc])
+if test "x$ICC" != "x"; then
+  AC_DEFINE(STARPU_HAVE_ICC, [], [Define this if icc is available])
+fi
+AM_CONDITIONAL([STARPU_HAVE_ICC], [test "x$ICC" != "x"])
 
 LT_PREREQ([2.2])
 LT_INIT([win32-dll])

+ 12 - 0
examples/Makefile.am

@@ -96,6 +96,12 @@ BUILT_SOURCES +=				\
 
 endif
 
+if STARPU_HAVE_ICC
+.icc.o:
+	$(ICC) -x c $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+		$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $< -c -o $@
+endif
+
 examplebindir = $(libdir)/starpu/examples/
 
 examplebin_PROGRAMS =
@@ -276,6 +282,12 @@ basic_examples_vector_scal_SOURCES =		\
 	basic_examples/vector_scal.c		\
 	basic_examples/vector_scal_cpu.c
 
+if STARPU_HAVE_ICC
+basic_examples_vector_scal_SOURCES +=		\
+	basic_examples/vector_scal_cpu_icc.icc
+basic_examples/vector_scal_cpu_icc.o: CFLAGS += -Dscal_cpu_func=scal_cpu_func_icc -Dscal_sse_func=scal_sse_func_icc
+endif
+
 if STARPU_USE_CUDA
 basic_examples_vector_scal_SOURCES +=		\
 	basic_examples/vector_scal_cuda.cu

+ 8 - 0
examples/basic_examples/vector_scal.c

@@ -31,7 +31,9 @@
 #define FPRINTF(ofile, fmt, args ...) do { if (!getenv("STARPU_SSILENT")) {fprintf(ofile, fmt, ##args); }} while(0)
 
 extern void scal_cpu_func(void *buffers[], void *_args);
+extern void scal_cpu_func_icc(void *buffers[], void *_args);
 extern void scal_sse_func(void *buffers[], void *_args);
+extern void scal_sse_func_icc(void *buffers[], void *_args);
 extern void scal_cuda_func(void *buffers[], void *_args);
 extern void scal_opencl_func(void *buffers[], void *_args);
 
@@ -51,8 +53,14 @@ static starpu_codelet cl = {
 	.cpu_func = STARPU_MULTIPLE_CPU_IMPLEMENTATIONS,
 	.cpu_funcs = {
 		scal_cpu_func
+#ifdef STARPU_HAVE_ICC
+		, scal_cpu_func_icc
+#endif
 #ifdef __SSE__
 		, scal_sse_func
+#ifdef STARPU_HAVE_ICC
+		, scal_sse_func_icc
+#endif
 #endif
 	},
 #ifdef STARPU_USE_CUDA

+ 1 - 0
examples/basic_examples/vector_scal_cpu_icc.icc

@@ -0,0 +1 @@
+vector_scal_cpu.c

+ 2 - 0
include/starpu_config.h.in

@@ -23,6 +23,8 @@
 #undef STARPU_USE_OPENCL
 #undef STARPU_USE_GORDON
 
+#undef STARPU_HAVE_ICC
+
 #undef STARPU_USE_MPI
 
 #undef STARPU_ATLAS