串行程序并行化?

1.我的程序由两部分组成,第一部分已经实现了并行运算(kernel1),第二部分会用到第一部分的结果,如果第二部分也想实现并行(kernel2),那主程序中这样写正确吗,需要注意什么?
mykernel1<<<dimGrid,dimBlock>>>(d_in_data,d_out_data1);
mykernel2<<<dimGrid,dimBlock>>>(d_out_data1,d_out_data2);
2.如果把两部分写在一个内核函数中,怎么实现呢?