code: def sde_update_gradient_full(self, gradients):
          
          part_start_param_index = 0
          for p in self.parts:
              if not p.is_fixed:
                  part_param_num = len(p.param_array) # number of parameters in the part
                  p.sde_update_gradient_full(gradients[part_start_param_index:(part_start_param_index+part_param_num)])
                  part_start_param_index += part_param_num
docs: Update gradient in the order in which parameters are represented in the
          kernel