$Z^{prev}$ = KernelSave($Z,n$)\;
$Z$ = KernelUpdate($P,P',Z,n$)\;
$\Delta Z$ = KernelComputeError($Z,Z^{prev},n$)\;
$\Delta Z_{max}$ = CudaMaxFunction($\Delta Z,n$)\;
$Z^{prev}$ = KernelSave($Z,n$)\;
$Z$ = KernelUpdate($P,P',Z,n$)\;
$\Delta Z$ = KernelComputeError($Z,Z^{prev},n$)\;
$\Delta Z_{max}$ = CudaMaxFunction($\Delta Z,n$)\;