We explore the diagonalization methods used in the PWscf (Plane-Wave Self Consistent
Field), a key component of the Quantum ESPRESSO open-source suite of codes for materials
modelling. For the high performance of the iterative diagonalization solvers, two solutions
are proposed. Projected Preconditioned Conjugate Gradient (PPCG) method as an alternative
diagonalization solver and Porting of existing solvers to GPU systems using CUDA Fortran.
Kernel loop directives (CUF kernels) have been extensively used for the implementation of
Conjugate Gradient (CG) solver for general k-point calculations to have a single source code
for both CPU and GPU implementations. The results of the PPCG solver for Γ-point calculation
and the GPU version of CG have been carefully validated, and the performance of the code on
several GPU systems have been compared with Intel multi-core (CPU only) systems. Both of
these choices reduce the time to solution by a considerable factor for different input cases which
are used for standard benchmarks using QE package