如何验证 16.04 中的 CUDA 安装?

如何验证 16.04 中的 CUDA 安装?

我已经做了很多工作但我不确定一切是否顺利。

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                                         |
+-----------------------------------------------------------------------------+

然后

 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

最后

which nvcc
/usr/bin/nvcc

但是我的安装目录是

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

这样可以吗?为什么 nvcc 指向其他目录?

答案1

这个可以吗?

是的,一切都正如预期的那样。

为什么 nvcc 指向其他目录?

nvcc位于可执行文件的典型文件夹中,而其他的是 CUDA“驱动程序”。这主要是 Nvidia 的决定,但它是有道理的。

答案2

编译并运行 CUDA hello world

对于“某些东西是否安装正确”的问题,最好的答案往往是:“试着将它用于任何你想用它做的事情,看看它是否会爆炸,以及它是否像你期望的那样快”。

如果“爆炸”部分失败,您可能想尝试让 hello world 工作:

主程序库

#include <cassert>

#define N 3

__global__ void inc(int *a) {
    int i = blockIdx.x;
    if (i<N) {
        a[i]++;
    }
}

int main() {
    int ha[N], *da;
    cudaMalloc((void **)&da, N*sizeof(int));
    for (int i = 0; i<N; ++i) {
        ha[i] = i;
    }
    cudaMemcpy(da, ha, N*sizeof(int), cudaMemcpyHostToDevice);
    inc<<<N, 1>>>(da);
    cudaMemcpy(ha, da, N*sizeof(int), cudaMemcpyDeviceToHost);
    for (int i = 0; i < N; ++i) {
        assert(ha[i] == i + 1);
    }
    cudaFree(da);
    return 0;
}

GitHub 上游

并编译并运行:

nvcc -o main.out main.cu
./main.out

并且断言在我正常工作的设置上没有失败。

如果失败了,请查看如何安装问题:

运行一些 CPU 与 GPU 基准测试

一个更有趣的性能检查是采用一个经过良好优化的程序,它只执行一次GPU 加速算法可以是 CPU 也可以是 GPU,然后同时运行两者以查看 GPU 版本是否更快。

TODO 在这里提出并测试一个,例如矩阵乘法岩浆 (GPU)和 LAPACKE (CPU)。它们可能公开相同的 C API,因此可以轻松比较结果。

然后,您还可以nvidia-settings在运行时打开以查看 GPU 是否实际上仅在 GPU 版本中使用:如何检查 Ubuntu 是否正在使用我的 NVIDIA 显卡?

相关内容