Accéder au contenu.
Menu Sympa

starpu-devel - Re: [Starpu-devel] Introducing the GNU C Extensions

Objet : Developers list for StarPU

Archives de la liste

Re: [Starpu-devel] Introducing the GNU C Extensions


Chronologique Discussions 
  • From: Nathalie Furmento <nathalie.furmento@labri.fr>
  • To: starpu-devel@lists.gforge.inria.fr
  • Subject: Re: [Starpu-devel] Introducing the GNU C Extensions
  • Date: Fri, 09 Sep 2011 14:12:55 +0200
  • List-archive: <http://lists.gforge.inria.fr/pipermail/starpu-devel>
  • List-id: "Developers list. For discussion of new features, code changes, etc." <starpu-devel.lists.gforge.inria.fr>

I am trying with the current SVN revision. Here how far i got:

$ gcc --version
gcc (Debian 4.6.1-4) 4.6.1
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ ../configure --enable-gcc-extensions
configure: error: This compiler lacks GCC plug-in support.

This contradicts README which reads "Plug-ins are supported starting from GCC 4.5."

However, i am able to configure using CC=/usr/lib/gcc-snapshot/bin/gcc. I then have to patch gcc-plugin/src/starpu.c and gcc-plugin/src/c-expr.y as the include files c-common.h and c-pragma.h are available in the directory c-family.

-#include <c-common.h>
-#include <c-pragma.h>
+#include <c-family/c-common.h>
+#include <c-family/c-pragma.h>

make fails then with the following error:

make[2]: Entering directory `/net/inria/home/nfurmento/work/starpu/trunk/build/gcc-plugin/examples'
/usr/lib/gcc-snapshot/bin/gcc -DHAVE_CONFIG_H -I. -I../../../gcc-plugin/examples -I../../src/common -I../../include -I../../gcc-plugin/src  -I../../../include -DSTARPU_OPENCL_DATADIR=/usr/local/share/starpu/opencl -I/usr/local/cuda/include -D_GNU_SOURCE   -fplugin="../../gcc-plugin/src/.libs/starpu.so" -Wall -g -O2 -O3 -gdwarf-2 -g3  -MT matrix-mult.o -MD -MP -MF .deps/matrix-mult.Tpo -c -o matrix-mult.o ../../../gcc-plugin/examples/matrix-mult.c
cc1: error: cannot load plugin ../../gcc-plugin/src/.libs/starpu.so
../../gcc-plugin/src/.libs/starpu.so: undefined symbol: cgraph_mark_needed_node

The file gcc-plugin/src/.libs/starpu.so exists, but i could not find which library defines cgraph_mark_needed_node

Thanks for any help,

Nathalie

On 08/09/2011 16:22, Ludovic Courtès wrote:
87aaafktat.fsf@inria.fr">
Hello,

As you may have noticed, trunk now includes a GCC plug-in, which gets
built when configuring StarPU with ‘--enable-gcc-extensions’ (see
‘gcc-plugin/README’ for details.)

The GCC plug-in extends the GNU C language with annotations and
constructs that aim to make it easier and less error-prone to write
StarPU code.

For instance, tasks/codelets are declared and defined like standard C
functions, only with an annotation; invoking a task is like calling a
regular C function.  Several pragmas wrap operations on data items,
synchronization, etc.  They support a more concise writing style and
allow static checks to performed.

The manual contains the beginning of a documentation (info "(starpu) C
Extensions").  Additional details can be found in the test suite and
examples.

This is work in progress and the extensions only cover a fraction of
StarPU’s API, but I would very much like feedback on the approach, and
testing.  I’m in particular interested in comments on the mapping of
StarPU features to language constructs, and their usability.

Thanks!

Ludo’.

_______________________________________________
Starpu-devel mailing list
Starpu-devel@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/starpu-devel




Archives gérées par MHonArc 2.6.19+.

Haut de le page