message: In class HypreParMatrix, support the methods ScaleRows, InvScaleRows,
  and operator*= with CUDA-hypre build -- for now they just move the
  matrix to host to perform the operation.
diff: @@ -1758,11 +1758,13 @@ void HypreParMatrix::ScaleRows(const Vector &diag)
  mfem_error("Note the Vector diag is not of compatible dimensions with A\n");
  }
  + HostReadWrite();
  + diag.HostRead();
  +
  int size = Height();
  double *Adiag_data = hypre_CSRMatrixData(A->diag);
  HYPRE_Int *Adiag_i = hypre_CSRMatrixI(A->diag);
  -
  double *Aoffd_data = hypre_CSRMatrixData(A->offd);
  HYPRE_Int *Aoffd_i = hypre_CSRMatrixI(A->offd);
  double val;
  @@ -1779,6 +1781,8 @@ void HypreParMatrix::ScaleRows(const Vector &diag)
  Aoffd_data[jj] *= val;
  }
  }
  +
  + HypreRead();
  }
  void HypreParMatrix::InvScaleRows(const Vector &diag)
  @@ -1793,6 +1797,9 @@ void HypreParMatrix::InvScaleRows(const Vector &diag)
  mfem_error("Note the Vector diag is not of compatible dimensions with A\n");
  }
  + HostReadWrite();
  + diag.HostRead();
  +
  int size = Height();
  double *Adiag_data = hypre_CSRMatrixData(A->diag);
  HYPRE_Int *Adiag_i = hypre_CSRMatrixI(A->diag);
  @@ -1820,6 +1827,8 @@ void HypreParMatrix::InvScaleRows(const Vector &diag)
  Aoffd_data[jj] *= val;
  }
  }
  +
  + HypreRead();
  }
  void HypreParMatrix::operator*=(double s)
  @@ -1829,6 +1838,8 @@ void HypreParMatrix::operator*=(double s)
  mfem_error("Row does not match");
  }
  + HostReadWrite();
  +
  HYPRE_Int size=hypre_CSRMatrixNumRows(A->diag);
  HYPRE_Int jj;
  @@ -1845,6 +1856,8 @@ void HypreParMatrix::operator*=(double s)
  {
  Aoffd_data[jj] *= s;
  }
  +
  + HypreRead();
  }
  static void get_sorted_rows_cols(const Array<int> &rows_cols,
  