在CUDA内核中使用printf打印到标准输出的行数是否有限制?如果是的话,有办法改变吗?
发布于 2017-04-03 16:16:01
是的,有一个限制,这个限制在文档中描述。
在内核启动之前,printf()的输出缓冲区设置为固定大小(参见关联主机端API)。它是循环的,如果在内核执行期间产生的输出比缓冲区中的输出更多,则会覆盖旧的输出。
是的,正如您在评论中指出的那样,可以更改限制,即文档这里中涵盖了库达运行时API调用。
下面的API函数获取并设置用于将printf()参数和内部元数据传递给主机的缓冲区的大小(默认值为1MB):
cudaDeviceGetLimit(size_t* size,cudaLimitPrintfFifoSize)cudaDeviceSetLimit(cudaLimitPrintfFifoSize, size_t size)
https://stackoverflow.com/questions/43184823
复制相似问题