REDUCED ENGINE PERFORMANCE

GMC C2500

I have a 2003, sierra, 6.0,145000 miles, crew cab, 1500 hd, 4x4, my readout will pop up, reduced engine performance and my truck will not die out but will run very rough, I stop the engine, open my gas cap and recrank the engine and it will run fine, but my engine light stays on for at least a day then it goes away. This occurs at least 3or 4 times per tank of gas, and it doesn't seem to matter if is full or low or at half a tank.