Is there an efficient method for finding primitive polynomials, especially for larger fields like $GF(2^{64})$ or larger?
For $GF(2^n)$, XOR and carryless multiply can be used for polynomial math which is reasonably fast, but this won't work for $GF(p^n), p \ne 2$. I don't know if there is any demand for $GF(p^n), p \ne 2$.
What I've have done in the past. Using $GF(2^{64})$ as an example, try all 37820 combinations of $x^{64} + x^a + x^b + x^c + 1$. For each polynomial, check that $x^{64-1} = 1$ and $x^p \ne 1$, for $p = 7C6$ product sums of the 7 prime factors of $x^{64}-1 = \{3,5,17,257,641,65537,6700417\}$ taken 6 at a time. Using carryless multiply, (on X86, PCLMULQDQ), this was fairly quick, finding 696 polynomials in less than 0.2 seconds.
Extended math would be needed for a larger field.
I had also considered $GF(p^n), p \ne 2$, but not looking at that for now. All of the primitive tables I've seen are for $GF(2^n)$.