Hi Dave, > OK. Just wanted to make sure I was not hijacking the list for an unintended purpose.
no, not at all. I highly appreciate the input you provided on resolving this nvcc/gcc hodgepodge. :-) Best regards, Karli > > ________________________________________ > From: petsc-dev-bounces at mcs.anl.gov [petsc-dev-bounces at mcs.anl.gov] on > behalf of Karl Rupp [rupp at mcs.anl.gov] > Sent: Friday, March 15, 2013 10:42 AM > To: petsc-dev at mcs.anl.gov > Subject: Re: [petsc-dev] PETSc-Cuda with gfortran 4.7 > > Hi Dave, > > my email was a remark for Asmund to get his code compiled. :-) > Sorry if this wasn't clear enough... > > Best regards, > Karli > > > On 03/15/2013 11:15 AM, Nystrom, William D wrote: >> Hi Karli, >> >> I'm not sure what point you are trying to make below. As I indicated in my >> emails, I am using >> 4.7.2 compilers for everything except nvcc and 4.7.2 is the default version >> of compilers for my >> distro, Fedora 17. However, nvcc constrains the version of compilers based >> on the Cuda >> distribution. Cuda 5.0 requires 4.6.x or earlier. Cuda 4.2 requires 4.5.x >> or earlier, etc. Perhaps >> Cuda 5.1 will support 4.7.x but I have no idea when it will be released. >> The procedure I shared >> below allows one to restrict use of 4.6.x to only nvcc. >> >> Also, I don't have experience with other distros like Debian or Ubuntu. So >> I can't speak with any >> confidence on them although I don't see why the nvcc.profile approach would >> depend on the >> distro. >> >> Also, I'm just trying to share my experiences with building petsc in a 4.7.2 >> compiler environment >> to help Asmund. If this is not appropriate for this mailing list, I'm happy >> to communicate directly >> with Asmund. >> >> Best regards, >> >> Dave >> >> ________________________________________ >> From: petsc-dev-bounces at mcs.anl.gov [petsc-dev-bounces at mcs.anl.gov] on >> behalf of Karl Rupp [rupp at mcs.anl.gov] >> Sent: Friday, March 15, 2013 9:43 AM >> To: For users of the development version of PETSc >> Cc: ?smund Ervik >> Subject: Re: [petsc-dev] PETSc-Cuda with gfortran 4.7 >> >> Hi guys, >> >> depending on the distribution you are using, there may be multiple >> versions of GCC already in the repository. For example, on Debian-based >> distributions you can have multiple versions of GCC installed, which >> show up in the package manager as gcc-4.6, gcc-4.7, etc. >> >> Ubuntu for example even allows you to switch between the versions >> seamlessly using >> $> sudo update-alternatives --config gcc >> An example can be found here: >> http://askubuntu.com/questions/182027/how-to-use-gcc-4-7-in-place-of-4-6-ubuntu-12-04 >> >> Aside from that, it is still not satisfactory for us to keep >> recommending other compilers. GCC 4.7 will soon be the default on many >> distributions (if it isn't already)... >> >> Best regards, >> Karli >> >> >> >> On 03/15/2013 10:36 AM, Nystrom, William D wrote: >>> Hi Asmund, >>> >>> In petsc-dev, files with a .cu extension are compiled with nvcc. >>> >>> I also tried the suggestion of soft linking an acceptable version of >>> gcc/g++ into >>> /usr/local/cuda/bin. I think I used a gcc/g++ from a compatibility package >>> that >>> I installed with yum. That did not work for me either. I think the issue >>> might >>> have been related to that version being in the ccache directory but am not >>> sure. >>> The only solution I got to work was to install a new, acceptable version of >>> the >>> GNU compilers by actually building from source and installing in its own >>> location >>> such as somewhere in your home directory or in some place like /usr/local or >>> /opt. Also, if you use the "--program-suffix=46" configure option, I think >>> you >>> may also need to softlink gcc46 to gcc and g++46 to g++ in your install >>> directory. >>> I could check that when I get home this evening as well as checking my build >>> script to make sure there is not something important in it to pass on. >>> >>> For me, it took about about an hour to build gcc 4.6.3, once I had learned >>> the >>> various things I passed on in the earlier email. So you may have to just >>> build >>> a version of gcc rather than using a version from your distro's package >>> system. >>> BTW, what distro are you using? I don't believe that nvcc uses gfortran. >>> It uses >>> g++ and maybe also gcc. Also, there is nothing special about gcc 4.6.3. >>> You >>> could build an earlier version of gcc such as gcc 4.5.x or gcc 4.4.x. I >>> chose >>> gcc 4.6.3 because it was the most up to date version that was supported by >>> nvcc from the Cuda 5 distribution. >>> >>> I'll write more from home this evening when I can check some things on my >>> system. >>> >>> Cheers, >>> >>> Dave >>> >>> ________________________________________ >>> From: ?smund Ervik [Asmund.Ervik at sintef.no] >>> Sent: Friday, March 15, 2013 7:21 AM >>> To: petsc-dev at mcs.anl.gov; Nystrom, William D >>> Subject: Re: [petsc-dev] PETSc-Cuda with gfortran 4.7 >>> >>> Hi Dave, >>> >>> The errors occur when compiling these CUDA files: >>> mpiaijAssemble.cu, aijcusp.cu, mpicusp.cu and veccusp.cu >>> I assume these are compiled with nvcc, but I haven't triple checked that. >>> >>> I had not tried your trick with setting the C compiler in nvcc.profile. >>> I did, however, try symlinking gcc-4.4 binaries into /usr/local/cuda/bin >>> (as was suggested in one stackexchange post I found), but this produced >>> an error during configure. Using your nvcc.profile, it gives the same error: >>> >>> CUDA version error: PETSC currently requires CUDA version 4.0 or higher >>> - when compiling with CUDA >>> >>> Even though I have CUDA 5.0 installed. Just to be sure, are there >>> binaries beside gfortran, gcc and g++ which must be found in the >>> CUDA-specific gcc-4.6 folder? I have both gcc variants installed through >>> the packaging system of my distro, so I cant't tell which belong to the >>> 4.6 variant. >>> >>> Asmund >>> >>> On 13. mars 2013, wdn at lanl.gov wrote: >>>> >>>> Asmund, >>>> >>>> Do the failures you report below occur in cuda code that is ultimately >>>> compiled with nvcc? >>>> I have not had problems compiling petsc-dev with cuda support on a Fedora >>>> 17 system >>>> which uses gcc-4.7.2 and gfortran-4.7.2. However, I have gcc 4.6.3 >>>> installed also and >>>> have nvcc pointed at it by using the /usr/local/cuda/bin/nvcc.profile with >>>> a couple of lines >>>> added. So, when I build petsc-dev on my Fedora 17 system, it uses >>>> gcc-4.7.2 and >>>> gfortran-4.7.2 for everything except cuda code located in .cu files. I >>>> would worry about >>>> removing some functionality in 4.7.2 with your suggested modification. >>>> >>>> Thanks, >>>> >>>> Dave >>>> >>>> -- >>>> Dave Nystrom >>>> LANL HPC-5 >>>> Phone: 505-667-7913 >>>> Email: wdn at lanl.gov >>>> Smail: Mail Stop B272 >>>> Group HPC-5 >>>> Los Alamos National Laboratory >>>> Los Alamos, NM 87545 >>>> >>>> >> >
