I'd tend to agree with Gilles. I have written CUDA programs in pure C (i.e.
neither involving MPI nor C++) and a pure C based tool chain builds the
code successfully. So I don't see why CUDA should be intrinsically C++.

>From the Makefile (that I had attached in my previous mail) the only CUDA
library being linked against is this:

/usr/local/cuda/lib64/libcudart.so
and ldd on that shows this:

[durga@smallMPI lib64]$ ldd libcudart.so
    linux-vdso.so.1 =>  (0x00007ffe1e7f1000)
    libc.so.6 => /lib64/libc.so.6 (0x00007ff7e4493000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007ff7e428f000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff7e4072000)
    librt.so.1 => /lib64/librt.so.1 (0x00007ff7e3e6a000)
    /lib64/ld-linux-x86-64.so.2 (0x00007ff7e4af3000)

I don't see any C++ dependency here either.

And finally, I don't think there is any version issue. This is a clean CUDA
7.5 install directly from NVIDIA CUDA repo (for Redhat) and all provided
examples run fine with this installation.

I believe there are NVIDIA employees in this list; hopefully one of them
will clarify.

Thanks
Durga

Life is complex. It has real and imaginary parts.

On Sun, Mar 20, 2016 at 10:23 PM, Gilles Gouaillardet <
gilles.gouaillar...@gmail.com> wrote:

> I am a bit puzzled...
>
> if only cuda uses the c++ std libraries, then it should depend on them
> (ldd libcudaxyz.so can be used to confirm that)
> and then linking with cuda lib should pull the c++ libs
>
> could there be a version issue ?
> e.g. the missing symbol is not provided by the version of the c++ lib that
> is pulled.
> that might occur if you are using cuda built for distro X on distro Y
>
> could you please double check this ?
> if everything should work, then i recommend you report this to nvidia
>
> Cheers,
>
> Gilles
>
> On Monday, March 21, 2016, Damien Hocking <dam...@0x544745.com> wrote:
>
>> Durga,
>>
>> The Cuda libraries use the C++ std libraries.  That's the std::ios_base
>> errors.. You need the C++ linker to bring those in.
>>
>> Damien
>>
>> On March 20, 2016 9:15:47 AM "dpchoudh ." <dpcho...@gmail.com> wrote:
>>
>>> Hello all
>>>
>>> I downloaded some code samples from here:
>>>
>>> https://github.com/parallel-forall/code-samples/
>>>
>>> and tried to build the subdirectory
>>>
>>> posts/cuda-aware-mpi-example/src
>>>
>>> in my CentOS 7 machine.
>>>
>>> I had to make several changes to the Makefile before it would build. The
>>> modified Makefile is attached (the make targets I am talking about are the
>>> 3rd and 4th from the bottom). Most of the modifications can be explained as
>>> possible platform specific variations (such as path differences betwen
>>> Ubuntu and CentOS), except the following:
>>>
>>> I had to use a C++ linker (mpic++) to link in the object files that were
>>> produced with C host compiler (mpicc) and CUDA compiler (nvcc). If I did
>>> not do this, (i.e. I stuck to mpicc for linking), I got the following link
>>> error:
>>>
>>> mpicc -L/usr/local/cuda/lib64 -lcudart -lm -o
>>> ../bin/jacobi_cuda_normal_mpi jacobi.o input.o host.o device.o
>>> cuda_normal_mpi.o
>>> device.o: In function `__static_initialization_and_destruction_0(int,
>>> int)':
>>> tmpxft_00004651_00000000-4_Device.cudafe1.cpp:(.text+0xd1e): undefined
>>> reference to `std::ios_base::Init::Init()'
>>> tmpxft_00004651_00000000-4_Device.cudafe1.cpp:(.text+0xd2d): undefined
>>> reference to `std::ios_base::Init::~Init()'
>>> collect2: error: ld returned 1 exit status
>>>
>>> Can someone please explain why would I need a C++ linker for object
>>> files that were generated using C compiler? Note that if I use mpic++ both
>>> for compiling and linking, there are no errors either.
>>>
>>> Thanks in advance
>>> Durga
>>>
>>> Life is complex. It has real and imaginary parts.
>>> _______________________________________________
>>> users mailing list
>>> us...@open-mpi.org
>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>>> Link to this post:
>>> http://www.open-mpi.org/community/lists/users/2016/03/28760.php
>>>
>>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post:
> http://www.open-mpi.org/community/lists/users/2016/03/28762.php
>

Reply via email to