First, an exact equilibrium may not be computable in general, so usually the idea is to specify an error parameter $\epsilon$ and look for an $\epsilon$-equilibrium.

Finding an $\epsilon$-Nash equilibrium is considered a hard problem (it is complete for the complexity class $\mathsf{PPAD}$). So there are no known "fast" algorithms.

One algorithm is called *support enumeration* and covered in this math.se post. You list all possible supports for the players' mixed strategies. Given a set of supports, one can use linear programming to check whether there is a mixed NE with these supports.

Another method (that I believe is still relatively state of the art (?)) is given by Lipton, Markakis, and Mehta (2003) in *Playing Large Games Using Simple Strategies* (pdf link). The idea is, given $\epsilon$ and the number of strategies $n$, let $k = 12 \ln n / \epsilon^2$. Enumerate all mixed strategies with probabilities that are a multiple of $1/k$ for each player (there are ${n + k -1 \choose k}^2$ pairs of strategies to look at) and check each pair to see if it is an $\epsilon$-equilibrium; the authors prove that at least one such pair must be.

Both of these are covered in this 2004 article "On Algorithms for Nash Equilibria." I am not sure if there is anything faster that has since been discovered; I guess not for the general case, but there are definitely faster algorithms for certain classes of games. One reference would be *On Oblivious PTAS's for Nash Equilibrium* by Daskalakis and Papadimitriou (arxiv link), also *The Approximate Rank of a Matrix and its Algorithmic Applications* by Alon et al from this year's STOC (pdf link).