[petsc-dev] Cross compile with .c and .cu files
Satish Balay
balay at mcs.anl.gov
Mon Apr 23 17:01:05 CDT 2012
Ah - libfast is written to work with mixed builds. But there is abug
with sharing a variable with .c and .cu builds rules.
Pushed a fix now.
The makefile below should now be:
SOURCECU = diakerns.cu
SOURCEC = dia.c
OBJSCU = diakerns.o
OBJSC = dia.o
Satish
On Mon, 23 Apr 2012, Matthew Knepley wrote:
> On Mon, Apr 23, 2012 at 5:26 PM, Satish Balay <balay at mcs.anl.gov> wrote:
>
> > 'make libfast' can't handle different file types [but 'make lib' can].
> >
> > For libfast to work - you can split up the sources into multiple dirs.
> >
> > i.e
> >
> > src/mat/impls/dia/seq/dia.c
> > src/mat/impls/dia/seq/seqcusp/diakerns.cu
>
>
> The Python build can handle this.
>
> Matt
>
>
> >
> > Satish
> >
> > On Mon, 23 Apr 2012, Daniel Lowell wrote:
> >
> > > Hi all,
> > >
> > > I'm building a matrix type with two separate files dai.c and diakerns.cu
> > .
> > > If I "make all" in the PETSc root dir, it will be unable to find the
> > object
> > > file from the .cu file; i.e., I get this:
> > >
> > > /usr/bin/ar: diakerns.o: No such file or directory
> > >
> > > However if I merely do a "make lib" inside the matrix type directory I
> > have
> > > no problem. This has happened to other types I've create, I end up just
> > > shoving everything into one large .cu file to quickly deal with it.
> > > Here what the folder level makefile looks like:
> > >
> > >
> > >
> > > SOURCECU = diakerns.cu
> > > SOURCEC = dia.c
> > > SOURCEF =
> > > SOURCEH = dia.h
> > > OBJSC = dia.o diakerns.o
> > > OBJSF =
> > > LIBBASE = libpetscmat
> > > DIRS =
> > > MANSEC = Mat
> > > LOCDIR = src/mat/impls/dia/seq/
> > >
> > >
> > >
> > >
> > > This is what my configuration script for petsc root looks like:
> > >
> > >
> > > MPI_DIR="--with-mpi-dir=$MPICH2_HOME"
> > > LAD="--download-f-blas-lapack=yes"
> > > CUD="--with-cuda-dir=/soft/cuda-4.2/cuda"
> > > ./config/configure.py $MPI_DIR $LAD $CUD \
> > > --with-debugging=1 \
> > > --with-cudac="nvcc -m64 -g -G -v" \
> > > --with-precision=double \
> > > --with-clanguage=c \
> > > --with-cuda-arch=sm_20 \
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
>
>
>
More information about the petsc-dev
mailing list