Also, 'RoundLength' turns out to be 'the number of samples that is expected to be seen during a Round (epoch)', so it should be equal to the number of training samples, 'ntrain' in this case:
trained =
NetTrain[net, {genTrain, "RoundLength" -> ntrain}, All,
BatchSize -> batchsize, TargetDevice -> "GPU"]
With 'ntrain' set to 100000000 and 'batchsize' to 65536 you get 1525 batches. The Training Progress shows 'round 1//10, batch x/1525)' as expected.
Regards,
GW