I just updated the recent version of the sudoku subgrid canonicalization tool on https://github.com/dobrichev/sudoku-minlexing-tool.
It was tested on 64-bit Linux and should compile on 32/64-bit Windows too.
The input is 81 chars per line, not necessarily valid puzzle. The symbols after the 81th position are ignored. Symbols from '1' to '9' are treated as givens, the rest as non-givens. For pattern canonicalization, all cells can be represented as '1' in the input.
The output is the original puzzle, followed but tab, then the canonical form, then tab, and the number of non-trivial automorphisms.
The canonical form is "minimal lexicographical representation of the pattern" and then minimal re-labeling representation within that pattern. It differs from general minimal lexicographical representation but is deterministic, simple and fast.
The performance is > 300K subgrids per thread per second. Although it can canonicalize full solution grids, it is highly inefficient for this task compared to alternatives like GSF's tool.
Enjoy!