There's no linker for the GPU code, hence no way to associate symbols from different objects. Also, there are no calls so all device routines are inlined by the compiler, hence need to be within the same module.