Once you have an ambitious project that goes beyond what the hardware can do... well you will run out of resources. Even 8 gigs of vRAM is not a lot (some of the resources are also not available since the card is also being used for the images on the monitor or monitors)
Every element in your scene uses some memory. Once you add it all up, the demand for resources can easily push beyond what your GPU can handle.
Multiple Particles systems for grass, leaves and such will eat up a lot of vRAM in no time. Large textures and multiple subsurf modifiers among many other things can also use a lot of resources.
You have many non exclusive options:
Simplify your scene (reduce the number of vertices, particles and subdivisions, use smaller textures, bake complex shaders into simpler materials, etc). Can you get rid on unseen elements? How much detail do you really need in the final rendered scene?
Split the scene in different components that are manageable by your system and composite them later into a single image.
Render on CPU, probably slower, but you are not limited by the amount of memory on the GPU anymore, and even if you run out of RAM the system can probably use some form of Disk Cache...
Part of the art of 3D is dealing with the reality of your computing power. Time- Low cost-Quality... choose any two at the expense of the third one.
In an ideal world we want to render using all of the best settings with unlimited detail... but for all of us with a limited budget and limited lifetimes, we have to learn to optimize.