更简单的 CUDA 介绍 - 内存初始化后不打印



我正在遵循 CUDA 更简单的介绍教程。我从字面上复制并粘贴了完整的代码。但是,add.cu 编译时,当我运行它时,它不会打印任何内容。我又放了一些印刷语句并缩小了范围:

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

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

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

为您的计算机下载最新的nvidia驱动程序(我在戴尔驱动程序和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 脚本。

最新更新