Can `torch.cuda.manual_seed_all(seed)` be used on a single GPU?

Can torch.cuda.manual_seed_all(seed) be used on a single GPU? And if so, then what is the point of torch.cuda.manual_seed(seed)?

And is it the same with torch.cuda.seed_all() and torch.cuda.seed()?

I was using this code, but for some reason it’s not reproducing the same results:

        torch.manual_seed(seed_val)
        torch.cuda.manual_seed(seed_val)
        torch.cuda.manual_seed_all(seed_val)
        torch.backends.cudnn.deterministic=True

I’m wondering if I was doing something wrong? Or if I was missing something? My code can run on a single GPU or multiple devices, so I was trying to cover all the bases.

I removed torch.cuda.manual_seed(params.seed), and now it seems to be working correctly again.