【问题标题】:Even Easier Introduction to CUDA - not printing after memory initialization更简单的 CUDA 简介 - 内存初始化后不打印
【发布时间】:2020-04-01 14:20:11
【问题描述】:

我正在关注Even Easier Introduction to 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”。所以内存初始化似乎有问题。这里出了什么问题?

【问题讨论】:

  • proper CUDA error checking 添加到代码和/或使用cuda-memcheck 运行它
  • cuda-memcheck 给我'错误:进程没有成功终止。 Cuda 错误检查在add.cu 30 上给了我一个未知错误,这是我首先分配内存的行。
  • 您的设置不支持统一内存,或者您的 CUDA 安装损坏。
  • 显然不支持统一内存。我使用cudaMemcpy 设置它并且它工作。一个小问题:如何访问设备内存?
  • 统一内存在 fermi 和较旧的 GPU 上不受支持,并且在 32 位操作系统上也不支持。在其他情况下它应该可以工作。

标签: memory cuda gpu


【解决方案1】:

我自己解决了这个问题。基本上,我的设备驱动程序搞砸了。要检查您是否有同样的问题,请以管理员身份运行命令提示符并运行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 脚本了。

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多