首页 > 解决方案 > 更简单的 CUDA 简介 - 内存初始化后不打印

问题描述

我正在关注更简单的 CUDA 简介教程。我从字面上复制并粘贴了完整的代码。add.cu 编译,但是,当我运行它时,它不会打印任何东西。我添加了一些更多的打印语句并缩小了范围:

printf("Hi\n");
for (int i = 0; i < N; i++) {
    x[i] = 1.0f;
    y[i] = 2.0f;
}
printf("Bye");

它打印“Hi”,但从不打印“Bye”。所以内存初始化似乎有问题。这里出了什么问题?

标签: memorycudagpu

解决方案


我自己解决了这个问题。基本上,我的设备驱动程序搞砸了。要检查您是否有同样的问题,请以管理员身份运行命令提示符并运行nvidia-smi. 如果你有同样的问题,它会给你一个错误,说它无法通信,因为你的设备驱动程序不是最新的或错误的或类似的东西。

为您的计算机下载最新的 nvidia 驱动程序(我在Dell Drivers & Downlods上找到了我的驱动程序)并安装它。现在,当您nvidia-smi在命令提示符下以管理员身份运行时,它应该会为您提供有关您的设置(驱动程序版本、Cuda 版本等)的一大堆详细信息,如下所示:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 441.14       Driver Version: 441.14       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 105... WDDM  | 00000000:01:00.0 Off |                  N/A |
| N/A   30C    P8    N/A /  N/A |     78MiB /  4096MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

您现在应该能够编译和运行具有统一内存的 Cuda 脚本。


推荐阅读