It's close but not fully deterministic. I remember seeing a theory that if the system is considering multiple possible completions that have the same rounded score percentage, then its choice between them is nondeterministic.
Tensorflow is non-deterministic for some operations due to thread scheduling. PyTorch doesn’t have this issue.