ein*_*ica 2 c++ printf cuda gpu-programming
我想要printf()CUDA内核中的某些内容。[《编程指南》建议[1]:
#include <stdio.h>
__global__ void helloCUDA(float f)
{
printf("Hello thread %d, f=%f\n", threadIdx.x, f);
}
Run Code Online (Sandbox Code Playgroud)
但这只是包括标准C库的stdio.h。为什么那是必要的?CUDA的printf()行为与stdio的行为不同printf();我当然不需要那里的所有其他东西。
这是你并不需要了解其从CUDA语法限制茎的实现细节(基本上是非法的定义不同__device__和__host__相同功能的版本)。
标准库原型在编译期间用作设备代码中的代理,并且在为受支持的体系结构进行编译时,会使用一些偷偷摸摸的模板重载将设备实现插入设备代码中。