Pytorch: [Executando no Windows 10] erro de tempo de execução cuda (30): erro desconhecido em .. \ aten \ src \ THC \ THCGeneral.cpp: 87

Criado em 14 fev. 2019  ·  75Comentários  ·  Fonte: pytorch/pytorch

❓ Perguntas e ajuda

Observe que este rastreador de problemas não é um formulário de ajuda e este problema será fechado.

Temos um conjunto de recursos listados disponíveis no site . Nosso principal meio de suporte é nosso fórum de discussão:

Ao tentar executar meu arquivo test.py no prompt do anaconda, recebi as seguintes mensagens:

CUDA ™ está DISPONÍVEL
Atribua um núcleo gpu (int, <1): 0
THCudaCheck FAIL file = .. \ aten \ src \ THC \ THCGeneral.cpp line = 87 erro = 30: erro desconhecido
Traceback (última chamada mais recente):
Arquivo "VSLcore.py", linha 202, em
DQNAgent ()
Arquivo "VSLcore.py", linha 87, em DQNAgent
torch.set_default_tensor_type ('torch.cuda.FloatTensor')
Arquivo "D: \ Softwares \ Anaconda3 \ lib \ site-packages \ torch__init __. Py", linha 158, em set_default_tensor_type
_C._set_default_tensor_type (t)
Arquivo "D: \ Softwares \ Anaconda3 \ lib \ site-packages \ torch \ cuda__init __. Py", linha 162, em _lazy_init
torch._C._cuda_init ()
RuntimeError: erro de tempo de execução cuda (30): erro desconhecido em .. \ aten \ src \ THC \ THCGeneral. cpp: 87

O que devo fazer?

windows needs reproduction triaged

Comentários muito úteis

OK, fiz alguns testes extras e parece que é um comportamento estranho apenas quando executado em um shell interativo . Aqui está o que eu fiz (passo a passo)

  1. Prepare um arquivo simples com o exemplo:
> type torch_test.ipy
import torch
print("torch.cuda.is_available()   =", torch.cuda.is_available())
print("torch.cuda.device_count()   =", torch.cuda.device_count())
print("torch.cuda.device('cuda')   =", torch.cuda.device('cuda'))
print("torch.cuda.current_device() =", torch.cuda.current_device())

Posso executar este arquivo com Python ou iPython , e tudo funciona bem:

> python torch_test.ipy
torch.cuda.is_available()   = True
torch.cuda.device_count()   = 1
torch.cuda.device('cuda')   = <torch.cuda.device object at 0x0000021B331A0160>
torch.cuda.current_device() = 0

> ipython torch_test.ipy
torch.cuda.is_available()   = True
torch.cuda.device_count()   = 1
torch.cuda.device('cuda')   = <torch.cuda.device object at 0x000002B39C1FD390>
torch.cuda.current_device() = 0

Agora, se eu tentar usar _ exatamente os mesmos comandos _ em uma _ _ shell interativo, eu recebo o erro:

Com python:

>python
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print("torch.cuda.is_available()   =", torch.cuda.is_available())
torch.cuda.is_available()   = True
>>> print("torch.cuda.device_count()   =", torch.cuda.device_count())
torch.cuda.device_count()   = 1
>>> print("torch.cuda.device('cuda')   =", torch.cuda.device('cuda'))
torch.cuda.device('cuda')   = <torch.cuda.device object at 0x0000028CBD034198>
>>> print("torch.cuda.current_device() =", torch.cuda.current_device())
THCudaCheck FAIL file=..\aten\src\THC\THCGeneral.cpp line=87 error=30 : unknown error
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Anaconda3\lib\site-packages\torch\cuda\__init__.py", line 341, in current_device
    _lazy_init()
  File "C:\Anaconda3\lib\site-packages\torch\cuda\__init__.py", line 162, in _lazy_init
    torch._C._cuda_init()
RuntimeError: cuda runtime error (30) : unknown error at ..\aten\src\THC\THCGeneral.cpp:87
>>> ^Z

ou com ipython:

>ipython
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import torch

In [2]: print("torch.cuda.is_available()   =", torch.cuda.is_available())
torch.cuda.is_available()   = True

In [3]: print("torch.cuda.device_count()   =", torch.cuda.device_count())
torch.cuda.device_count()   = 1

In [4]: print("torch.cuda.device('cuda')   =", torch.cuda.device('cuda'))
torch.cuda.device('cuda')   = <torch.cuda.device object at 0x0000018A068007F0>

In [5]: print("torch.cuda.current_device() =", torch.cuda.current_device())
THCudaCheck FAIL file=..\aten\src\THC\THCGeneral.cpp line=87 error=30 : unknown error
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-5-f8c552eb6277> in <module>
----> 1 print("torch.cuda.current_device() =", torch.cuda.current_device())

C:\Anaconda3\lib\site-packages\torch\cuda\__init__.py in current_device()
    339 def current_device():
    340     r"""Returns the index of a currently selected device."""
--> 341     _lazy_init()
    342     return torch._C._cuda_getDevice()
    343

C:\Anaconda3\lib\site-packages\torch\cuda\__init__.py in _lazy_init()
    160             "Cannot re-initialize CUDA in forked subprocess. " + msg)
    161     _check_driver()
--> 162     torch._C._cuda_init()
    163     _cudart = _load_cudart()
    164     _cudart.cudaGetErrorName.restype = ctypes.c_char_p

RuntimeError: cuda runtime error (30) : unknown error at ..\aten\src\THC\THCGeneral.cpp:87

In [6]:

Alguma dica?

Todos 75 comentários

E também minha versão CUDA:

nvcc: driver do compilador NVIDIA (R) Cuda
Copyright (c) 2005-2018 NVIDIA Corporation
Construído em Sat_Aug_25_21: 08: 04_Central_Daylight_Time_2018
Ferramentas de compilação Cuda, versão 10.0, V10.0.130

Acho que esta declaração torch.set_default_tensor_type('torch.cuda.FloatTensor') deve ser substituída por torch.set_default_tensor_type(torch.cuda.FloatTensor) .

Estou tendo o mesmo problema aqui. Meu sistema:

  • Windows 10
  • NVIDIA GeForce GTX 1060
  • Python 3.7.1 (Anaconda)
  • PyTorch 1.0.1
  • CUDA 10

E aqui está um código de amostra que reproduz o erro:

>ipython
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import torch

In [2]: torch.cuda.is_available()
Out[2]: True

In [3]: torch.cuda.device_count()
Out[3]: 1

In [4]: torch.cuda.current_device()
THCudaCheck FAIL file=..\aten\src\THC\THCGeneral.cpp line=87 error=30 : unknown error
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-4-3380d2c12118> in <module>
----> 1 torch.cuda.current_device()

C:\Anaconda3\lib\site-packages\torch\cuda\__init__.py in current_device()
    339 def current_device():
    340     r"""Returns the index of a currently selected device."""
--> 341     _lazy_init()
    342     return torch._C._cuda_getDevice()
    343

C:\Anaconda3\lib\site-packages\torch\cuda\__init__.py in _lazy_init()
    160             "Cannot re-initialize CUDA in forked subprocess. " + msg)
    161     _check_driver()
--> 162     torch._C._cuda_init()
    163     _cudart = _load_cudart()
    164     _cudart.cudaGetErrorName.restype = ctypes.c_char_p

RuntimeError: cuda runtime error (30) : unknown error at ..\aten\src\THC\THCGeneral.cpp:87

In [5]:

Isso pode ser um erro?

Não acho que cuda error 30 seja um erro da nossa parte. Por favor, tente essas coisas primeiro.

  1. Reinstale o driver GPU mais recente
  2. Reinício
  3. Certifique-se de ter acesso de administrador

OK, fiz alguns testes extras e parece que é um comportamento estranho apenas quando executado em um shell interativo . Aqui está o que eu fiz (passo a passo)

  1. Prepare um arquivo simples com o exemplo:
> type torch_test.ipy
import torch
print("torch.cuda.is_available()   =", torch.cuda.is_available())
print("torch.cuda.device_count()   =", torch.cuda.device_count())
print("torch.cuda.device('cuda')   =", torch.cuda.device('cuda'))
print("torch.cuda.current_device() =", torch.cuda.current_device())

Posso executar este arquivo com Python ou iPython , e tudo funciona bem:

> python torch_test.ipy
torch.cuda.is_available()   = True
torch.cuda.device_count()   = 1
torch.cuda.device('cuda')   = <torch.cuda.device object at 0x0000021B331A0160>
torch.cuda.current_device() = 0

> ipython torch_test.ipy
torch.cuda.is_available()   = True
torch.cuda.device_count()   = 1
torch.cuda.device('cuda')   = <torch.cuda.device object at 0x000002B39C1FD390>
torch.cuda.current_device() = 0

Agora, se eu tentar usar _ exatamente os mesmos comandos _ em uma _ _ shell interativo, eu recebo o erro:

Com python:

>python
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print("torch.cuda.is_available()   =", torch.cuda.is_available())
torch.cuda.is_available()   = True
>>> print("torch.cuda.device_count()   =", torch.cuda.device_count())
torch.cuda.device_count()   = 1
>>> print("torch.cuda.device('cuda')   =", torch.cuda.device('cuda'))
torch.cuda.device('cuda')   = <torch.cuda.device object at 0x0000028CBD034198>
>>> print("torch.cuda.current_device() =", torch.cuda.current_device())
THCudaCheck FAIL file=..\aten\src\THC\THCGeneral.cpp line=87 error=30 : unknown error
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Anaconda3\lib\site-packages\torch\cuda\__init__.py", line 341, in current_device
    _lazy_init()
  File "C:\Anaconda3\lib\site-packages\torch\cuda\__init__.py", line 162, in _lazy_init
    torch._C._cuda_init()
RuntimeError: cuda runtime error (30) : unknown error at ..\aten\src\THC\THCGeneral.cpp:87
>>> ^Z

ou com ipython:

>ipython
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import torch

In [2]: print("torch.cuda.is_available()   =", torch.cuda.is_available())
torch.cuda.is_available()   = True

In [3]: print("torch.cuda.device_count()   =", torch.cuda.device_count())
torch.cuda.device_count()   = 1

In [4]: print("torch.cuda.device('cuda')   =", torch.cuda.device('cuda'))
torch.cuda.device('cuda')   = <torch.cuda.device object at 0x0000018A068007F0>

In [5]: print("torch.cuda.current_device() =", torch.cuda.current_device())
THCudaCheck FAIL file=..\aten\src\THC\THCGeneral.cpp line=87 error=30 : unknown error
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-5-f8c552eb6277> in <module>
----> 1 print("torch.cuda.current_device() =", torch.cuda.current_device())

C:\Anaconda3\lib\site-packages\torch\cuda\__init__.py in current_device()
    339 def current_device():
    340     r"""Returns the index of a currently selected device."""
--> 341     _lazy_init()
    342     return torch._C._cuda_getDevice()
    343

C:\Anaconda3\lib\site-packages\torch\cuda\__init__.py in _lazy_init()
    160             "Cannot re-initialize CUDA in forked subprocess. " + msg)
    161     _check_driver()
--> 162     torch._C._cuda_init()
    163     _cudart = _load_cudart()
    164     _cudart.cudaGetErrorName.restype = ctypes.c_char_p

RuntimeError: cuda runtime error (30) : unknown error at ..\aten\src\THC\THCGeneral.cpp:87

In [6]:

Alguma dica?

@gmseabra
Obrigado pela sua postagem.
Eu testei como você descreveu e surpreendentemente obtive o resultado que foi completamente oposto ao seu. Acontece que funciona bem no modo interativo, mas ela foi grampeada no outro

@ChocolateDave ,

@gmseabra
Obrigado pela sua postagem.
Eu testei como você descreveu e surpreendentemente obtive o resultado que foi completamente oposto ao seu. Acontece que funciona bem no modo interativo, mas ela foi grampeada no outro

Como isso funciona em um notebook Jupyter?

@gmseabra @ChocolateDave
Eu tenho o mesmo problema com você. Após uma reinicialização, o problema desapareceu.

@gmseabra @ChocolateDave
Eu tenho o mesmo problema com você. Após uma reinicialização, o problema desapareceu.

Você pode nos dizer qual é a sua configuração? Obrigado!

@ChocolateDave , @kuretru :
Quais são as versões de python, CUDA e PyTorch que você está usando?

Estou usando:

  • Windows 10 v1809
  • Anaconda 3
  • Python 3.7.1
  • CUDA 10.0 (V10.0.130)
  • PyTorch 1.0.1 (py3.7_cuda100_cudnn7_1)
  • cudatoolkit 10.0.130

Já tentei reiniciar, remover e reinstalar CUDA, torch, Anaconda, etc., e o erro persiste. Deve haver algo mais acontecendo aqui ...

@gmseabra
Obrigado por todos os seus conselhos. Perdoe-me por responder tão tarde devido à minha agenda lotada de viagens. E sem meu laptop, eu não poderia testar meu programa no Jupyter.
Se bem me lembro, estou usando atualmente a mesma configuração de sistema que a sua.

@ peterjc123

Não acho que cuda error 30 seja um erro da nossa parte. Por favor, tente essas coisas primeiro.

Reinstale o driver GPU mais recente
Reinício
Certifique-se de ter acesso de administrador

Já tentei tudo isso e o erro ainda está lá. Você tentou reproduzir o erro?

@gmseabra
Todos os ambientes são novos, eu reinstalei o SO no dia 14 de fevereiro.
E estou usando:

  • Nvidia GTX 860M
  • Windows 10 1809 x64
  • Python 3.7.2 x64
  • CUDA V10.0.130
  • PyTorch 1.0.1 (torch-1.0.1-cp37-cp37m-win_amd64.whl)
>>> import torch
>>> torch.cuda.current_device()
>>> RuntimeError: cuda runtime error (30) : unknown error at ..\aten\src\THC\THCGeneral.cpp:87

Após uma reinicialização

>>> import torch
>>> torch.cuda.current_device()
>>> 0

Obrigado. Tentei de tudo - reinstalei todo o Windows, depois instalei o Visual Studio e o CUDA Toolkit, instalei o Miniconda, instalei o PyTorch em um novo ambiente e continua o mesmo. Os comandos funcionam a partir de um arquivo, mas não interativamente.

Observação: estou usando o Python 3.7.1. Se eu atualizar os pacotes no miniconda, caio no erro descrito aqui: https://github.com/pytorch/pytorch/issues/17233

Sinto muito, mas os problemas não são reproduzíveis para mim. Você poderia tentar essas coisas para me ajudar a localizar o problema?

  1. Instale o driver GPU que vem com a instalação CUDA
  2. Instale o pacote de rodas em vez do pacote conda

Normalmente, os resultados devem permanecer consistentes, independentemente se o modo interativo está ativado ou não. Portanto, é realmente muito estranho. Talvez você deva verificar se eles estão usando exatamente as mesmas DLLs usando sth. como o Process Explorer.

Instale o driver GPU que vem com a instalação CUDA

Vou tentar isso

Normalmente, os resultados devem permanecer consistentes, independentemente se o modo interativo está ativado ou não. Portanto, é realmente muito estranho. Talvez você deva verificar se eles estão usando exatamente as mesmas DLLs usando sth. como o Process Explorer.

OK, o que devo procurar aqui?

Obrigado por analisar o problema!

Olá, tentei reverter para os drivers CUDA que vêm com o kit de desenvolvimento CUDA, mas não consigo instalá-los porque recebo um erro: "O Windows não pode verificar a assinatura do driver ... (Código 52)", então tenho para ficar com o driver mais recente.

Meu sistema é um laptop Acer com:

  • Windows 10 Home em um único idioma v 1809
  • GeForce GTX 1060, versão do driver 25.21.14.1891 (na GeForce Experience é mostrado como 418.91)
  • Miniconda com Python 3.7.1

Meu procedimento exato foi:

  1. Instale o Miniconda. Não atualizar qualquer coisa.
  2. Clone a base em um novo ambiente: (base) > conda create --name torch --clone base
  3. Ative o novo env: (base) > conda activate torch
  4. Instale o pytorch: (torch) > conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
  5. Desative / reative o env, apenas para ter certeza
  6. Tente executar o exemplo simples torch_test.py por: (torch) > python torch_test.py
  7. Tente executar a mesma sequência de comandos usando o interpretador interativo python, veja os resultados abaixo.

Aqui estão os resultados que recebo. No final, também adiciono detalhes sobre meu ambiente e a saída do aplicativo deviceQuery dos testes CUDA:

Resultado da execução do pequeno programa:

(torch) >python torch_test.py
torch.cuda.is_available()   = True
torch.cuda.device_count()   = 1
torch.cuda.device('cuda')   = <torch.cuda.device object at 0x000001FCD3A61F28>
torch.cuda.current_device() = 0

Saída do interpretador Python interativo:

(torch) > python
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>> torch.cuda.device_count()
1
>>> torch.cuda.device('cuda')
<torch.cuda.device object at 0x000001E18C72D208>
>>> torch.cuda.current_device()
THCudaCheck FAIL file=..\aten\src\THC\THCGeneral.cpp line=87 error=30 : unknown error
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Miniconda3\envs\torch\lib\site-packages\torch\cuda\__init__.py", line 341, in current_device
    _lazy_init()
  File "C:\Miniconda3\envs\torch\lib\site-packages\torch\cuda\__init__.py", line 162, in _lazy_init
    torch._C._cuda_init()
RuntimeError: cuda runtime error (30) : unknown error at ..\aten\src\THC\THCGeneral.cpp:87
>>>

Por fim, aqui estão as informações sobre meu ambiente conda:

(torch) >type torch_env.txt
# packages in environment at C:\Miniconda3\envs\torch:
#
# Name                    Version                   Build  Channel
asn1crypto                0.24.0                   py37_0
blas                      1.0                         mkl
ca-certificates           2018.03.07                    0
certifi                   2018.11.29               py37_0
cffi                      1.11.5           py37h74b6da3_1
chardet                   3.0.4                    py37_1
console_shortcut          0.1.1                         3
cryptography              2.4.2            py37h7a1dbc1_0
cudatoolkit               10.0.130                      0
freetype                  2.9.1                ha9979f8_1
icc_rt                    2019.0.0             h0cc432a_1
idna                      2.8                      py37_0
intel-openmp              2019.1                      144
jpeg                      9b                   hb83a4c4_2
libpng                    1.6.36               h2a8f88b_0
libtiff                   4.0.10               hb898794_2
menuinst                  1.4.14           py37hfa6e2cd_0
mkl                       2019.1                      144
mkl_fft                   1.0.10           py37h14836fe_0
mkl_random                1.0.2            py37h343c172_0
ninja                     1.8.2            py37he980bc4_1
numpy                     1.15.4           py37h19fb1c0_0
numpy-base                1.15.4           py37hc3f5095_0
olefile                   0.46                     py37_0
openssl                   1.1.1a               he774522_0
pillow                    5.4.1            py37hdc69c19_0
pip                       18.1                     py37_0
pycosat                   0.6.3            py37hfa6e2cd_0
pycparser                 2.19                     py37_0
pyopenssl                 18.0.0                   py37_0
pysocks                   1.6.8                    py37_0
python                    3.7.1                h8c8aaf0_6
pytorch                   1.0.1           py3.7_cuda100_cudnn7_1    pytorch
pywin32                   223              py37hfa6e2cd_1
requests                  2.21.0                   py37_0
ruamel_yaml               0.15.46          py37hfa6e2cd_0
setuptools                40.6.3                   py37_0
six                       1.12.0                   py37_0
sqlite                    3.26.0               he774522_0
tk                        8.6.8                hfa6e2cd_0
torchvision               0.2.1                      py_2    pytorch
urllib3                   1.24.1                   py37_0
vc                        14.1                 h0510ff6_4
vs2015_runtime            14.15.26706          h3a45250_0
wheel                     0.32.3                   py37_0
win_inet_pton             1.0.1                    py37_1
wincertstore              0.2                      py37_0
xz                        5.2.4                h2fa13f4_4
yaml                      0.1.7                hc54c509_2
zlib                      1.2.11               h62dcd97_3
zstd                      1.3.7                h508b16e_0

E a saída do deviceQuery, do conjunto de testes CUDA:

(torch) >type deviceQuery.out
deviceQuery.exe Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 1060"
  CUDA Driver Version / Runtime Version          10.1 / 10.0
  CUDA Capability Major/Minor version number:    6.1
  Total amount of global memory:                 6144 MBytes (6442450944 bytes)
  (10) Multiprocessors, (128) CUDA Cores/MP:     1280 CUDA Cores
  GPU Max Clock rate:                            1733 MHz (1.73 GHz)
  Memory Clock rate:                             4004 Mhz
  Memory Bus Width:                              192-bit
  L2 Cache Size:                                 1572864 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 5 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  CUDA Device Driver Mode (TCC or WDDM):         WDDM (Windows Display Driver Model)
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            Yes
  Supports Cooperative Kernel Launch:            No
  Supports MultiDevice Co-op Kernel Launch:      No
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.1, CUDA Runtime Version = 10.0, NumDevs = 1
Result = PASS

Já tentei reinstalar o sistema, desinstalar e reinstalar o Anaconda e o Miniconda, e nada mudou.

Devo abrir um relatório de bug?

Obrigado!

Olá a todos,

Eu só queria mencionar que acabei de tentar com a compilação noturna do Pytorch, e o problema desaparece. Usando a compilação noturna disponível hoje (20/02/2019), obtenho o seguinte:

(torch_nightly) >python
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>> torch.cuda.current_device()
0
>>> quit()

Portanto, parece que, em algum ponto entre a construção estável e a atual, o problema foi resolvido.

@gmseabra Fico feliz que esteja resolvido. Mas não tenho certeza de qual está relacionado a isso.

Obrigado a todos por todo o apoio.😄
especialmente @gmseabra

Não consegui resolver o problema, então decidi fazer o downgrade de minha versão do python para 3.6.8 e de alguma forma funcionou.
Os bugs podem ainda existir em uma versão mais recente do python, mas para aqueles que estão atualmente presos a esse problema, fazer o downgrade de sua versão do python pode ser uma boa solução.

Obrigado a todos por todo o apoio.😄
especialmente @gmseabra
Não consegui resolver o problema, então decidi fazer o downgrade de minha versão do python para 3.6.8 e de alguma forma funcionou.
Os bugs podem ainda existir em uma versão mais recente do python, mas para aqueles que estão atualmente presos a esse problema, fazer o downgrade de sua versão do python pode ser uma boa solução.

Você já tentou usar o nightly-build? Isso funcionou bem para mim (em 20/02/2019).

@gmseabra Fico feliz que esteja resolvido. Mas não tenho certeza de qual está relacionado a isso.

@ peterjc123 Obrigado. Há alguma idéia de quando a "construção noturna" se torna parte da distribuição "estável"?

@gmseabra Não será tão cedo. Nosso ciclo de lançamento é de aproximadamente 90 dias. BTW, você poderia tentar se remover nvcuda.dll e nvfatbinaryloader.dll de [Anaconda Root]\Lib\site-packages\torch\lib ajuda?

@gmseabra Não será tão cedo. Nosso ciclo de lançamento é de aproximadamente 90 dias.

Obrigado.

BTW, você poderia tentar se remover nvcuda.dll e nvfatbinaryloader.dll de [Anaconda Root] \ Lib \ site-packages \ torch \ lib ajuda?

Tentei remover de
[Miniconda3]\envs\torch\Lib\site-packages\torch\lib

Eu também tentei copiar essas DLLs do meu ambiente noturno da tocha para o ambiente da tocha, mas não houve diferença de qualquer maneira.

Estou recebendo o mesmo erro que este com PyTorch 1.0.1 e CUDA 10. Na verdade, atualizar para uma das compilações noturnas resolveu o problema, mas me deparei com um "problema noturno clássico": alguma falha de declaração aleatória que me levou a enviar uma mensagem Desenvolvedores PyTorch sobre isso. Isso está ficando muito frustrante, pois estou perdendo um tempo considerável na reconfiguração do meu ambiente. Acho que vou ter que fazer o downgrade de alguns componentes agora ...

EDIT: O downgrade para PyTorch 1.0.0 também resolveu o problema para mim. Claramente, há um problema com 1.0.1.

Estou recebendo o mesmo erro.

Minha configuração:

  • Nvidia GTX 1050Ti
  • Windows 10 Pro
  • Conda 4.6.7
  • Python 3.7.1
  • CUDA V10.0.130
  • PyTorch 1.0.1

Meu teste do Jupyter Notebook:

torch.cuda.is_available ()
Verdade

torch.backends.cudnn.enabled
Verdade

torch.cuda.current_device ()

RuntimeError Traceback (última chamada mais recente)
no
----> 1 torch.cuda.current_device ()

C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ torch \ cuda__init __. Py em current_device ()
339 def current_device ():
340 r "" "Retorna o índice de um dispositivo atualmente selecionado." ""
-> 341 _lazy_init ()
342 return torch._C._cuda_getDevice ()
343

C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ torch \ cuda__init __. Py em _lazy_init ()
160 "Não é possível reinicializar CUDA no subprocesso bifurcado." + Msg)
161 _check_driver ()
-> 162 tocha._C._cuda_init ()
163 _cudart = _load_cudart ()
164 _cudart.cudaGetErrorName.restype = ctypes.c_char_p

RuntimeError: erro de tempo de execução cuda (30): erro desconhecido em .. \ aten \ src \ THC \ THCGeneral. cpp: 87

torch.cuda.device (0)

torch.cuda.device_count ()
1

torch.cuda.get_device_name (0)

RuntimeError Traceback (última chamada mais recente)
no
----> 1 torch.cuda.get_device_name (0)

C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ torch \ cuda__init __. Py em get_device_name (dispositivo)
274 if: attr: device é None (padrão).
275 "" "
-> 276 return get_device_properties (dispositivo) .name
277
278

C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ torch \ cuda__init __. Py em get_device_properties (dispositivo)
296 def get_device_properties (dispositivo):
297 se não _inicializado:
-> 298 init () # irá definir _get_device_properties e _CudaDeviceProperties
299 dispositivo = _get_device_index (dispositivo, opcional = Verdadeiro)
300 se dispositivo <0 ou dispositivo> = device_count ():

C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ torch \ cuda__init __. Py em init ()
142 Não faz nada se o estado CUDA já foi inicializado.
143 "" "
-> 144 _lazy_init ()
145
146

C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ torch \ cuda__init __. Py em _lazy_init ()
160 "Não é possível reinicializar CUDA no subprocesso bifurcado." + Msg)
161 _check_driver ()
-> 162 tocha._C._cuda_init ()
163 _cudart = _load_cudart ()
164 _cudart.cudaGetErrorName.restype = ctypes.c_char_p

RuntimeError: erro de tempo de execução cuda (30): erro desconhecido em .. \ aten \ src \ THC \ THCGeneral. cpp: 87

O código THCGeneral.cpp pode ser encontrado em:
https://github.com/pytorch/pytorch/blob/master/aten/src/THC/THCGeneral.cpp

O bloco de código em THCGeneral onde o erro é lançado é:

para (int i = 0; i <numDispositivos; ++ i) {
THCCudaResourcesPerDevice * res = THCState_getDeviceResourcePtr (estado, i);
THCudaCheck (cudaSetDevice (i));

/* The scratch space that we want to have available per each device is
   based on the number of SMs available per device. We guarantee a
   minimum of 128kb of space per device, but to future-proof against
   future architectures that may have huge #s of SMs, we guarantee that
   we have at least 16 bytes for each SM. */
int numSM = at::cuda::getDeviceProperties(i)->multiProcessorCount;
size_t sizePerStream =
  MIN_GLOBAL_SCRATCH_SPACE_PER_DEVICE >= numSM * MIN_GLOBAL_SCRATCH_SPACE_PER_SM_STREAM ?
  MIN_GLOBAL_SCRATCH_SPACE_PER_DEVICE :
  numSM * MIN_GLOBAL_SCRATCH_SPACE_PER_SM_STREAM;
res->scratchSpacePerStream = sizePerStream;

}

A linha 87 deste código é:
int numSM = at :: cuda :: getDeviceProperties (i) -> multiProcessorCount;

Alguma idéia de por que eu e tantos outros estamos experimentando exatamente o mesmo erro?

Parece que o retorno de chamada foi acionado acidentalmente aqui. https://github.com/pytorch/pytorch/blame/master/torch/cuda/__init__.py#L188. Normalmente não vai acontecer. De qualquer forma, tentarei adicionar uma cláusula de proteção aqui para Windows.

@ peterjc123 alguma ideia de como consertar isso? O erro veio depois que eu atualizei pelo driver GeForce usando o painel NVIDIA GeForce Experience.

Meus modelos estavam funcionando até agora, e agora não estão.

Aqui está a mensagem de erro completa:

THCudaCheck FAIL file=..\aten\src\THC\THCGeneral.cpp line=87 error=30 : unknown error
Traceback (most recent call last):
  File "experiment.py", line 249, in <module>
    trainer = Trainer(model=model.cuda(device=device),
  File "F:\ProgramData\Anaconda3\envs\AllenNLP\lib\site-packages\torch\nn\modules\module.py", line 260, in cuda
    return self._apply(lambda t: t.cuda(device))
  File "F:\ProgramData\Anaconda3\envs\AllenNLP\lib\site-packages\torch\nn\modules\module.py", line 187, in _apply
    module._apply(fn)
  File "F:\ProgramData\Anaconda3\envs\AllenNLP\lib\site-packages\torch\nn\modules\module.py", line 187, in _apply
    module._apply(fn)
  File "F:\ProgramData\Anaconda3\envs\AllenNLP\lib\site-packages\torch\nn\modules\module.py", line 187, in _apply
    module._apply(fn)
  [Previous line repeated 3 more times]
  File "F:\ProgramData\Anaconda3\envs\AllenNLP\lib\site-packages\torch\nn\modules\module.py", line 193, in _apply
    param.data = fn(param.data)
  File "F:\ProgramData\Anaconda3\envs\AllenNLP\lib\site-packages\torch\nn\modules\module.py", line 260, in <lambda>
    return self._apply(lambda t: t.cuda(device))
  File "F:\ProgramData\Anaconda3\envs\AllenNLP\lib\site-packages\torch\cuda\__init__.py", line 162, in _lazy_init
    torch._C._cuda_init()
RuntimeError: cuda runtime error (30) : unknown error at ..\aten\src\THC\THCGeneral.cpp:87

Você já tentou mudar o PyTorch para a versão noturna? Funcionou para mim:

https://github.com/pytorch/pytorch/issues/17108#issuecomment -465793918

Tentei construir o nighly, mas estava obtendo o mesmo erro. Uma atualização que gostaria de fornecer é que, quando executo o código no iPython, não recebo esse erro. Somente quando executo o arquivo como python experiment.py

ATUALIZAÇÃO: Depois de fechar minha sessão do iPython, até mesmo o ipython não está mais funcionando.
ATUALIZAÇÃO2: Às vezes, o código funciona com iPython, mas não usando a linha de comando python. No iPython, executo o código como %run -i experiment.py

A atualização para o pytorch 1.0.0 corrigiu o problema.

Comentar a cláusula https://github.com/pytorch/pytorch/blame/master/torch/cuda/__init__.py#L188 ajuda? O erro ocorre quando você executa o cuda init pela primeira vez?

Anteriormente, eu também tinha erro de tempo de execução do cuda, não 30 -mine é um erro desconhecido, mas depois que eu almocei o anaconda como administrador, ele resolveu o erro.

Consegui fazer com que os métodos de tocha abaixo retornassem sem erros algumas vezes quando iniciei um notebook jupyter em um prompt de comando administrativo na pasta "c: / users / system32":

importar tocha
torch.cuda.is_available ()
torch.backends.cudnn.enabled
torch.cuda.current_device ()
torch.cuda.device (0)
torch.cuda.device_count ()
torch.cuda.get_device_name (0)

No entanto, não consegui fazer isso acontecer recentemente e não era consistente mesmo quando funcionava. O que é consistente é que ele sempre falha quando "torch.cuda.current_device ()" é executado e também quando "torch.cuda.get_device_name (0)" é executado. Em ambos os casos falha no método "_lazy_init ()" quando a linha "torch._C._cuda_init ()" é executada. O erro atual relatado é "RuntimeError: Erro CUDA: erro desconhecido". Atualizei o pytorch ontem para a compilação noturna.

Minha configuração, como mencionei em um comentário anterior, é:

Nvidia GTX 1050Ti
Windows 10 Pro
Conda 4.6.7
Python 3.7.1
CUDA V10.0.130
Pytorch 1.0.0.dev20190310

Alguém tem alguma ideia sobre como devo prosseguir com a solução de problemas por que "torch._C._cuda_init ()" apresenta erros com "RuntimeError: Erro CUDA: erro desconhecido"?

Minha configuração é:

Nvidia GTX 1050Ti
Windows 10 Pro
Conda 4.6.7
Python 3.7.1
CUDA V10.0.130
Pytorch 1.0.0.dev20190310

@ jsmith8888 Tente atualizar o driver gpu. E você também pode tentar minha sugestão se não funcionar. https://github.com/pytorch/pytorch/issues/17108#issuecomment -469494690.

Resolvido o problema:

Consegui resolver o problema - embora não saiba por que a alteração que fiz evitou o erro.

Como mencionei anteriormente, para testar se a GPU estava funcionando, eu executaria o teste abaixo um comando de cada vez:

importar tocha
torch.cuda.is_available ()
torch.backends.cudnn.enabled
torch.cuda.current_device ()
torch.cuda.device (0)
torch.cuda.device_count ()
torch.cuda.get_device_name (0)

Este teste sempre produziria um erro nas etapas "torch.cuda.current_device ()" e "torch.cuda.get_device_name (0)".

A mudança que me permitiu usar a GPU sem o erro foi não executar o comando "torch.cuda.is_available ()". Desde que eu não execute explicitamente este comando, todos os outros comandos são executados com êxito e sem erro.

Em seguida, testei isso com um CNN real que tenho usado no conjunto de dados CIFAR10 e a GPU foi usada com sucesso. Anteriormente, eu receberia o mesmo erro que ocorria durante o teste mostrado acima. A CNN também teve uma etapa bem no início onde o comando "torch.cuda.is_available ()" foi emitido e retornou "True". Quando comentei esse comando e defini explicitamente a variável vinculada a esse comando como "True", toda a CNN foi executada sem erros e utilizou totalmente a GPU.

A questão é por que o comando "torch.cuda.is_available ()" cria os erros que impediam o uso da GPU.

Como mencionei anteriormente, minha configuração é:

Nvidia GTX 1050Ti
Windows 10 Pro
Conda 4.6.7
Python 3.7.1
CUDA V10.0.130
Pytorch 1.0.0.dev20190310

cc @ezyang

@ jsmith8888 E quanto à minha sugestão? Ajuda?

Eu já tinha o driver de GPU Nvidia mais recente, então isso não foi um fator na solução. Estou tentando resolver esse problema há algumas semanas e, como parte do processo de solução de problemas, sempre me certifico de ter o driver de GPU mais recente.

Encontrei algo semelhante ao que @ jsmith8888 mencionou.
Tentei executar torch.backends.cudnn.enabled , torch.cuda.current_device() , torch.cuda.device(0) ,
torch.cuda.device_count() , torch.cuda.get_device_name(0) antes de torch.cuda.is_available() um por um. Acontece que se torch.cuda.current_device() ou torch.cuda.get_device_name(0) fosse executado antes de torch.cuda.is_available() , nenhum erro ocorreria. Esperançosamente, isso será útil.

minha configuração é:
Nvidia GTX 950M com o driver mais recente
Windows 10 Pro
Conda 4.6.8
Python 3.6.7
CUDA V9.2
Pytorch 1.0.1

e a modificação do código?

Bem, como o código funcionava bem agora, não tentei modificar o código-fonte.

Tentei a modificação de código que você mencionou anteriormente, a saber:

_O comentário da cláusula https://github.com/pytorch/pytorch/blame/master/torch/cuda/__init__.py#L188 ajuda? O erro ocorre quando você executa o cuda init pela primeira vez?

Comentei # L188, mas isso não corrigiu o erro. Além disso, o erro ocorreu quando eu chamaria "torch._C._cuda_init ()" por conta própria.

Com ele funcionando com sucesso agora, enquanto o comando "torch.cuda.is_available ()" não for usado, estou usando o código-base padrão sem nenhuma alteração feita por mim.

@ jsmith8888 ok, entendi. Obrigado pelo seu relatório.

Acho que esta declaração torch.set_default_tensor_type('torch.FloatTensor') deve ser substituída por torch.set_default_tensor_type(torch.cuda.FloatTensor) .

Meu problema foi resolvido fazendo o sugerido acima, que você também pode forçar explicitamente, por exemplo:
target = target.type ('torch.cuda.FloatTensor').
Onde antes eu estava usando ingenuamente:
target = target.float ()

Também não se esqueça de enviar dados, destino e modelo para cuda:
device = torch.device ("cuda: 0" if use_cuda else "cpu")
model = model.to (dispositivo)
data = data.to (dispositivo)
target = target.to (dispositivo)

Para sua informação - de acordo com https://github.com/pytorch/pytorch/issues/17233#issuecomment -464962469 downgrade de python 3.7.3 para 3.7.1 ( conda install python=3.7.1 ) corrigiu para mim. Isso pode não estar necessariamente relacionado à versão do python, por si só - pode ser a mágica que o conda faz ao atualizar o python. Eu não tentei a construção noturna.

Ei @ peterjc123 , não vi seu at há um tempo.

Mudei o comportamento de available() em # 18445 para ser um pouco mais robusto a falhas de driver. As pessoas podem experimentar todas as noites e ver se isso melhora as coisas?

Para mim, a solução foi desinstalar o pytorch mais recente e instalar a versão 1.0.0 .. Espero que isso ajude!

Eu também tenho o mesmo problema, a configuração é parecida com a sua, mas uma placa de vídeo Nvidia muito antiga.
Quando executo arquivos de teste python com pycharm e notepad ++, recebo o mesmo problema e a reinicialização não funciona.
Mas quando executo o código de teste na linha de comando, ele funciona bem. Quando eu retornar ao pycharm ou notepad ++ novamente, posso executá-lo.
Não desligue o CMD ao executar o pycharm ou o notepad ++, caso contrário, ainda haverá problemas.
Parece que esse bug é meio confuso.

Execute o código no CMD , Funcionou.

importar tocha
a = torch.randn (5, 6)
b = torch.randn (6, 5)
device = torch.device ('cuda')
a.to (dispositivo) # bug antes
b.to (dispositivo)
c = torch.matmul (a, b)
c.shape
torch.Size ([5, 5])

@ peterjc123 Em relação à situação de https://forums.fast.ai/t/cuda-runtime-error-30-resnet-not-loading/38556/2 , acho que há alguns erros internos entre jupyter e pytorch 1.0.1, como resultado do downgrade do pytorch 1.0.0 pode resolver o problema.

Percebi várias questões levantadas sobre o mesmo problema e esta pode ser a melhor resposta até agora.

Meu sistema:
Windows 10
Cuda 10.1
Python 3.7.2
PyTorch 1.0.1
NVIDIA GeForce GTX 1050 Ti

O seguinte sempre funciona:

import torch
torch.cuda.current_device()

O seguinte sempre falha para mim:

import torch
torch.cuda.is_available()
torch.cuda.current_device()  # fails here

Minha solução foi adicionar aos meus scripts a chamada para torch.cuda.current_device() antes de qualquer outra chamada cuda.
Espero que isso dê uma dica de onde procurar o problema :)

Encontrei o mesmo problema (GTX 1050, ambiente anaconda, Win10, último pytorch instalado com anaconda (pip e conda).
Desinstalei, reinstalei o pytorch em diferentes ambientes várias vezes sem sucesso até agora.

Antes que esse problema surgisse, o pytorch funcionava normalmente. Não mudei nada nas configurações nem instalei pacotes, apenas apareceu.

Citação de @ andrei-rusu

Estou recebendo o mesmo erro que este com PyTorch 1.0.1 e CUDA 10. Na verdade, atualizar para uma das compilações noturnas resolveu o problema, mas me deparei com um "problema noturno clássico": alguma falha de declaração aleatória que me levou a enviar uma mensagem Desenvolvedores PyTorch sobre isso. Isso está ficando muito frustrante, pois estou perdendo um tempo considerável na reconfiguração do meu ambiente. Acho que vou ter que fazer o downgrade de alguns componentes agora ...

EDIT: O downgrade para PyTorch 1.0.0 também resolveu o problema para mim. Claramente, há um problema com 1.0.1.

Fazer o downgrade do PyTorch para 1.0.0 resolveu o meu, também preciso garantir que o script seja executado em um comando administrativo. Obrigado!

O downgrade para a versão 1.0.0 também funcionou para mim. Além disso, alterei algumas configurações da placa de vídeo nvidia (desempenho máximo = sim), o que também pode ter contribuído para fazê-la funcionar.

O mesmo problema aqui:
Windows 10
NVIDIA GeForce GTX 940mx
Python 3.6.8
PyTorch 1.0.1
CUDA 10.1
cudnn 7,5

O downgrade para o pytorch 1.0.0 resolveu o problema

Bem, por favor, verifiquem se este erro persiste durante a noite? O downgrade é uma solução alternativa aqui, mas não ajuda muito a localizar a causa real desse problema. Deixe-me concluir todos os possíveis motivos conhecidos que podem causar esse problema:

  1. De 1.0.0 para 1.0.1, mudamos para usar as bibliotecas cuda fornecidas pelo canal conda-forge no pacote conda. Anteriormente, copiamos essas bibliotecas da máquina de construção para os binários. Podemos ignorar esse fator se usarmos o pacote pip.
  2. O processo de carregamento de dll de python em conda mudou. Passou a usar AllDllDirectory , o que não garante a seqüência de carregamento. Podemos ignorar esse fator se fizermos o downgrade do python para 3.6.7 ou 3.7.1.
  3. A correção / problema mencionado por @ezyang https://github.com/pytorch/pytorch/pull/18445. Podemos ignorar esse fator se usarmos os nightlies ou construirmos a partir da fonte.

Ficaria muito grato se você pudesse me ajudar a localizar o problema. Atualmente é difícil de consertar porque não consigo reproduzi-lo do meu lado.

As compilações noturnas para Windows estão disponíveis aqui: https://download.pytorch.org/whl/nightly/cu100/torch_nightly.html, mas apenas para a versão 1.0.0

@ Jonas1312 Você quer dizer CUDA 10? Se você está falando sobre a versão do PyTorch, ela sempre será construída com a fonte mais recente todos os dias.

https://download.pytorch.org/whl/nightly/cu100/torch_nightly.html mostra os seguintes pacotes: https://pastebin.com/yYxdEqU5

Tentei com a última versão do Windows:

c:\Users\Jonas\Desktop>python36 -m pip install torch_nightly-1.0.0.dev20190421-cp36-cp36m-win_amd64.whl
Processing c:\users\jonas\desktop\torch_nightly-1.0.0.dev20190421-cp36-cp36m-win_amd64.whl
Installing collected packages: torch-nightly
Successfully installed torch-nightly-1.0.0.dev20190421

c:\Users\Jonas\Desktop>python36
Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print("torch.cuda.is_available()   =", torch.cuda.is_available())
torch.cuda.is_available()   = True
>>> print("torch.cuda.device_count()   =", torch.cuda.device_count())
torch.cuda.device_count()   = 1
>>> print("torch.cuda.device('cuda')   =", torch.cuda.device('cuda'))
torch.cuda.device('cuda')   = <torch.cuda.device object at 0x00000251657A7518>
>>> print("torch.cuda.current_device() =", torch.cuda.current_device())
torch.cuda.current_device() = 0
>>> torch.__version__
'1.0.0.dev20190421'
>>>

Está funcionando, mas não entendo por que mostra a versão 1.0.0 mesmo que tenha sido compilado com a fonte mais recente?

@JohnRambo Oh, entendo. Vou atualizar os scripts de construção.

@JohnRambo Deve ser consertado agora. Parece que esqueci de sincronizar com o upstream depois de enviar essas alterações sobre a mudança de versão.

@ peterjc123 Acabei de instalar _torch_nightly-1.1.0.dev20190424-cp36-cp36m-win_amd64.whl_ e parece que corrigiu o problema:

C:\Users\Jonas>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Fri_Feb__8_19:08:26_Pacific_Standard_Time_2019
Cuda compilation tools, release 10.1, V10.1.105

C:\Users\Jonas>python36
Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print("torch.cuda.is_available()   =", torch.cuda.is_available())
torch.cuda.is_available()   = True
>>> print("torch.cuda.device_count()   =", torch.cuda.device_count())
torch.cuda.device_count()   = 1
>>> print("torch.cuda.device('cuda')   =", torch.cuda.device('cuda'))
torch.cuda.device('cuda')   = <torch.cuda.device object at 0x00000262DB837EB8>
>>> print("torch.cuda.current_device() =", torch.cuda.current_device())
torch.cuda.current_device() = 0
>>> torch.cuda.get_device_name(0)
'GeForce 940MX'
>>> torch.__version__
'1.1.0.dev20190424'
>>> a = torch.ones((1,1,1)).cuda()
>>> a
tensor([[[1.]]], device='cuda:0')
>>>

Funciona com cuda 10.0 também!

Acabei de receber este erro pela primeira vez hoje, depois de executar o PyTorch 1.0.1 (CUDA 10.0) no Windows 10 por meses e meses sem problemas.

No meu caso, o erro só começou a acontecer quando atualizei meu driver gráfico Nvidia para 430,53 de 417,35. Felizmente, simplesmente reverter para a versão do driver 417.35 fez com que o erro desaparecesse e tudo funcionasse bem novamente. Não precisei mexer no meu ambiente CUDA ou Python para consertá-lo, apenas reverter o driver gráfico. Muito estranho, parece que a Nvidia mudou algo no código do driver que está causando isso.

Minha configuração:

Windows 10 1607 64 bits
Python 3.6.8
PyTorch 1.0.1
CUDA 10.0

PyTorch instalado via pip

Eu tive o problema semelhante com um erro como "RuntimeError: erro de tempo de execução cuda (30): erro desconhecido em .. \ aten \ src \ THC \ THCGeneral. Cpp : 51 " na minha nova máquina (Windows 10, Nvidia RTX2070). (Também referido a https://discuss.pytorch.org/t/a-error-when-using-gpu/32761).
Tentei vários métodos sugeridos, como downgrade do cuda, downgrade e upgrade do Anaconda, etc. No entanto, não tive sucesso.
No meu caso, o erro desapareceu repentinamente depois de instalar o driver de jogos Nvidia mais recente.
Espero que seja útil.

Estamos construindo desta vez com o driver NVIDIA 418,96. Mas de acordo com os resultados do seu teste, não sei se devo fazer o downgrade ou atualizá-lo. Porém, se o problema for causado pelo driver, podemos fazer alguns testes. Além disso, se você tiver tempo, pode tentar se construir a partir da fonte resolve o problema.

Na verdade, a partir do documento CUDA, só posso descobrir que há um limite inferior da versão do driver para cada versão CUDA: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html# principais componentes. Mas não mencionou o que acontecerá se compilarmos os binários usando versões mais recentes de drivers de GPU ou se a versão do driver for incompatível com a do PC do usuário.

Eu tive o problema semelhante com um erro como "RuntimeError: erro de tempo de execução cuda (30): erro desconhecido em .. \ aten \ src \ THC \ THCGeneral. Cpp : 51 " na minha nova máquina (Windows 10, Nvidia RTX2070). (Também referido a https://discuss.pytorch.org/t/a-error-when-using-gpu/32761).
Tentei vários métodos sugeridos, como downgrade do cuda, downgrade e upgrade do Anaconda, etc. No entanto, não tive sucesso.
No meu caso, o erro desapareceu repentinamente depois de instalar o driver de jogos Nvidia mais recente.
Espero que seja útil.

Atualizar o driver Nivida (para 430.39) também funcionou para mim.

Meu sistema:
Windows 10
Cuda 10.1
Python 3.7.2
PyTorch 1.0.1
NVIDIA GeForce GTX 1050 Ti

O seguinte sempre funciona:

import torch
torch.cuda.current_device()

O seguinte sempre falha para mim:

import torch
torch.cuda.is_available()
torch.cuda.current_device()  # fails here

Minha solução foi adicionar aos meus scripts a chamada para torch.cuda.current_device() antes de qualquer outra chamada cuda.
Espero que isso dê uma dica de onde procurar o problema :)

Obrigado! Isso é exatamente a mesma coisa que acontece comigo no Windows 10.

Se eu usar torch.cuda.current_device () antes de qualquer coisa relacionada ao cuda, funciona perfeitamente.

Se eu usar torch.cuda.current_device () antes de qualquer coisa relacionada ao cuda, funciona perfeitamente.

Para que conste, isso não deveria ser necessário, mas é possível que esteja quebrado.

Pessoal, pareço encontrar a causa raiz deste problema com a ajuda de @ Jonas1312 em https://github.com/pytorch/pytorch/issues/20635 , é causado pelo fato de que mudamos a forma como nos vinculamos com o nosso bibliotecas contra cudart . Eu fiz o PR https://github.com/pytorch/pytorch/pull/21062. Você pode tentar resolver o seu problema.

Meu sistema:
Windows 10
Cuda 10.1
Python 3.7.2
PyTorch 1.0.1
NVIDIA GeForce GTX 1050 Ti

O seguinte sempre funciona:

import torch
torch.cuda.current_device()

O seguinte sempre falha para mim:

import torch
torch.cuda.is_available()
torch.cuda.current_device()  # fails here

Minha solução foi adicionar aos meus scripts a chamada para torch.cuda.current_device() antes de qualquer outra chamada cuda.
Espero que isso dê uma dica de onde procurar o problema :)

Obrigado! Tenho o mesmo problema e preciso reiniciar o Python todas as vezes. De acordo com o que você disse, adiciono torch.cuda.current_device () após importar tocha. Funciona.

correção foi mesclada

Meu sistema:
Windows 10
Cuda 10.1
Python 3.7.2
PyTorch 1.0.1
NVIDIA GeForce GTX 1050 Ti

O seguinte sempre funciona:

import torch
torch.cuda.current_device()

O seguinte sempre falha para mim:

import torch
torch.cuda.is_available()
torch.cuda.current_device()  # fails here

Minha solução foi adicionar aos meus scripts a chamada para torch.cuda.current_device() antes de qualquer outra chamada cuda.
Espero que isso dê uma dica de onde procurar o problema :)

funcionou para mim também

importar tocha
torch.cuda.current_device ()

Não acho que cuda error 30 seja um erro da nossa parte. Por favor, tente essas coisas primeiro.

  1. Reinstale o driver GPU mais recente
  2. Reinício
  3. Certifique-se de ter acesso de administrador

Sim ,, depois de reiniciar meu computador, este erro desapareceu

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

eliabruni picture eliabruni  ·  3Comentários

bartolsthoorn picture bartolsthoorn  ·  3Comentários

mishraswapnil picture mishraswapnil  ·  3Comentários

szagoruyko picture szagoruyko  ·  3Comentários

dablyo picture dablyo  ·  3Comentários