I’ve just tested your code to train resnet18 QAT 8 bits on CIFAR10 with DP on 2 GPUs and I also have nans with loss and y_pred. Then tested on a single gpu without DP and the model looks like learning something.
Maybe, you can try to wrap the model with torch DDP such that you could use all 8 GPUs:
    import ignite.distributed as idist
    # ...

    model = resnet18_QAT_8b(...)
    lrank = idist.get_local_rank()
    model = model.to(idist.device())
    model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[lrank,], find_unused_parameters=True)

and you have to use distributed data sampling…
In my case with CIFAR10, resnet18 QAT 8bits model trained with nccl DDP does not throw nans and achieves test accuracy: 0.8453 on 24 epochs  (~ same as single GPU same model’s test accuracy = 0.846).
Link to the code with DDP, cifar10, resnet qat : ignite/examples/contrib/cifar10_qat at cifar10-qat · vfdev-5/ignite · GitHub 1