I timed your data loading as shown in the ImageNet example. Here is the beginning of training:
===> Epoch[1](0/510): Loss: 
Time 11.203 (11.203)	Data 7.408 (7.408)	
===> Epoch[1](100/510):
Time 3.530 (3.628)	Data 0.000 (0.077)	
===> Epoch[1](200/510):
Time 3.325 (3.578)	Data 0.001 (0.040)
===> Epoch[1](300/510): 
Time 3.883 (3.555)	Data 0.000 (0.027)	
===> Epoch[1](400/510): 
Time 4.016 (3.555)	Data 0.000 (0.021)	
....