GraB-sampler: Optimal Permutation-based SGD Data Sampler for PyTorch