As long as these are in the same stream the first will finish before the second starts, and your data should be correct. Make sure that you don’t have an issue within your kernels where multiple threads are writing to the same location, since the results of that are undefined.
By the way, I’m assuming you wrote these kernels, so unless you intend on the input and output to be different, you should only need one parameter. If you did something like used the restrict keyword in your function definitions then the compiler will assume aliasing won’t happen, when in reality, it could based on how you’re using it.
restrict tells the compiler that the pointers will not be aliased – that they won’t be pointing to overlapping memory. If you give it that keyword, and you end up aliasing, then it may produce incorrect results.