如何在 16.04 中验证 CUDA 安装?

Mik*_*sta 35 nvidia 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                                         |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

然后

 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
Run Code Online (Sandbox Code Playgroud)

最后

which nvcc
/usr/bin/nvcc
Run Code Online (Sandbox Code Playgroud)

但是我的安装目录是

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
Run Code Online (Sandbox Code Playgroud)

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

小智 20

这个可以吗?

是的,一切都在预料之中。

为什么 nvcc 指向其他目录?

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


Cir*_*郝海东 6

编译并运行一个 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;
}
Run Code Online (Sandbox Code Playgroud)

GitHub 上游.

并编译并运行:

nvcc -o main.out main.cu
./main.out
Run Code Online (Sandbox Code Playgroud)

并且断言不会在我正常工作的设置中失败。

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

运行一些 CPU 与 GPU 基准测试

一个更有趣的性能检查是采用一个优化良好的程序,该程序执行CPU 或 GPU的单个GPU 可加速算法,并同时运行两者以查看 GPU 版本是否更快。

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

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


归档时间:

查看次数:

138309 次

最近记录:

5 年,3 月 前