This paper presents a methodology for developing finite differences or finite volumes CFD codes on Graphical Processing Units (GPUs) through general purpose guidelines. These guidelines are applied to the implementation on a GPU of a 2D Euler equations solver on a structured grid and its tridimensional extension on multiple GPUs. Several numerical schemes are used. All of them are first-order in time and use a Roe flux differencing scheme in space, which is considered either in its native formulation or using a second-order MUSCL scheme. The 2D problem leads to a discussion about various API, algorithmic and computational optimizations on NVIDA GPUs with 1.3 compute capability, whereas the 3D problem allows to complete the 2D study with the introduction of Fermi GPUs and the definition of a communication system allowing to use efficiently several GPUs on a node.