【发布时间】: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 位操作系统上也不支持。在其他情况下它应该可以工作。