In #212 we changed the device ID reported by the "not CPU" devices in array-api-strict. I think we should revert that change again. For one my original use-case has probably gone away but more importantly it seems to break torch.from_dlpack (and maybe others).
In scikit-learn/scikit-learn#34456 you have what happens in a scikit-learn test where we try to move an array from one namespace to another. Neither device really uses CUDA, but torch tries to use its CUDA machinery because array-api-strict device claims to be a CUDA device. I haven't tried but I assume that if I had a torch with CUDA support installed this would break at a later stage when it tries to access the actual memory.
All this makes me think that faking the device ID is a step too far.
If we decide to do this we also need to check the device ID reported by the other devices in array-api-strict ("no_float64")
A related thought is: what testing could we add to the array-api-strict test suite so that we'd have caught this problem before merging the PR. Should we have a CI job that runs some tests that are about checking compatibility/interaction with a library like torch?
In #212 we changed the device ID reported by the "not CPU" devices in array-api-strict. I think we should revert that change again. For one my original use-case has probably gone away but more importantly it seems to break
torch.from_dlpack(and maybe others).In scikit-learn/scikit-learn#34456 you have what happens in a scikit-learn test where we try to move an array from one namespace to another. Neither device really uses CUDA, but torch tries to use its CUDA machinery because array-api-strict device claims to be a CUDA device. I haven't tried but I assume that if I had a torch with CUDA support installed this would break at a later stage when it tries to access the actual memory.
All this makes me think that faking the device ID is a step too far.
If we decide to do this we also need to check the device ID reported by the other devices in array-api-strict (
"no_float64")A related thought is: what testing could we add to the array-api-strict test suite so that we'd have caught this problem before merging the PR. Should we have a CI job that runs some tests that are about checking compatibility/interaction with a library like torch?