博主实在使用Pytorch分布式训练时遇到这个问题的,原因是程序中GPU数量和指定的GPU数量不一样导致的。底层查看之后,发现了问题。原来是Pytorch在参数保存的时候,会注册一个跟原来参数位置有关的location。比如原来你在服务器上的GPU1训练,这个location很可能就是GPU1了。而如果你台式机上只有一个GPU,也就是GPU0的时候,那么这个参数带进来的Location信息于你的台式机不兼容,就会发生找不到cuda device的问题了。
RuntimeError: cuda runtime error (10) : invalid device ordinal
2022-09-02 19:46:38
浏览数 (1)