If it's okay with you, I think it would be better to keep the declarations in assignment_kernels.hpp. Otherwise, we need to do a cuda_whatever.hpp for every single file we are going to change, and I think it will get very messy.

Since we split at the source file level, and it works nicely because of the different extensions (assignment_kernels.cu versus assignment_kernels.cpp), the code is basically separate anyway.