Hi Richard,
Fixed the gcc problems as well (this required a tweak to host_config.h in /usr/local/cuda/include). Now, I've hit another roadblock:
Makefile:4542: recipe for target 'libutils_cuda_a-mrisurf.o' failed make[3]: *** [libutils_cuda_a-mrisurf.o] Error 1 make[3]: *** Waiting for unfinished jobs.... mv -f .deps/libutils_cuda_a-mriVolume.Tpo .deps/libutils_cuda_a-mriVolume.Po mv -f .deps/libutils_cuda_a-mri_topology.Tpo .deps/libutils_cuda_a-mri_topology.Po make[3]: Leaving directory '/tmp/freesurfer/utils' Makefile:6185: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory '/tmp/freesurfer/utils' Makefile:1053: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/tmp/freesurfer' Makefile:962: recipe for target 'all' failed make: *** [all] Error 2
Seems like we are getting really close, but is there some deeper cuda incompatibility here with some of Fs's cuda-enabled tools?
-Derek ________________________________________ From: freesurfer-bounces@nmr.mgh.harvard.edu [freesurfer-bounces@nmr.mgh.harvard.edu] on behalf of R Edgar [freesurfer.rge@gmail.com] Sent: Thursday, June 23, 2016 5:23 PM To: Freesurfer support list Subject: Re: [Freesurfer] Any updates on recon-all GPU support?
On 23 June 2016 at 16:26, Derek Pisner dpisner@psychiatry.arizona.edu wrote:
Hi Richard,
Hope this finds you well. I followed your instructions and compiled from source (you were right-- compiling Fs from source isn't too bad at all!) I also made your tweak to configure.in and then ran ./configure like so:
./configure --disable-Werror --enable-fermi-gpu --with-cuda="/usr/local/cuda" --with-pkgs-dir=/tmp/centos6-x86_64-packages --prefix=/usr/local/freesurfer
That ran successfully. However, when I then ran 'make -j4', I get the following error and it exits:
/usr/bin/ld: skipping incompatible /usr/local/cuda/lib/libcudart.so when searching for -lcudart /usr/bin/ld: cannot find -lcudart collect2: error: ld returned 1 exit status Makefile:568: recipe for target 'cudadetect' failed make[2]: *** [cudadetect] Error 1 make[2]: Leaving directory '/tmp/freesurfer/gpu_utils' Makefile:1053: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/tmp/freesurfer' Makefile:962: recipe for target 'all' failed make: *** [all] Error 2
It is very strange, because I don't think this is an issue with not being able to find the cuda libraries (i.e. libcudart*) since they are detected by FSL's CUDA wrappers and are exported in my ~/.bashrc:
export PATH=$PATH:/usr/local/cuda/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/lib
The "skipping incompatible" line looks suspicious - surely it should have been looking for libcudart in /us/local/cuda/lib64 ?
Can you do another, plain "make" and look at the command which is ultimately giving the error (it'll be a gcc with a bunch of object files, to trigger the linking of the executable). That might help us find out what it should be doing.
Richard _______________________________________________ Freesurfer mailing list Freesurfer@nmr.mgh.harvard.edu https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
The information in this e-mail is intended only for the person to whom it is addressed. If you believe this e-mail was sent to you in error and the e-mail contains patient information, please contact the Partners Compliance HelpLine at http://www.partners.org/complianceline . If the e-mail was sent to you in error but does not contain patient information, please contact the sender and properly dispose of the e-mail.