内核中的CUDA printf()
打印到我的进程的标准输出流。现在,我想至少将此打印输出重定向到任意输出流,从此处开始。我的意思是一个任意流,它不仅仅是一个文件描述符(如请求here) - 我希望能够使用字符串流,记录基础设施等。
如果可能的话,我会真的喜欢能够做一些事情,比如告诉单个内核将其printf()
输出发送到某个输出流。这可能吗?
注意:对于那两个标记为他们最喜欢的问题的灵魂来说 - 你怎么样我的问题足以让它成为最爱,但还不足以支持它? <困惑。 >
答案 0 :(得分:3)
据我所知,这是不可能的。 CUDA API不提供对将向其发出输出的IO流的任何控制。
如果你想要比运行时提供的设施更精细的东西,那么你最好的解决方案就是自己动手。在将内核内printf的运行时支持添加到CUDA之前,NVIDIA(至少向开发人员)提供了一个名为cuprintf的实用程序,它允许内核向主机控制台发出输出。我的建议是抓住cuprintf的代码,然后破解你正在寻找的东西。