What about calling non __device__ function inside kernel? Feature suggestion

Hello all

Is the CUDA team planing to remove the fact that CUDA kernels cannot call
non device function? Even if this function can be inlined?

This would mean that we could use in device code any C++ library
that is not aimed to CUDA but can be inlined inside kernels (stl or boost for example).

The CUDA compiler could implicitly inline any function call in kernels. (When
it is possible, and report an error if it cannot).

It would be great :)

If you have the source code, you can add the [font=“Courier New”]device[/font] yourself and see how it goes. If you don’t have it, there not much the compiler can do either…

In general I don’t find it a good idea to take random CPU code and try to stick it on the GPU. Even if that would be possible, I can see compelling reasons why Nvidia would not allow it, as they would probably soon find themselves buried in “CUDA runs slower than my CPU, how could that be” complaints.