c - 为什么 cuda 中的 in-kernel-printf 在显示在显示器上之前将字符串输出到主机?

标签 c cuda gpu nvidia

第 5.5 页的 CUDA 编程指南117 提到传递给内核中使用的 printf 的字符串输出到主机上的流。我的疑问是为什么需要将其传递给主机? Graphics Card直接连接显示设备,直接将输出发送到显示设备不是更好吗?何必非要到主机上,再送回显卡显示器上显示呢?

最佳答案

如果显卡不支持显示器怎么办?

如果系统中有 4 个 GPU 怎么办?

无论如何,根据操作系统的控制台输出规则,设备 printf 与操作系统协调将输出发送到与主机 printf 相同的队列中。这允许您执行诸如将标准输出重定向到文件之类的操作。

您无法通过简单地将一些数据塞到 GPU 上的某处来解决这个问题。

大概您的问题是出于对性能的关注,而设备 printf 并非旨在成为高性能输出路径。

关于c - 为什么 cuda 中的 in-kernel-printf 在显示在显示器上之前将字符串输出到主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19193297/

相关文章:

c++ - 将输出帧保存为图像文件 CUDA 解码器

cuda - (GK20a GPU) tegra k1 中每个 SM 的常驻扭曲

c - 全局变量数组指针C编程

c++ - Objective-C:避免_作为局部变量名的技术原因?

c++ - 提升类型比较的静态断言

docker - 寻找任何使用 GPU 的 Jetson Nano DockerHub 示例

css - 无法强制 webkit 使用 GPU 渲染

c - 记录开头出现奇怪的字符 - C

c - 使用 "getchar"更新数组中的值

c - 是否有适用于 mac osx lion 上的 CUDA 的 IDE?