Portability of CUDA Fortran Codes

I was wondering how portable CUDA Fortran codes are? That is, if I had access to a machine with a Fermi, but didn’t have PGI 2010 compilers on it, would it be possible to compile it on my development box and then move it to the Fermi box? If so, what would be required on the non-build box to run the CUDA code?

Obviously you’d need the right NVIDIA driver and probably the CUDA Toolkit, but does running CUDA Fortran code also need some PGI libraries?


The answer is always that it depends on what your program does and how it gets built. In our REDIST directory we include shared libraries or DLLs that you should need. And then we also have the command line option -Bstatic_pgi where we pull in all the PGI libraries for static builds. If your program has OpenMP/NUMA stuff in it, we may have trouble generating a completely static build depending on your system. We link assuming our libcudart.so under the pgi tree. You should be able to override that using environment variables or the rpath flag.