2
在CUDA内核中使用printf
打印到标准输出的行数是否有限制?如果是的话,有没有办法改变它?CUDA printf的限制
在CUDA内核中使用printf
打印到标准输出的行数是否有限制?如果是的话,有没有办法改变它?CUDA printf的限制
是的,有一个限制,该限制在documentation中描述。
在内核启动之前,printf()的输出缓冲区设置为固定大小(请参阅关联的主机端API)。它是循环的,如果在内核执行过程中产生的输出比在缓冲区中更多,那么旧的输出将被覆盖。
是的,在您的评论中指出,cuda运行时API调用在文档here中已涵盖,可以更改此限制。
以下API函数获取和设置用于将printf()的参数和内部元数据传送到主机的缓冲区的大小(默认为1兆字节):
cudaDeviceGetLimit(size_t* size,cudaLimitPrintfFifoSize)
cudaDeviceSetLimit(cudaLimitPrintfFifoSize, size_t size)
For 10 MB:cudaDeviceSetLimit(cudaLimitPrintfFifoSize,1024000 * 10);?它应该是明确值的10倍以上...... – user3907668