I've noticed that torch.device can accept a range of arguments, precisely cpu, cuda, mkldnn, opengl, opencl, ideep, hip, msnpu.
However, when training deep learning models, I've only ever seen cuda or cpu being used. Very often the code looks something like this
if torch.cuda.is_available():
device = torch.device("cuda")
else:
device = torch.device("cpu")
I've never seen any of the others being used, and was wondering if they can be used and how. The latest MacBooks with an AMD graphic card I believe should be able to use "hip", but is that true? And will the training speed be similar to that of using one CUDA GPU? If not, what is the point in torch.device accepting so many options if they cannot actually be used?