C版本(从你的老C版本---Fortran用户请考虑CUDA Fortran)。...而CUDA C默认的Runtime API风格的编译, 允许这个函数依然保留在普通的源代码文件中, 只需要加上一点点处理, 就可以在GPU上运行了。..., 会将有这些特殊前缀的函数, 生成GPU代码,
而其他源文件中的剩余部分, 没有这两个前缀的函数, CUDA C编译器自动跳过, 调用你本机上的原来的CPU编译器, 继续编译剩下的部分。...所以这是为何你总是看到, CUDA C需要有一个配套的CPU编译器(Host Compiler手册中叫)的原因。...这种写法等效于:编译器自动当成2个函数看, 一个只有__host__, 另外一个只有__device__,名字一样而已,所以这种能同时从CPU和GPU上调用.(因为编译了两次, 生成了两种代码)。