A Hardware Redundancy and Recovery Mechanism for Reliable Scientific Computation on Graphics Processors