Dear Freesurfers,
I made some modification and finally can compile freesurfer that gets recon-all with cuda9.1 support. However, I am sure if the modification would incur unexpected results. The modification I made is as following: 1. taking out comments in the file mrifilter.c to declare the width, height, and depth variable 2. a little hack that makes `priors[i] = gcaSample[i].prior;` to `priors[i] = 1;` in the file utils/gcasgpu.cu (I am not sure what this line means, just a quick hack to get it pass errors, which is gcaSample[i].prior didn’t exist) 3. explicitly specify the NVIDIA_ARCH="sm_50" and CUDA_DIR="/usr/local/cuda" in configure.in
Any suggestions would be appreciated!
Best, Foucault
On Sat, Jan 13, 2018 at 9:39 AM zuxfoucault Wong zuxfoucault@gmail.com wrote:
Hi Freesurfers,
I tried different ways to compile freesurfer for support cuda 9.1. Unfortunately, I still cannot get it work. While I tried to compile a specific module freesurfer/utils where the errors generated, I got the error message. Any suggestions would be appreciated!
gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/dicom -I../xml2 -I../include/NrrdIO -DTEEM_DIO=0 -DTEEM_32BIT=0 -DTEEM_QNANHIBIT=1 -DTEEM_ENDIAN=1234 -I../jpeg -I../tiff -I../expat -I/home/bc/software /environment/freesurfer_src/centos6-x86_64-packages/itk/current/include/InsightToolkit -I/home/bc/softwa re/environment/freesurfer_src/centos6-x86_64-packages/itk/current/include/InsightToolkit/Algorithms -I/h
ome/bc/software/environment/freesurfer_src/centos6-x86_64-packages/itk/current/include/InsightToolkit/Ba sicFilters -I/home/bc/software/environment/freesurfer_src/centos6-x86_64-packages/itk/current/include/In sightToolkit/Common -I/home/bc/software/environment/freesurfer_src/centos6-x86_64-packages/itk/current/i nclude/InsightToolkit/IO -I/home/bc/software/environment/freesurfer_src/centos6-x86_64-packages/itk/curr ent/include/InsightToolkit/Numerics -I/home/bc/software/environment/freesurfer_src/centos6-x86_64-packag es/itk/current/include/InsightToolkit/Numerics/Statistics -I/home/bc/software/environment/freesurfer_src /centos6-x86_64-packages/itk/current/include/InsightToolkit/Review -I/home/bc/software/environment/frees urfer_src/centos6-x86_64-packages/itk/current/include/InsightToolkit/Review/Statistics -I/home/bc/softwa re/environment/freesurfer_src/centos6-x86_64-packages/itk/current/include/InsightToolkit/SpatialObject
I/home/bc/software/environment/freesurfer_src/centos6-x86_64-packages/itk/current/include/InsightToolkit /Utilities -DHAVE_ITK_LIBS -I../glut -DHAVE_GLUT_LIBS -I/home/bc/software/environment/freesurfer_src/c entos6-x86_64-packages/vxl/current/include/vxl/core -I/home/bc/software/environment/freesurfer_src/cento s6-x86_64-packages/vxl/current/include/vxl/vcl -I/home/bc/software/environment/freesurfer_src/centos6-x8 6_64-packages/vxl/current/include/vxl/v3p/netlib -I/home/bc/software/environment/freesurfer_src/centos6- x86_64-packages/vxl/current/include/vxl/v3p/netlib/opt -I/usr/local/cuda/include -DHAVE_ZLIB -g -O3 -mss e2 -mfpmath=sse -Wall -Wno-unused-but-set-variable -DUSE_SSE_MATHFUN -fopenmp -DHAVE_OPENMP -m64 -DLinx -DANSI -fdata-sections -ffunction-sections -Wl,--gc-sections -I/home/bc/software/environment/freesurfe r_src/centos6-x86_64-packages/mni/current/include -DFS_CUDA -I/usr/local/cuda/include -MT libutils_cud a_a-mrishash.o -MD -MP -MF .deps/libutils_cuda_a-mrishash.Tpo -c -o libutils_cuda_a-mrishash.o `test -f 'mrishash.c' || echo './'`mrishash.c mrifilter.c: In function ‘MRIconvolveGaussian’: mrifilter.c:2618:7: error: ‘width’ undeclared (first use in this function) if (width <= 1 || height <= 1 || depth <= 1) ^ mrifilter.c:2618:7: note: each undeclared identifier is reported only once for each function it appears in mrifilter.c:2618:21: error: ‘height’ undeclared (first use in this function) if (width <= 1 || height <= 1 || depth <= 1) ^ mrifilter.c:2618:36: error: ‘depth’ undeclared (first use in this function) if (width <= 1 || height <= 1 || depth <= 1) ^ Makefile:4419: recipe for target 'libutils_cuda_a-mrifilter.o' failed make[3]: *** [libutils_cuda_a-mrifilter.o] Error 1 make[3]: *** Waiting for unfinished jobs.... mv -f .deps/libutils_cuda_a-mriprob.Tpo .deps/libutils_cuda_a-mriprob.Po mv -f .deps/libutils_cuda_a-mrisbiorthogonalwavelets.Tpo .deps/libutils_cuda_a-mrisbiorthogonalwavelets. Po mv -f .deps/libutils_cuda_a-mrisegment.Tpo .deps/libutils_cuda_a-mrisegment.Po mv -f .deps/libutils_cuda_a-mrishash.Tpo .deps/libutils_cuda_a-mrishash.Po mv -f .deps/libutils_cuda_a-mrinorm.Tpo .deps/libutils_cuda_a-mrinorm.Po mv -f .deps/libutils_cuda_a-mripolv.Tpo .deps/libutils_cuda_a-mripolv.Po mv -f .deps/libutils_cuda_a-mriset.Tpo .deps/libutils_cuda_a-mriset.Po make[3]: Leaving directory '/home/bc/software/environment/freesurfer_src/freesurfer/utils' Makefile:6230: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory '/home/bc/software/environment/freesurfer_src/freesurfer/utils' Makefile:1060: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/bc/software/environment/freesurfer_src/freesurfer' Makefile:970: recipe for target 'all' failed make: *** [all] Error 2
Best, Foucault