1. A method of compiling instructions for a GPU program, the method comprising: translating the instructions for the GPU program from a shading language into an intermediate language with a front end of the GPU compiler; and translating the instructions from the intermediate language into a GPU object language with a back end of the GPU compiler; wherein the instructions for the GPU program in the shading language include instructions defining a layout of resources for the GPU program.