moving kernels to separate header file in gpu and mpi version
unifying kernels for single gpu and distributed multi-gpu problem - adding size parameter