Accéder au contenu.
Menu Sympa

starpu-devel - Re: [Starpu-devel] [MACOSX] problem with examples

Objet : Developers list for StarPU

Archives de la liste

Re: [Starpu-devel] [MACOSX] problem with examples


Chronologique Discussions 
  • From: Nathalie Furmento <nathalie.furmento@labri.fr>
  • To: tog <guillaume.alleon@gmail.com>
  • Cc: starpu-devel@lists.gforge.inria.fr
  • Subject: Re: [Starpu-devel] [MACOSX] problem with examples
  • Date: Thu, 07 Apr 2011 12:18:14 +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>

You can use the environment variable NVCCFLAGS to pass specific options to nvcc.

Regards,

Nathalie

On 07/04/2011 12:11, tog wrote:
Ok, this is better. We are now in the problem I was anticipating earlier ...
mpicc is generating 64 bits while nvcc is generationg 32 bits

Is there a way to trigger nvcc compiler flags ?

My automake version:
oggy:oce alleon$ automake --version
automake (GNU automake) 1.9.6
Written by Tom Tromey<tromey@redhat.com>.

Best Regards
Guillaume

....
CCLD tests/mpi_irecv
CC mpi_isend_detached.o
CCLD tests/mpi_isend_detached
CC mpi_irecv_detached.o
CCLD tests/mpi_irecv_detached
CC mpi_detached_tag.o
CCLD tests/mpi_detached_tag
CC ring.o
/usr/local/cuda/bin/nvcc tests/ring_kernel.cu -c -o
tests/ring_kernel.o --compiler-options -fno-strict-aliasing
-I/usr/local/cuda/include -I../include/ -I../include -I../include/
-I../include/
CCLD tests/ring
ld: warning: in tests/ring_kernel.o, file was built for i386 which is
not the architecture being linked (x86_64)
Undefined symbols:
"_increment_cuda", referenced from:
_increment_cl in ring.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [tests/ring] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1




On Thu, Apr 7, 2011 at 3:17 PM, Nathalie Furmento
<nathalie.furmento@labri.fr> wrote:
I tried with autoconf 2.63, and i was not able to reproduce the problem.
Which version of automake are you using ?

There might be another solution to allow you to use StarPU. You could --
instead of using the Subversion code -- use the latest nightly snapshot
available here :

http://starpu.gforge.inria.fr/testing/

It means you do not need to run autogen.sh, just run configure and make,
and you will get the Makefiles as they have been generated on our system.

Regards,

Nathalie

On 07/04/2011 11:05, tog wrote:
Hi,

I am using autotools 2.63.

I have applied your second patch but I am sorry to report that I am
still having a problem:

...

libtool: link: /usr/bin/mpicc -Wall -I/usr/local/cuda/include -O3
-gdwarf-2 -g3 -o tests/.libs/mpi_detached_tag mpi_detached_tag.o
-L/usr/local/cuda/lib ./.libs/libstarpumpi.dylib
/Users/alleon/PROJECTS/starpu/src/.libs/libstarpu.dylib
../src/.libs/libstarpu.dylib -lm -lcudart -lcublas -lcuda -lcufft
-lgfortran -lcurand -lstdc++ -lblas -lpthread
if /usr/bin/mpicc -DHAVE_CONFIG_H -I. -I. -I../src/common -I../include
-I../gcc-plugin/src -I../include/ -I../mpi/ -I../src/ -I../examples/
-I../src -I../include -D_GNU_SOURCE -Wall -I/usr/local/cuda/include
-O3 -gdwarf-2 -g3 -MT ring.o -MD -MP -MF ".deps/ring.Tpo" -c -o
ring.o `test -f 'tests/ring.c' || echo './'`tests/ring.c; \
then mv -f ".deps/ring.Tpo" ".deps/ring.Po"; else rm -f
".deps/ring.Tpo"; exit 1; fi
make[2]: *** No rule to make target `ring_kernel.o', needed by
`tests/ring'. Stop.
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1


Regards
Guillaume

On Thu, Apr 7, 2011 at 2:05 PM, Nathalie Furmento
<nathalie.furmento@labri.fr> wrote:

Hi,

I looked at your Makefile, autotools on your machine clearly has a
different
behaviour when handling object files. I am not sure if the problem comes
from the way we wrote mpi/Makefile.am or from autotools. In the meantime,
could you please try the attached patch (after reverting the previous
ones).

Thanks,

Nathalie


On 06/04/2011 16:50, tog wrote:

Here is the file.
Best Regards
Guillaume

On Wed, Apr 6, 2011 at 6:31 PM, Nathalie Furmento
<nathalie.furmento@labri.fr> wrote:


I think i just overlooked the fact it is looking for ring_kernel.o
instead
of tests/ring_kernel.o

Could you please send me your build/mpi/Makefile file ?

Regards,

Nathalie

On 06/04/2011 14:53, tog wrote:


I know from make -C examples that we will have 64 bits related issues.

I did apply your patch and have the following behavior:

obelix:starpu alleon$ VERBOSE=1 make -C mpi tests/ring_kernel.o
/usr/local/cuda/bin/nvcc tests/ring_kernel.cu -c -o
tests/ring_kernel.o --compiler-options -fno-strict-aliasing
-I/usr/local/cuda/include -I../include/ -I../include -I../include/
-I../include/

which is fine but ...

obelix:starpu alleon$ VERBOSE=1 make
Making all in src
make[2]: Nothing to be done for `all-am'.
Making all in mpi
make all-am
make[2]: *** No rule to make target `ring_kernel.o', needed by
`tests/ring'. Stop.
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1
obelix:starpu alleon$


If your machine is running Snow Leopard the pressing the 6& 4
keys at
boot time will load the 64 bits kernel extensions.

Best Regards
Guillaume


On Wed, Apr 6, 2011 at 6:03 PM, Nathalie Furmento
<nathalie.furmento@labri.fr> wrote:



Could you please try to recompile with the attached patch. If it is
still
failing, could you then try from your build directory to start:

% make -C mpi V=1 tests/ring_kernel.o

And then run make again.

If all of that fails, please send me the file build/mpi/Makefile

Concerning OpenCL, configure looks for it in different locations
("/usr/local/cuda" "/c/cuda" "/cygdrive/c/cuda" "/opt/cuda"). If your
installation is in another directory, you can specify
--with-opencl-dir=<directory> when calling configure.

I do not think your problem is related to 64 bits. I do not have
right
now a
64 bits MacOS machine to start. I should be able to get one shortly.

Regards,

Nathalie

On 06/04/2011 14:06, tog wrote:



Hi,

Few things that might be different on my machine. It is running 64
bits i.e. in the menu About This Mac -> More info ... ->
Software, I
have
64-bit Kernel and Extensions: Yes

obelix:starpu alleon$ uname -a
Darwin oggy.lan 10.7.0 Darwin Kernel Version 10.7.0: Sat Jan 29
15:16:10 PST 2011; root:xnu-1504.9.37~1/RELEASE_X86_64 x86_64


Then the answers to your questions:

obelix:starpu alleon$ ls -lrt mpi/tests/ring_kernel.cu
-rw-r--r-- 1 alleon staff 1125 Mar 29 14:14
mpi/tests/ring_kernel.cu


The output is attached.

Do you know how to enable OpenCL on the Mac ?

Best Regards
Guillaume

On Wed, Apr 6, 2011 at 5:09 PM, Nathalie Furmento
<nathalie.furmento@labri.fr> wrote:




Hi,

I tested on a MacOS with mpi and cuda, it is all working for me.

Could you please check the file mpi/tests/ring_kernel.cu is
available.
And
could you also please send the output of "make V=1".

Thanks,

Nathalie

On 05/04/2011 13:51, tog wrote:




Hi,

Yes similar problems are there.
For examples, the mismatch between i386 and x86_64 can be solved
by
adding the -m64 flag to nvcc (looks like mpicc generates 64 bits
objects, white the default for nvcc is 32 bits).
It might also be solved by adding -m32 to mpicc (not tested) -
however
my machine is running 64 bits.

Best Regards
Guillaume

On Tue, Apr 5, 2011 at 4:30 PM, Nathalie Furmento
<nathalie.furmento@labri.fr> wrote:





Hi,

ring_kernel.o is build from ring_kernel.cu. The rule to build a
.o
from
a
.cu is in Makefile.am.

Could you see if you also have the problems when building the
tests
or
the
examples (make -C tests or make -C examples)

Thanks,

Nathalie


On 05/04/2011 12:35, tog wrote:





Hi,

I still have a problem with the build in the mpi tests.

if /usr/bin/mpicc -DHAVE_CONFIG_H -I. -I. -I../src/common
-I../include
-I../gcc-plugin/src -I../include/ -I../mpi/ -I../src/
-I../examples/
-I../src -I../include -D_GNU_SOURCE -Wall
-I/usr/local/cuda/include
-O3 -gdwarf-2 -g3 -MT ring.o -MD -MP -MF ".deps/ring.Tpo" -c
-o
ring.o `test -f 'tests/ring.c' || echo './'`tests/ring.c; \
then mv -f ".deps/ring.Tpo" ".deps/ring.Po"; else rm -f
".deps/ring.Tpo"; exit 1; fi
make[2]: *** No rule to make target `ring_kernel.o', needed by
`tests/ring'. Stop.
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1


Any idea of what is wrong ?

Best Regards
Guillaume































Archives gérées par MHonArc 2.6.19+.

Haut de le page