The best simulator depends heavily on the structure of the circuit you are working with.
In the supremacy experiment we used qsim for state vector simulation. It has hand-rolled vectorized assembly to make applying arbitrary two qubit gates very fast. But it uses space exponential in the number of qubits, so circuits covering the entire chip were too large to store in memory.
We also used qsimh, which is a tensor network simulator. It can cut the circuit into pieces and solve each piece separately. It has cost exponential in the number of operations crossing the cut. It can scale out to a large number of qubits... as long as you can find good cuts. In practice this means the two qubit operations need some form of locality and the circuit depth needs to be low. When testing we would purposefully weaken circuits by removing a few key operations crossing cuts, so they could be simulated.
Another extremely useful form of simulator is a stabilizer circuit simulator. These simulators scale to hundreds of thousands of qubits with no limits on depth, but only support stabilizer operations (yes H, yes S, yes CNOT, no T, no Toffoli). Or, to be more accurate, their time cost increases exponentially for each non-Clifford operation you use.