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 >