I have worked quite a lot but I am not sure if everything is ok.
nvidia-smi
Sun May 21 11:29:57 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.39 Driver Version: 375.39 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GT 730 Off | 0000:01:00.0 N/A | N/A |
| 40% 39C P8 N/A / N/A | 295MiB / 1984MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
Then
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Tue_Aug_11_14:27:32_CDT_2015
Cuda compilation tools, release 7.5, V7.5.17
And finally
which nvcc
/usr/bin/nvcc
But my installation directory is
ldconfig -p | grep cuda
libnvrtc.so.8.0 (libc6,x86-64) => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libnvrtc.so.8.0
libnvrtc.so (libc6,x86-64) => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libnvrtc.so
libnvrtc-builtins.so.8.0 (libc6,x86-64) => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libnvrtc-builtins.so.8.0
libnvrtc-builtins.so (libc6,x86-64) => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libnvrtc-builtins.so
Is this ok?Why is nvcc pointing to other directory?
Yes, everything is as expected.
nvcc
lives on the typical folder for executables whereas the others are CUDA "drivers". It's mostly a Nvidia decision but it makes sense.Compile and run a CUDA hello world
The best answer to "is something installed properly" questions tends to be: "try to use it for whatever you want to use it, and see if blows up and if it is as fast as you would expect".
If the "blows up" part fails, you might then want to try and make a hello world work:
main.cu
GitHub upstream.
and compile and run with:
and the assert does not fail on my properly working setup.
Then if that fails, go over how to install questions:
Run some CPU vs GPU benchmarks
A more interesting performance check would be to take a well optimized program that does a single GPU-acceleratable algorithm either CPU or GPU, and run both to see if the GPU version is faster.
TODO propose and test one here, e.g. matrix multiplication with both MAGMA (GPU) and LAPACKE (CPU). They might expose the same C API, so it could be easy to compare results.
You could then also open
nvidia-settings
while that runs to see if the GPU is actually getting used only in the GPU version: How do I check if Ubuntu is using my NVIDIA graphics card?