Increasing the num_workers from 2 to 15 definitely sped up the epoch time   It’s about half what it was.  You’re right that it’s definitely using the GPU.  I meant that the GPU load was lower than I expected.  When I run nvidia-smi, I see python listed as one of the processes using the GPU.  With num_workers=15, I run htop and see that the CPU is maxed out.  I have a Core i7-7600K and all 8 cores are maxed out, so maybe the GPU just has a much higher capacity than I thought.  I ran this experiment and saw that the CPU took 17.2 sec and the GPU took 2.9 sec, but it took some pretty huge matrices to make the GPU beat the CPU.
import torch
import time

dim = [9513, 22120]

startTime = time.time()

a = torch.Tensor(dim[0], dim[1])
b = torch.Tensor(dim[1], dim[0])

c = a.mm(b)

endTime = time.time()
print("CPU Runtime: %.5f [sec]"%(endTime-startTime))

startTime = time.time()

ac = a.cuda()
bc = b.cuda()
cc = ac.mm(bc)

endTime = time.time()
print("GPU Runtime: %.5f [sec]"%(endTime-startTime))