memory - 更简单的 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”。所以内存初始化似乎有问题。这里出了什么问题?
解决方案
我自己解决了这个问题。基本上,我的设备驱动程序搞砸了。要检查您是否有同样的问题,请以管理员身份运行命令提示符并运行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 脚本。
推荐阅读
- php - 如何将新功能应用于实时服务器并保护数据库以防回滚计划出现任何畸形
- android - android 无法显示 PDF(name.pdf 格式无效)
- go - 使用 sqlx transaction,tx.NamedQuery() 时出现错误
- javascript - jQuery/Javascript 从对象数组中删除一个对象
- dart - 如何在 Dart 中使用复杂的参数调用 super()?
- c# - 验证 XLSX 文件中的空字段 - (EPPlus) ASP.NET
- java - 结合 TextViews + Image 制作完整的图像/文件
- c++ - 静态转换允许转换对象指针但不允许转换整数
- git - Git - 合并多个发布分支的工作流程
- c# - 为什么 IsGenericTypeDefinition 返回 false?