When creating an emulator device, the option
Emulation Options makes me confused. What do
Use host GPU mean?
The Snapshot option speeds up the boot of the emulator by saving a snapshot of its RAM once it has booted, and restoring from that snapshot on future uses. That way, it doesn't have to run the boot process (which is slow, because it's emulated) every time you start the emulator.
The Use Host GPU option uses the host computer's OpenGL implementation (which is probably hardware-accelerated, on your real GPU) to evaluate OpenGL commands inside the emulated system. Put another way, when a program inside the emulator uses OpenGL for graphics operations, the work goes out to your real GPU, and the result goes back into the emulator, instead of emulating a GPU (which is very slow). The result is a significant speed-up, especially when you consider that most view and canvas drawing uses OpenGL in Android ≥ 4, even in non-graphics apps.
You can't have both options turned on at once.
The Snapshot option allows you to use a feature that's similar to the Hibernate function in Windows. It saves the contents of the emulator's memory to disk when you close the emulator, so that when you open it, it doesn't have to boot the OS, but instead it can load the memory contents from the disk and resume from where you left off. This allows you to start the emulator faster.
Use host GPU means that instead of using the CPU to render the graphics, it uses the computer's graphics card. This speeds up graphic-intensive processes. Details and requirements can be found on developer.android.com.
You should note that Snapshots and graphics acceleration are mutually exclusive, so you can't use both.