The assignment has to be performed for dimensions n in the range of several thousands to show decent speedups.
If you encounter a pivot 0, you have to swap the corresponding row with another value that has a non-zero value in that position. If you encounter a matrix that has not full rank (i.e., all not yet processed rows have 0 in the pivot position), abort and choose another one for benchmarking (however, for large dimension n and field size p, the probability to encounter such a matrix is very low).
If you encounter a pivot 0, you have to swap the corresponding row with another value that has a non-zero value in that position. If you encounter a matrix that has not full rank (i.e., all not yet processed rows have 0 in the pivot position), abort and choose another one for benchmarking (however, for large dimension n and field size p, the probability to encounter such a matrix is very low).