Sign up ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

On my hardware I have a CUDA enabled video card an ASUS GTX460, yet Mathematica does not seem to recognize this.

I have:

  • CUDA Toolkit 4.1
  • CUDA SDK 4.0
  • NVIDIA Driver 295.49

on Sabayon Linux 64 bit with Mathematica 8.0.0.

For example, following the CUDALink Setup, I get

CUDAQ[](* False *)
CUDADriverVersion[] (* CUDADriverVersion::nodriv message raised. *)

The NVIDIA command /opt/cuda/sdk/C/bin/linux/release/deviceQuery finds the card and reports "passed" as well as listing the card capabilities.

Examples from /opt/cuda/sdk/C/bin/linux/release directory, such as smokeParticles, scan, randomFog, run well.

The relevant shell variables are set as follows:

export CUDA_LIBRARY_PATH=/usr/lib64/

export NVIDIA_DRIVER_LIBRARY_PATH=/usr/lib64/opengl/nvidia/lib/*

Additional Information

Supported Hardware

The Wolfram CUDA reference page CUDA Reference does not explicitly list the GTX 460 GPU. It does list the GTX 460M, the mobile version, and a mysterious GTS 460.

The Wolfram linked NVIDIA CUDA GPUs lists the popular GTX 460 but has no entry at all for the GTS 460. Perhaps this is a typo in the Wolfram documentation, as it would seem unlikely that they wouldn't support a commonplace NVIDIA GPU whilst supporting a seemingly non-existent GPU. If this isn't the case - I'm clearly stuck.

Problems finding the NVIDIA driver

Some poking around suggests that one sticking point is that


is set to $Failed.

Would anyone know where this is set? From trying to Trace CUDADriverVersion it isn't obvious to me where things go wrong.

How do I convince Mathematica that my card supports CUDA?

share|improve this question
This might be a silly question as I don't even have an nVidia graphics card, but what if you update your CUDA toolkit to version 4.2? There seem to be newer drivers too: –  Szabolcs Jun 5 '12 at 15:35
@Szabolcs It's possible, but that version isn't marked as stable for my distribution, Toolit 4.1 is the latest approved version. This is an ongoing problem and has persisted over several toolkit and driver versions, so unless there is something particular in 4.2 that addresses this I'd rather not adopt an unstable version, does that seem reasonable ? –  image_doctor Jun 5 '12 at 15:39
I needed to set the variables NVIDIA_DRIVER_LIBRARY_PATH and CUDA_LIBRARY_PATHas mentioned towards the end of the page you mention. –  b.gatessucks Jun 5 '12 at 22:06
@image_doctor I don't have a CUDA compatible card, so I can't do this. But the first thing would be finding the source code of CUDAQ. It's in SystemFiles/Links/CUDALink/CUDALink.m. You'll see it's defined in terms of DeviceCount which then uses iDeviceCount. These seem to be defined in SystemFiles/Links/GPUTools/WGLPrivate.m and use WGLQuery. You can try calling these functions manually as well as applying Trace or TracePrint to them to find out where things go wrong. It'll be a lot of work, but I think you get the idea ;-) I did it with ClusterIntegration` . –  Szabolcs Jun 6 '12 at 7:53
@image_doctor On my system (the equivalent of) your export NVIDIA_DRIVER_LIBRARY_PATH=/usr/lib64/opengl/nvidia/lib/* does not work. I have to point to the specific library (ending in .so). –  b.gatessucks Jun 6 '12 at 19:56

2 Answers 2

up vote 5 down vote accepted

Try setting your shell variable to


i.e. point it to a specific library.

share|improve this answer

I have managed to get CUDALink working on an ubuntu 14.04 with an NVidia GTX 750 Ti with CUDA 7 toolkit (installed the toolkit following these instructions; ).

I have never been able to change NVIDIA_DRIVER_LIBRARY_PATH and CUDA_LIBRARY_PATH using env variables and get CUDALink to work.

I assume the Mathematica CUDA and Nvidia library paths as hardwired and I use symlinks from the libraries to the default locations where Mathematica is looking. It works for me! Mathematica is looking in /usr/lib64, this does not exist on my system, so;

cd /usr
sudo mkdir lib64

Locate your file, I used find

stuart@stuart-2015:~$ find / -name* 2>/dev/null

I have a 64bit system, I ignore the lib32 libraries, I have 2 choices;


these are actually different files, I dont know what the difference is, or which is preferred, but there are only two choices, so I try the second file first and symlink like so;

sudo ln -s /usr/lib/nvidia-346/tls/ /usr/lib64/

With the cuda library, we find these files;

find / -name 2>/dev/null

I need the 64-bit version, issue the symlink command;

 sudo ln -s /usr/lib/x86_64-linux-gnu/ /usr/lib64/

Now open Mathematica and test; enter image description here

share|improve this answer
Thank you for your contributions, although please note that it is extremely poor form to post identical answers to multiple questions. If you really think the question is a duplicate and can be answered identically, then flag it as such. I have upvoted one of your three answers (since it is obviously a good answer), but the other two (this one and this one) do not seem appropriate to their respective questions, i.e. the issue encountered by the OP was obviously different. –  Oleksandr R. Aug 22 at 15:43

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.