CUDA printf的限制

Jin*_*žka 3 printf cuda

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

Rob*_*lla 5

是的,有一个限制,该限制在文档中描述.

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

是的,您可以在评论中指出限制,可以在此处的文档中介绍cuda运行时API调用.

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

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