CUDA printf的限制

时间:2017-04-03 12:34:01

标签: cuda printf

使用CUDA内核中的printf打印到标准输出的行数是否有限制?如果是的话,有没有办法改变它?

1 个答案:

答案 0 :(得分:5)

是的,有一个限制,该限制在documentation

中描述
  

在内核启动之前,printf()的输出缓冲区设置为固定大小(请参阅关联的主机端API)。它是循环的,如果在内核执行期间产生的输出多于缓冲区中的输出,则会覆盖旧的输出。

是的,您可以在评论中指出更改限制,文档here中涵盖了cuda运行时API调用。

  

以下API函数获取并设置用于将printf()参数和内部元数据传输到主机的缓冲区大小(默认值为1兆字节):

     

cudaDeviceGetLimit(size_t* size,cudaLimitPrintfFifoSize)   cudaDeviceSetLimit(cudaLimitPrintfFifoSize, size_t size)