Optimization and performance evaluation of the IDR iterative Krylov solver on GPUs