# RuntimeError: CUDA error: invalid device ordinal

**URL:** <https://discuss.pytorch.org/t/runtimeerror-cuda-error-invalid-device-ordinal/67488>\
**Category:** vision\
**Created:** [January 23, 2020, 6:05pm UTC](https://discuss.pytorch.org/t/runtimeerror-cuda-error-invalid-device-ordinal/67488 "2020-01-23T18:05:30Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rongpengju](https://discuss.pytorch.org/letter_avatar_proxy/v4/letter/r/f9ae1b/32.png) [@Rongpengju](https://discuss.pytorch.org/u/Rongpengju)\
**Post date:** [January 23, 2020, 6:05pm UTC](https://discuss.pytorch.org/t/runtimeerror-cuda-error-invalid-device-ordinal/67488/1 "2020-01-23T18:05:30Z")

</div>

import torch  
import time  
print(torch. **version** )  
print(torch.cuda.is\_available())

a = torch.randn(10000,1000)  
b = torch.randn(1000,2000)

device = torch.device(‘cuda:1’)  
a = a.to(device)  
b = b.to(device)

start\_time = time.time()  
c = torch.matmul(a,b)  
end\_time2 = time.time()  
print(a.device,end\_time2-start\_time,c.norm(2))

Why does this code generate such an error? When I call is available, the output is true, my CUDA version is 10.1, and pytorch version is 1.3.1. I hope to get your help

---

<div class="post-metadata">

**Author:** ![crowsonkb](https://discuss.pytorch.org/user_avatar/discuss.pytorch.org/crowsonkb/32/11236_2.png) [@crowsonkb](https://discuss.pytorch.org/u/crowsonkb)\
**Post date:** [January 23, 2020, 6:45pm UTC](https://discuss.pytorch.org/t/runtimeerror-cuda-error-invalid-device-ordinal/67488/2 "2020-01-23T18:45:10Z")

</div>

CUDA devices start counting at 0. You need to use `torch.device('cuda:0')` or better yet `torch.device('cuda')`, which uses the currently selected device instead of hard-coding it.

---

<div class="post-metadata">

**Author:** ![GoingMyWay](https://discuss.pytorch.org/user_avatar/discuss.pytorch.org/goingmyway/32/25616_2.png) [@GoingMyWay](https://discuss.pytorch.org/u/GoingMyWay)\
**Post date:** [June 1, 2022, 12:20pm UTC](https://discuss.pytorch.org/t/runtimeerror-cuda-error-invalid-device-ordinal/67488/3 "2022-06-01T12:20:36Z")

</div>

Hi, what if there are 2 GPUs and I want to use the second one?

---

<div class="post-metadata">

**Author:** ![ptrblck](https://discuss.pytorch.org/user_avatar/discuss.pytorch.org/ptrblck/32/1823_2.png) [@ptrblck](https://discuss.pytorch.org/u/ptrblck)\
**Post date:** [June 1, 2022, 5:47pm UTC](https://discuss.pytorch.org/t/runtimeerror-cuda-error-invalid-device-ordinal/67488/4 "2022-06-01T17:47:40Z")

</div>

Use `'cuda:1'` if you want to select the second GPU while both are visible or mask the second one via `CUDA_VISIBLE_DEVICES=1` and index it via `'cuda:0'` inside your script.

---

<div class="post-metadata">

**Author:** ![Anmol\_Varshney](https://discuss.pytorch.org/user_avatar/discuss.pytorch.org/anmol_varshney/32/61256_2.png) [@Anmol\_Varshney](https://discuss.pytorch.org/u/Anmol_Varshney)\
**Post date:** [June 13, 2023, 11:28pm UTC](https://discuss.pytorch.org/t/runtimeerror-cuda-error-invalid-device-ordinal/67488/5 "2023-06-13T23:28:59Z")

</div>

I have Number of available CUDA devices: 1 in google colab but it is showing the error  
RuntimeError: CUDA error: invalid device ordinal  
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.
