  Monte Carlo (MC) neutron transport provides detailed estimates of
radiological quantities within fission reactors. This method involves tracking
individual neutrons through a computational geometry. CPU-based MC codes use
multiple polymorphic tracker types with different tracking algorithms to
exploit the repeated configurations of reactors, but virtual function calls
have high overhead on the GPU. The Shift MC code was modified to support
GPU-based tracking with three strategies: (1) dynamic polymorphism (DP) with
virtual functions, (2) static polymorphism (SP), and (3) a single tracker (ST)
type with tree-based acceleration. Results on the Frontier supercomputer show
that the DP, SP, and ST methods achieve 77.8%, 91.2%, and 83.4% of the
practical maximum tracking rate in the worst case, indicating that any of these
methods can be used without incurring a significant performance penalty. The
flexibility of the ST method is highlighted with a hexagonal-grid microreactor
problem, performed without hexagonal-grid-specific tracking routines.
