When the miner starts – it reads the miner options, checks for available devices (GPUs) and then proceed to connect to the mining pool. After the initial connection, the pool sends work to the miner. The work received, tells the miner which EPOCH we currently at, so the miner can generate the DAG file. After the DAG is created - verified, and repaired if needed/the miner software supports it - the actual mining starts.
What does the GPU really do?
The miner receives a block header from the pool - including for example the height, a hash of the block data (transactions) and so on. What needs to be found is a nonce that completes the block header in a way such that the hash of the block header is low enough. Any nonce that gives a low enough header hash can be used to form a block.
So what the miner now does is brute forcing hashes / nonces in a range that the pool does allow. Once a nonce is found that has the header hash which is “good enough” - is submitted to the pool as a share. The share with a nonce that is quite good, but often not good enough to make a block – since the pool difficulty is lower than the network difficulty. The reason is that the pool uses this "almost block nonces" to estimate the speed behind the miner.
What is a nonce?
A nonce (number once) is an arbitrary number that can be used just once. Its often a random or pseudo-random number. Its used in Proof-of-Work system to vary the input to a hash function so as to obtain a hash for a certain input that fulfils certain arbitrary conditions.
How does the pool verify the share?
The pool takes the provided nonce and the block header the miner got when it received the worked – and does the computation of the hash function including both again. If the result is indeed below the target value, the miner received, it gets accepted. If its not below, it gets rejected (invalid). For the accepted ones, it will also check if the job corresponds to the current height (Accepted) or not (Stale share, its valid, but too late)
Read about stale shares here!
Read about invalid shares here!