Possible issues with CUDA 11.0 on Linux or with an obsolete graphic card


I’ve recently built a new distro of Ubuntu 20.04 and subsequently installed the newest CUDA 11.0 in the hope of working with Gromacs software I built with CUDA support. My graphic unit is a pretty ancient NVIDIA GeFORCE 650 GTX but newertheless its Kepler m35 (m37?) architecture is recognized as deprecated but yet still supported by CUDA 11.0, isn’t it? The driver is 450.36.06, so most probably is up-to-date as well.

I decided to clarify this issue because I cannot perform computations with Gromacs. Everytime I get:

Program: gmx mdrun, version 2020.2
Source file: src/gromacs/ewald/pme_gpu_3dfft.cu (line 59)

Fatal error:
cufftPlanMany R2C plan failure (error code 5)

which (as fas as I checked and understood it) means that there are issues with GPU computation with CUDA. Having performed, or at least having tried to perform, nbody benchmark I got:

Run “nbody -benchmark [-numbodies=]” to measure performance.
-fullscreen (run n-body simulation in fullscreen mode)
-fp64 (use double precision floating point values for simulation)
-hostmem (stores simulation data in host memory)
-benchmark (run benchmark to measure performance)
-numbodies= (number of bodies (>= 1) to run in simulation)
-device= (where d=0,1,2… for the CUDA device to use)
-numdevices=< i > (where i=(number of CUDA devices > 0) to use for simulation)
-compare (compares simulation results running once on the default GPU and once on the CPU)
-cpu (run n-body simulation on the CPU)
-tipsy=<file.bin> (load a tipsy model file for simulation)

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.
Windowed mode
Simulation data stored in video memory
Single precision floating point simulation
1 Devices used for simulation
GPU Device 0: “Kepler” with compute capability 3.0
Compute 3.0 CUDA device: [GeForce GTX 650]
CUDA error at bodysystemcuda_impl.h:281 code=13(cudaErrorInvalidSymbol) “setSofteningSquared(softeningSq)”

Is it so because CUDA 11.0 doesnt.t support GTX 650 any more? I know that m30 is obsolete, but 11.0 should have still supported (deprecated, I admit) m35 to m50 architectures - while compiling Gromacs, I got nvcc communicates that there are deprecated and may be removed in a future release. But as far as I understand it “may be removed in a future release” means they are still (ought to be at least) in use.

Should I try e.g. installing CUDA 10.2 or something?

Thanks in advance for your help with my problem!

The second and third to last lines are the clue and Cuda 11.0 Release Notes state:

“Support for Kepler sm_30 and sm_32 architecture based products is dropped.”

Also Ubuntu 20.04 is not qualified for any version of the Cuda Toolkit.

Ok, it seems I was wrong assuming that my GTX 650 is sm_35 or higher.

Actually, my colleague runs CUDA 10.2 for Ubuntu 18.04 on 20.04 without problems (but has a different GPU) so I thought that small upgrade will make no harm. Obviously, that was not the case.

Nevertheless, thx for your reply!

I find the Wikipedia page a useful resource for keeping track of all the Cuda versions and options: