Pytorch: [يعمل على windows 10] خطأ وقت تشغيل cuda (30): خطأ غير معروف في .. \ aten \ src \ THC \ THCGeneral.cpp: 87

تم إنشاؤها على ١٤ فبراير ٢٠١٩  ·  75تعليقات  ·  مصدر: pytorch/pytorch

❓ أسئلة ومساعدة

يرجى ملاحظة أن أداة تعقب المشكلة هذه ليست نموذج مساعدة وسيتم إغلاق هذه المشكلة.

لدينا مجموعة من الموارد المدرجة المتاحة على الموقع . وسيلتنا الأساسية للدعم هي منتدى المناقشة الخاص بنا:

أثناء محاولة تشغيل ملف test.py الخاص بي على موجه أناكوندا ، تلقيت هذه الرسائل أدناه:

CUDA ™ متاح
يرجى تعيين نواة gpu (int ، <1): 0
THCudaCheck FAIL file = .. \ aten \ src \ THC \ THCGeneral.cpp سطر = 87 خطأ = 30: خطأ غير معروف
Traceback (آخر مكالمة أخيرة):
ملف "VSLcore.py" ، السطر 202 ، بتنسيق
DQNAgent ()
ملف "VSLcore.py" ، السطر 87 ، في DQNAgent
torch.set_default_tensor_type ('torch.cuda.FloatTensor')
ملف "D: \ Software \ Anaconda3 \ lib \ site -pack \ torch__init __. py" ، السطر 158 ، في set_default_tensor_type
_C._set_default_tensor_type (t)
ملف "D: \ Software \ Anaconda3 \ lib \ site -packs \ torch \ cuda__init __. py" ، السطر 162 ، في _lazy_init
torch._C._cuda_init ()
خطأ وقت التشغيل: خطأ وقت تشغيل cuda (30): خطأ غير معروف في .. \ aten \ src \ THC \ THCGeneral. الحزب الشيوعي الصيني: 87

ماذا يجب أن أفعل؟

windows needs reproduction triaged

التعليق الأكثر فائدة

حسنًا ، لقد أجريت بعض الاختبارات الإضافية ، ويبدو أنه سلوك غريب فقط عند التشغيل على غلاف تفاعلي . هذا ما فعلته (خطوة بخطوة)

  1. قم بإعداد ملف بسيط على سبيل المثال:
> 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())

يمكنني تشغيل هذا الملف إما باستخدام Python أو iPython ، وكل ذلك يعمل بشكل جيد:

> 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

الآن ، إذا حاولت استخدام نفس الأوامر في قذيفة تفاعلية ، فسأحصل على الخطأ:

مع الثعبان:

>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

أو مع 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]:

أي تلميحات؟

ال 75 كومينتر

وكذلك إصدار CUDA الخاص بي:

nvcc: برنامج تشغيل مترجم Cuda NVIDIA (R)
حقوق النشر (c) 2005-2018 لشركة NVIDIA
بني في Sat_Aug_25_21: 08: 04_Central_Daylight_Time_2018
أدوات تجميع Cuda ، الإصدار 10.0 ، V10.0.130

أعتقد أنه يجب استبدال هذه العبارة torch.set_default_tensor_type('torch.cuda.FloatTensor') بـ torch.set_default_tensor_type(torch.cuda.FloatTensor) .

أواجه نفس المشكلة هنا. نظامي:

  • نظام التشغيل Windows 10
  • NVIDIA GeForce GTX 1060
  • بايثون 3.7.1 (أناكوندا)
  • PyTorch 1.0.1
  • كودا 10

وإليك نموذج التعليمات البرمجية الذي يعيد إنتاج الخطأ:

>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]:

هل يمكن أن يكون هذا خطأ؟

لا أعتقد أن خطأ cuda 30 خطأ من جانبنا. من فضلك جرب هذه الأشياء أولا.

  1. أعد تثبيت أحدث برنامج تشغيل GPU
  2. اعادة التشغيل
  3. تأكد من أن لديك وصول المسؤول

حسنًا ، لقد أجريت بعض الاختبارات الإضافية ، ويبدو أنه سلوك غريب فقط عند التشغيل على غلاف تفاعلي . هذا ما فعلته (خطوة بخطوة)

  1. قم بإعداد ملف بسيط على سبيل المثال:
> 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())

يمكنني تشغيل هذا الملف إما باستخدام Python أو iPython ، وكل ذلك يعمل بشكل جيد:

> 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

الآن ، إذا حاولت استخدام نفس الأوامر في قذيفة تفاعلية ، فسأحصل على الخطأ:

مع الثعبان:

>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

أو مع 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]:

أي تلميحات؟

تضمين التغريدة
شكرا لمشاركتك.
لقد اختبرت ذلك كما وصفته ، ومن المدهش أنني حصلت على النتيجة التي كانت معاكسة تمامًا لك. اتضح أنها تعمل بشكل جيد على التفاعل التفاعلي لكنها تعرضت للتنصت على الآخر

شوكولاتة ديف ،

تضمين التغريدة
شكرا لمشاركتك.
لقد اختبرت ذلك كما وصفته ، ومن المدهش أنني حصلت على النتيجة التي كانت معاكسة تمامًا لك. اتضح أنها تعمل بشكل جيد على التفاعل التفاعلي لكنها تعرضت للتنصت على الآخر

كيف يعمل في دفتر Jupyter؟

تضمين التغريدة
لدي نفس المشكلة معك. بعد إعادة التشغيل ، اختفت المشكلة.

تضمين التغريدة
لدي نفس المشكلة معك. بعد إعادة التشغيل ، اختفت المشكلة.

هل يمكن أن تخبرنا ما هو التكوين الخاص بك؟ شكرا!

Chocoldave ، kuretru :
ما هي إصدارات Python و CUDA و PyTorch التي تستخدمها؟

انا استخدم:

  • نظام التشغيل Windows 10 v1809
  • اناكوندا 3
  • بايثون 3.7.1
  • CUDA 10.0 (V10.0.130)
  • PyTorch 1.0.1 (py3.7_cuda100_cudnn7_1)
  • كوداتولكيت 10.0.130.0

لقد حاولت بالفعل إعادة التشغيل ، وإزالة وإعادة تثبيت CUDA ، و torch ، و Anaconda ، وما إلى ذلك ، واستمر الخطأ. يجب أن يكون هناك شيء آخر يحدث هنا ...

تضمين التغريدة
شكرا على كل ما نصيحتك. اعذرني على الرد متأخرًا جدًا بسبب جدول رحلتي المزدحم. وبدون جهاز الكمبيوتر المحمول الخاص بي ، لم أستطع اختبار برنامجي على Jupyter.
إذا كنت أتذكرها بشكل صحيح ، فأنا أستخدم حاليًا نفس تكوين النظام الخاص بك.

يارب احفظها

لا أعتقد أن خطأ cuda 30 خطأ من جانبنا. من فضلك جرب هذه الأشياء أولا.

أعد تثبيت أحدث برنامج تشغيل GPU
اعادة التشغيل
تأكد من أن لديك وصول المسؤول

لقد جربت كل ذلك ، ولا يزال الخطأ موجودًا. هل حاولت إعادة إنتاج الخطأ؟

تضمين التغريدة
جميع البيئات جديدة تمامًا ، لقد أعدت تثبيت نظام التشغيل في 14 فبراير.
وأنا أستخدم:

  • نفيديا GTX 860M
  • نظام التشغيل Windows 10 1809 x64
  • Python 3.7.2 إلى x64
  • كودا 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

بعد إعادة التشغيل

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

شكرا. لقد جربت كل شيء - أعدت تثبيت Windows بالكامل ، ثم قمت بتثبيت Visual Studio و CUDA Toolkit ، وتثبيت Miniconda ، وتثبيت PyTorch في بيئة جديدة ، وما زلت كما هي. تعمل الأوامر من ملف ، ولكن ليس بشكل تفاعلي.

ملاحظة: أنا أستخدم Python 3.7.1. إذا قمت بتحديث الحزم في miniconda ، فسأقع في الخطأ الموضح هنا: https://github.com/pytorch/pytorch/issues/17233

أنا آسف ولكن المشكلات ليست قابلة للتكرار من جانبي. هل يمكنك تجربة هذه الأشياء لمساعدتي في تحديد المشكلة؟

  1. قم بتثبيت برنامج تشغيل GPU الذي يأتي مع تثبيت CUDA
  2. قم بتثبيت حزمة العجلات بدلاً من حزمة conda

عادة ، يجب أن تظل النتائج متسقة بغض النظر عن تشغيل الوضع التفاعلي أم لا ، لذا فهو في الواقع غريب جدًا. ربما يجب عليك التحقق مما إذا كانوا يستخدمون نفس مكتبات DLL باستخدام شيء. مثل Process Explorer.

قم بتثبيت برنامج تشغيل GPU الذي يأتي مع تثبيت CUDA

سأحاول ذلك

عادة ، يجب أن تظل النتائج متسقة بغض النظر عن تشغيل الوضع التفاعلي أم لا ، لذا فهو في الواقع غريب جدًا. ربما يجب عليك التحقق مما إذا كانوا يستخدمون نفس مكتبات DLL باستخدام شيء. مثل Process Explorer.

حسنًا ، ما الذي يجب أن أبحث عنه هنا؟

شكرا للنظر في القضية!

مرحبًا ، لقد حاولت الرجوع إلى برامج تشغيل CUDA التي تأتي مع CUDA Development Kit ، لكن لا يمكنني تثبيتها لأنني ما زلت أتلقى خطأ: "يتعذر على Windows التحقق من توقيع برنامج التشغيل ... (الرمز 52)" ، لذلك لدي للالتزام بأحدث برنامج تشغيل.

نظامي هو كمبيوتر محمول من نوع Acer مع:

  • Windows 10 Home Single Language v 1809
  • GeForce GTX 1060 ، إصدار برنامج التشغيل 25.21.14.1891 (في تجربة GeForce تظهر كـ 418.91)
  • Miniconda مع Python 3.7.1

كان إجرائي الدقيق هو:

  1. قم بتثبيت Miniconda. لا تقم بتحديث أي شيء.
  2. استنساخ القاعدة في بيئة جديدة: (base) > conda create --name torch --clone base
  3. قم بتنشيط البيئة الجديدة: (base) > conda activate torch
  4. تثبيت pytorch: (torch) > conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
  5. قم بإلغاء تنشيط / إعادة تنشيط البيئة المحيطة ، فقط للتأكد
  6. حاول تشغيل المثال البسيط torch_test.py بواسطة: (torch) > python torch_test.py
  7. حاول تشغيل نفس تسلسل الأوامر باستخدام مترجم Python التفاعلي ، انظر النتائج أدناه.

ها هي النتائج التي أحصل عليها. في النهاية ، أقوم أيضًا بإضافة تفاصيل حول بيئتي وإخراج تطبيق deviceQuery من اختبارات CUDA:

مخرجات تشغيل البرنامج الصغير:

(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

إخراج مترجم بيثون التفاعلي:

(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
>>>

أخيرًا ، إليك معلومات حول بيئة كوندا الخاصة بي:

(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

وإخراج deviceQuery من مجموعة اختبارات 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

لقد حاولت بالفعل إعادة تثبيت النظام ، وإلغاء تثبيت وإعادة تثبيت Anaconda و Miniconda ، ولم يتغير شيء.

هل يجب أن أفتح تقرير خطأ؟

شكرا!

تحية للجميع،

أردت فقط أن أذكر أنني حاولت للتو مع بناء pytorch الليلي ، وتختفي المشكلة. باستخدام الإصدار الليلي المتاح اليوم (02/20/2019) ، أحصل على ما يلي:

(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()

لذلك يبدو أنه في مرحلة ما بين البناء المستقر والبناء الحالي ، تم حل المشكلة.

gmseabra أنا سعيد لأنه تم حلها. لكنني لست متأكدًا من أيهما مرتبط بهذا.

شكرا لكم جميعا يا رفاق على كل دعمكم
خاصةgmseabra

لم أتمكن من حل المشكلة لذا قررت تخفيض إصدار python الخاص بي إلى 3.6.8 وقد نجح الأمر بطريقة ما.
قد تظل الأخطاء موجودة في إصدار أحدث من Python ولكن بالنسبة لأولئك الذين علقوا حاليًا في هذه المشكلة ، قد يكون تخفيض إصدار python حلاً جيدًا.

شكرا لكم جميعا يا رفاق على كل دعمكم
خاصةgmseabra
لم أتمكن من حل المشكلة لذا قررت تخفيض إصدار python الخاص بي إلى 3.6.8 وقد نجح الأمر بطريقة ما.
قد تظل الأخطاء موجودة في إصدار أحدث من Python ولكن بالنسبة لأولئك الذين علقوا حاليًا في هذه المشكلة ، قد يكون تخفيض إصدار python حلاً جيدًا.

هل حاولت استخدام البناء الليلي؟ لقد كان ذلك جيدًا بالنسبة لي (اعتبارًا من 02/20/2019).

gmseabra أنا سعيد لأنه تم حلها. لكنني لست متأكدًا من أيهما مرتبط بهذا.

@ peterjc123 شكرا. هل هناك أي فكرة عن متى يصبح "البناء الليلي" جزءًا من التوزيع "المستقر"؟

gmseabra لن يكون الأمر قريبًا جدًا. دورة الإصدار لدينا ~ 90 يومًا. راجع للشغل ، هل يمكنك محاولة إزالة nvcuda.dll و nvfatbinaryloader.dll من [Anaconda Root]\Lib\site-packages\torch\lib ؟

gmseabra لن يكون الأمر قريبًا جدًا. دورة الإصدار لدينا ~ 90 يومًا.

شكرا.

راجع للشغل ، هل يمكنك المحاولة إذا كانت إزالة nvcuda.dll و nvfatbinaryloader.dll من [Anaconda Root] \ Lib \ site-packs \ torch \ lib يساعد؟

حاولت الإزالة من
[Miniconda3]\envs\torch\Lib\site-packages\torch\lib

حاولت أيضًا نسخ ملفات DLL هذه من حسابي الليلي للشعلة إلى محيط الشعلة ، لكن لم يكن هناك فرق في كلتا الحالتين.

أتلقى نفس الخطأ مع PyTorch 1.0.1 و CUDA 10. في الواقع ، أدى التحديث إلى أحد الإصدارات الليلية إلى حل المشكلة ، ومع ذلك عثرت على "مشكلة ليلية كلاسيكية": فشل في التأكيد العشوائي دفعني إلى إرسال رسالة مطورو PyTorch حول هذا الموضوع. هذا أمر محبط حقًا لأنني أضعت وقتًا طويلاً في إعادة تكوين بيئتي. أعتقد أنه سيتعين علي تقليل بعض المكونات الآن ...

تحرير: أدى الرجوع إلى إصدار PyTorch 1.0.0 إلى حل المشكلة بالنسبة لي أيضًا. من الواضح أن هناك مشكلة في 1.0.1.

أنا على الحصول على نفس الخطأ.

الإعداد الخاص بي:

  • نفيديا GTX 1050Ti
  • نظام التشغيل Windows 10 Pro
  • كوندا 4.6.7
  • بايثون 3.7.1
  • كودا V10.0.130
  • PyTorch 1.0.1

اختبار My Jupyter Notebook:

torch.cuda.is_available ()
حقيقي

torch.backends.cudnn.enabled
حقيقي

torch.cuda.current_device ()

RuntimeError Traceback (آخر مكالمة أخيرة)
في
----> 1 torch.cuda.current_device ()

C: \ ProgramData \ Anaconda3 \ lib \ site -pack \ torch \ cuda__init __. py في current_device ()
339 def current_device ():
340 r "" "إرجاع فهرس الجهاز المحدد حاليًا." ""
-> 341 _lazy_init ()
342 عودة الشعلة ._C._cuda_getDevice ()
343

C: \ ProgramData \ Anaconda3 \ lib \ site -pack \ torch \ cuda__init __. py in _lazy_init ()
160 "لا يمكن إعادة تهيئة CUDA في عملية فرعية متشعبة." + msg)
161 _ الشيك_السائق ()
-> 162 torch._C._cuda_init ()
163 _cudart = _load_cudart ()
164 _cudart.cudaGetErrorName.restype = ctypes.c_char_p

خطأ وقت التشغيل: خطأ وقت تشغيل cuda (30): خطأ غير معروف في .. \ aten \ src \ THC \ THCGeneral. الحزب الشيوعي الصيني: 87

torch.cuda.device (0)

torch.cuda.device_count ()
1

torch.cuda.get_device_name (0)

RuntimeError Traceback (آخر مكالمة أخيرة)
في
----> 1 torch.cuda.get_device_name (0)

C: \ ProgramData \ Anaconda3 \ lib \ site -pack \ torch \ cuda__init __. py في get_device_name (الجهاز)
274 إذا: attr: device هو None (افتراضي).
275 ""
-> 276 إرجاع get_device_properties (الجهاز) .name
277
278

C: \ ProgramData \ Anaconda3 \ lib \ site -pack \ torch \ cuda__init __. py في get_device_properties (الجهاز)
296 def get_device_properties (الجهاز):
297 إذا لم _initialized:
-> 298 init () # ستحدد _get_device_properties و _CudaDeviceProperties
299 جهاز = _get_device_index (جهاز ، اختياري = صحيح)
300 إذا كان الجهاز <0 أو الجهاز> = device_count ():

C: \ ProgramData \ Anaconda3 \ lib \ site -pack \ torch \ cuda__init __. py in init ()
142 لا يفعل شيئًا إذا تمت تهيئة حالة CUDA بالفعل.
143 ""
-> 144 _lazy_init ()
145
146

C: \ ProgramData \ Anaconda3 \ lib \ site -pack \ torch \ cuda__init __. py in _lazy_init ()
160 "لا يمكن إعادة تهيئة CUDA في عملية فرعية متشعبة." + msg)
161 _ الشيك_السائق ()
-> 162 شعلة ._C._cuda_init ()
163 _cudart = _load_cudart ()
164 _cudart.cudaGetErrorName.restype = ctypes.c_char_p

خطأ وقت التشغيل: خطأ وقت تشغيل cuda (30): خطأ غير معروف في .. \ aten \ src \ THC \ THCGeneral. الحزب الشيوعي الصيني: 87

يمكن العثور على كود THCGeneral.cpp على:
https://github.com/pytorch/pytorch/blob/master/aten/src/THC/THCGeneral.cpp

كتلة الكود في THCGeneral حيث تم إلقاء الخطأ هي:

لـ (int i = 0 ؛ i <numDevices ؛ ++ i) {
THCCudaResourcesPerDevice * res = THCState_getDeviceResourcePtr (الحالة ، 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;

}

السطر 87 من هذا الرمز هو:
int numSM = at :: cuda :: getDeviceProperties (i) -> multiProcessorCount ؛

هل لديك أي فكرة عن سبب معاني أنا وكثيرين آخرين نفس الخطأ بالضبط؟

يبدو أنه تم تشغيل رد الاتصال عن طريق الخطأ هنا. https://github.com/pytorch/pytorch/blame/master/torch/cuda/__init__.py#L188. عادة لن يحدث ذلك. على أي حال ، سأحاول إضافة شرط حماية هنا لنظام Windows.

@ peterjc123 أي فكرة عن كيفية إصلاح هذا؟ جاء الخطأ بعد أن قمت بالتحديث بواسطة برنامج تشغيل GeForce باستخدام لوحة NVIDIA GeForce Experience.

كانت عارضاتي تعمل حتى الآن ، لكنها ليست كذلك الآن.

ها هي رسالة الخطأ الكاملة:

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

هل حاولت تغيير PyTorch إلى البناء الليلي؟ عملت معي:

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

لقد جربت البناء القريب ولكني حصلت على نفس الخطأ. أحد التحديثات التي أود تقديمها ، هو أنه عندما أقوم بتشغيل الكود في iPython ، فلن أحصل على هذا الخطأ. فقط عندما أقوم بتشغيل الملف كـ python experiment.py

تحديث: بعد أن أغلقت جلسة iPython الخاصة بي ، حتى الشيء ipython لا يعمل بعد الآن.
UPDATE2: في بعض الأحيان ، يعمل الكود مع iPython ولكن لا يستخدم سطر أوامر python. في iPython ، أقوم بتشغيل الكود كـ %run -i experiment.py

التحديث إلى pytorch 1.0.0 حل المشكلة.

هل يساعد التعليق خارج الفقرة https://github.com/pytorch/pytorch/blame/master/torch/cuda/__init__.py#L188 ؟ هل يحدث الخطأ عندما تقوم بعمل cuda init لأول مرة؟

في السابق ، كان لدي أيضًا خطأ في وقت تشغيل cuda ، ليس خطأ 30 -mine غير معروف ولكن بعد تناول الغداء في anaconda كمسؤول ، تم حل الخطأ.

تمكنت من الحصول على طرق الشعلة التالية للعودة دون أي أخطاء عدة مرات عندما قمت بتشغيل دفتر ملاحظات jupyter من موجه أوامر إداري داخل المجلد "c: / users / system32":

استيراد الشعلة
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)

ومع ذلك ، لم أتمكن من تحقيق ذلك مؤخرًا ولم يكن متسقًا حتى عندما نجح. الشيء المتسق هو أنه يفشل دائمًا عند تشغيل "torch.cuda.current_device ()" وأيضًا عند تشغيل "torch.cuda.get_device_name (0)". في كلتا الحالتين فشل في طريقة "_lazy_init ()" عند تنفيذ سطر "torch._C._cuda_init ()". الخطأ الحالي الذي تم الإبلاغ عنه هو "RuntimeError: خطأ CUDA: خطأ غير معروف". لقد قمت بتحديث pytorch أمس إلى البناء الليلي.

إعدادي ، كما ذكرت في تعليق سابق ، هو:

نفيديا GTX 1050Ti
نظام التشغيل Windows 10 Pro
كوندا 4.6.7
بايثون 3.7.1
كودا V10.0.130
بيتورش 1.0.0.dev20190310

هل لدى أي شخص أي أفكار حول كيفية المضي قدمًا في استكشاف أخطاء "torch._C._cuda_init ()" وإصلاحها مع "RuntimeError: خطأ CUDA: خطأ غير معروف"؟

الإعداد الخاص بي هو:

نفيديا GTX 1050Ti
نظام التشغيل Windows 10 Pro
كوندا 4.6.7
بايثون 3.7.1
كودا V10.0.130
بيتورش 1.0.0.dev20190310

@ jsmith8888 حاول تحديث برنامج تشغيل gpu الخاص بك. ويمكنك تجربة اقتراحي أيضًا إذا لم ينجح. https://github.com/pytorch/pytorch/issues/17108#issuecomment -469494690.

تم حل المشكلة:

تمكنت من حل المشكلة - على الرغم من أنني لا أعرف لماذا أدى التغيير الذي أجريته إلى تجنب الخطأ.

كما ذكرت سابقًا لاختبار عمل وحدة معالجة الرسومات ، سأقوم بتشغيل الأمر التالي لاختبار أمر واحد في كل مرة:

استيراد الشعلة
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)

سيؤدي هذا الاختبار دائمًا إلى حدوث خطأ في الخطوتين "torch.cuda.current_device ()" و "torch.cuda.get_device_name (0)".

كان التغيير الذي سمح لي باستخدام GPU دون الخطأ هو عدم تشغيل الأمر "torch.cuda.is_available ()". طالما أنني لا أقوم بتشغيل هذا الأمر صراحة ، فإن جميع الأوامر الأخرى تعمل بنجاح دون خطأ.

ثم اختبرت هذا مع CNN الفعلي الذي كنت أستخدمه في مجموعة بيانات CIFAR10 وتم استخدام GPU بنجاح. في السابق كنت أحصل على نفس الخطأ الذي حدث أثناء الاختبار الموضح أعلاه. CNN لديها أيضًا خطوة في البداية حيث تم إصدار الأمر "torch.cuda.is_available ()" وإرجاع "True". عندما علقت على هذا الأمر وقمت بشكل صريح بتعيين المتغير المرتبط بهذا الأمر على "صحيح" ، عملت شبكة CNN بالكامل على طول الطريق دون أخطاء واستخدمت وحدة معالجة الرسومات بالكامل.

السؤال هو لماذا يقوم الأمر "torch.cuda.is_available ()" بإنشاء الأخطاء التي حالت دون استخدام وحدة معالجة الرسومات.

كما ذكرت سابقًا ، إعدادي هو:

نفيديا GTX 1050Ti
نظام التشغيل Windows 10 Pro
كوندا 4.6.7
بايثون 3.7.1
كودا V10.0.130
بيتورش 1.0.0.dev20190310

سي سيezyang

@ jsmith8888 وماذا عن اقتراحي؟ هل يساعد؟

كان لدي بالفعل أحدث برنامج تشغيل Nvidia GPU لذا لم يكن ذلك عاملاً في الحل. لقد كنت أحاول حل هذه المشكلة منذ بضعة أسابيع ، وكجزء من عملية استكشاف الأخطاء وإصلاحها ، أتأكد دائمًا من أن لدي أحدث برنامج تشغيل GPU.

لقد وجدت شيئًا مشابهًا لما ذكره @ jsmith8888 .
حاولت تشغيل torch.backends.cudnn.enabled ، torch.cuda.current_device() ، torch.cuda.device(0) ،
torch.cuda.device_count() ، torch.cuda.get_device_name(0) قبل torch.cuda.is_available() واحدًا تلو الآخر. اتضح أنه إذا تم تنفيذ torch.cuda.current_device() أو torch.cuda.get_device_name(0) قبل torch.cuda.is_available() ، فلن يحدث أي خطأ. نأمل أن يكون هذا مفيدًا.

إعدادي هو:
Nvidia GTX 950M مع أحدث برنامج تشغيل
نظام التشغيل Windows 10 Pro
كوندا 4.6.8
بايثون 3.6.7
كودا V9.2
بيتورش 1.0.1

ماذا عن تعديل الكود?

حسنًا ، نظرًا لأن الكود يعمل جيدًا الآن ، لم أحاول تعديل الكود المصدري.

جربت تعديل الكود الذي ذكرته سابقاً وهو:

_هل التعليق على الفقرة https://github.com/pytorch/pytorch/blame/master/torch/cuda/__init__.py#L188 مساعدة؟ هل يحدث الخطأ عندما تقوم بعمل cuda init لأول مرة؟ _

لقد علقت على # L188 لكن ذلك لم يصحح الخطأ. كما حدث الخطأ عندما أسمي "torch._C._cuda_init ()" بمفرده.

نظرًا لأنه يعمل بنجاح الآن ، طالما لم يتم استخدام الأمر "torch.cuda.is_available ()" ، فأنا أستخدم قاعدة الكود القياسية دون إجراء أي تغييرات من قبلي.

@ jsmith8888 حسنًا ، حصلت على ذلك. شكرا لتقريرك.

أعتقد أنه يجب استبدال هذه العبارة torch.set_default_tensor_type('torch.FloatTensor') بـ torch.set_default_tensor_type(torch.cuda.FloatTensor) .

تم حل مشكلتي من خلال تنفيذ ما تم اقتراحه أعلاه ، والذي يمكنك أيضًا فرضه بشكل صريح على سبيل المثال:
الهدف = target.type ('torch.cuda.FloatTensor').
حيث كنت قبل ذلك أستخدم بسذاجة:
الهدف = target.float ()

لا تنس أيضًا إرسال البيانات والهدف والنموذج إلى cuda:
device = torch.device ("cuda: 0" if use_cuda else "cpu")
النموذج = model.to (الجهاز)
data = data.to (الجهاز)
الهدف = target.to (الجهاز)

لمعلوماتك - وفقًا لـ https://github.com/pytorch/pytorch/issues/17233#issuecomment -464962469 الرجوع من python 3.7.3 إلى 3.7.1 ( conda install python=3.7.1 ) تم إصلاحه بالنسبة لي. قد لا يكون هذا بالضرورة مرتبطًا بإصدار python ، في حد ذاته - قد يكون الأمر سحريًا يفعله كوندا عند تحديث python. لم أحاول البناء الليلي.

مرحبًا @ peterjc123 ، لم أتمكن من رؤيتك منذ فترة.

لقد غيرت سلوك available() في 18445 # لأكون أكثر قوة في التعامل مع حالات فشل السائق. هل يستطيع الناس تجربة الليل ومعرفة ما إذا كان ذلك يجعل الأمور أفضل؟

بالنسبة لي ، كان الحل هو إلغاء تثبيت أحدث إصدار من pytorch وتثبيت الإصدار 1.0.0 .. آمل أن يكون هذا مفيدًا!

لدي أيضًا نفس المشكلة ، التكوين مشابه لك ، لكن رسومات Nvidia قديمة جدًا.
عندما أقوم بتشغيل ملفات اختبار python باستخدام pycharm و notepad ++ ، أحصل على نفس المشكلة ، وإعادة التشغيل ليست جيدة.
ولكن عندما أقوم بتشغيل كود الاختبار في سطر الأوامر ، فإنه يعمل بشكل جيد. عندما أعود إلى pycharm أو notepad ++ مرة أخرى ، يمكنني تشغيله.
لا تقم بإيقاف تشغيل CMD عند تشغيل pycharm أو notepad ++ ، وإلا فستظل هناك مشاكل.
يبدو أن هذا الخطأ محير نوعًا ما.

قم بتشغيل الكود في CMD لقد نجح.

استيراد الشعلة
أ = torch.randn (5 ، 6)
ب = torch.randn (6 ، 5)
الجهاز = torch.device ('cuda')
a.to (الجهاز) # bug من قبل
b.to (الجهاز)
ج = torch.matmul (أ ، ب)
ج. الشكل
torch.Size ([5، 5])

@ peterjc123 فيما يتعلق بالموقف من https://forums.fast.ai/t/cuda-runtime-error-30-resnet-not-loading/38556/2 ، أعتقد أن هناك بعض الأخطاء الداخلية بين jupyter و pytorch 1.0.1 ، نتيجة لخفض مرتبة pytorch 1.0.0 يمكن أن يحل المشكلة.

لقد لاحظت العديد من القضايا التي أثيرت حول نفس المشكلة وقد تكون هذه هي أفضل إجابة حتى الآن.

نظامي:
نظام التشغيل Windows 10
كودا 10.1.1
بايثون 3.7.2
PyTorch 1.0.1
NVIDIA GeForce GTX 1050 Ti

ما يلي يعمل دائمًا:

import torch
torch.cuda.current_device()

ما يلي دائمًا يفشل بالنسبة لي:

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

كان الحل الخاص بي هو إضافة المكالمة إلى البرامج النصية الخاصة بي إلى torch.cuda.current_device() قبل أي مكالمات cuda أخرى.
آمل أن يعطي هذا تلميحًا حول مكان البحث عن المشكلة :)

واجهت نفس المشكلة (GTX 1050 ، بيئة أناكوندا ، Win10 ، أحدث pytorch مثبت مع أناكوندا (كل من pip و conda).
لقد قمت بإلغاء تثبيت ، إعادة تثبيت pytorch في بيئات مختلفة عدة مرات دون نجاح حتى الآن.

قبل ظهور هذه المشكلة ، عملت pytorch كالمعتاد. لم أغير أي شيء في الإعدادات ولم أقم بتثبيت الحزم ، لقد ظهرت للتو.

اقتباس من @ andrei-rusu

أتلقى نفس الخطأ مع PyTorch 1.0.1 و CUDA 10. في الواقع ، أدى التحديث إلى أحد الإصدارات الليلية إلى حل المشكلة ، ومع ذلك عثرت على "مشكلة ليلية كلاسيكية": فشل في التأكيد العشوائي دفعني إلى إرسال رسالة مطورو PyTorch حول هذا الموضوع. هذا أمر محبط حقًا لأنني أضعت وقتًا طويلاً في إعادة تكوين بيئتي. أعتقد أنه سيتعين علي تقليل بعض المكونات الآن ...

تحرير: أدى الرجوع إلى إصدار PyTorch 1.0.0 إلى حل المشكلة بالنسبة لي أيضًا. من الواضح أن هناك مشكلة في 1.0.1.

تم تخفيض إصدار PyTorch إلى 1.0.0 ، كما أحتاج إلى التأكد من تشغيل البرنامج النصي في أمر إداري. شكرا!

كان الرجوع إلى الإصدار 1.0.0 مفيدًا لي أيضًا. أيضًا ، قمت بتغيير بعض إعدادات بطاقة رسومات nvidia (الحد الأقصى للأداء = نعم) والتي ربما ساهمت أيضًا في تشغيلها.

نفس المشكلة هنا:
نظام التشغيل Windows 10
NVIDIA GeForce GTX 940mx
بايثون 3.6.8
PyTorch 1.0.1
كودا 10.1.1
cudnn 7.5

أدى الرجوع إلى إصدار pytorch 1.0.0 إلى حل المشكلة

حسنًا ، هل من فضلكم تحققوا مما إذا كان هذا الخطأ مستمرًا في الليل؟ يعد الرجوع إلى إصدار أقدم حلاً بديلاً هنا ، ولكنه لا يساعد كثيرًا في تحديد السبب الفعلي لهذه المشكلة. اسمحوا لي أن أختم كل الأسباب المحتملة المعروفة التي قد تسبب هذه المشكلة:

  1. من 1.0.0 إلى 1.0.1 ، قمنا بالتبديل لاستخدام مكتبات cuda التي توفرها قناة conda-forge في حزمة conda. في السابق ، قمنا بنسخ هذه المكتبات في آلة البناء إلى الثنائيات. يمكننا تجاهل هذا العامل إذا استخدمنا حزمة النقطة.
  2. تغيرت عملية تحميل dll للبيثون في كوندا. بدأت في استخدام AllDllDirectory ، والذي لا يضمن تسلسل التحميل. يمكننا تجاهل هذا العامل إذا قللنا من مستوى python إلى 3.6.7 أو 3.7.1.
  3. الإصلاح / المشكلة التي ذكرها ezyang https://github.com/pytorch/pytorch/pull/18445. يمكننا تجاهل هذا العامل إذا استخدمنا الليل أو نبني من المصدر.

سأكون ممتنًا لو أمكنك مساعدتي في تحديد المشكلة. من الصعب حاليًا إصلاحه لأنني لا أستطيع إعادة إنتاجه من جانبي.

الإصدارات الليلية للنوافذ متوفرة هنا: https://download.pytorch.org/whl/nightly/cu100/torch_nightly.html ولكن فقط للإصدار 1.0.0

@ Jonas1312 تقصد كودا 10؟ إذا كنت تتحدث عن إصدار PyTorch ، فسيتم إنشاؤه دائمًا لأحدث مصدر كل يوم.

https://download.pytorch.org/whl/nightly/cu100/torch_nightly.html يعرض الحزم التالية: https://pastebin.com/yYxdEqU5

حاولت مع آخر إصدار من 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'
>>>

إنه يعمل ولكني لا أفهم لماذا يعرض الإصدار 1.0.0 حتى لو تم إنشاؤه باستخدام أحدث مصدر؟

JohnRambo أوه ، فهمت. سوف أقوم بتحديث سكربتات البناء.

JohnRambo يجب إصلاحه الآن. يبدو أنني نسيت المزامنة مع المنبع بعد أن أرسلت هذه التغييرات حول تغيير الإصدار.

@ peterjc123 لقد قمت للتو بتثبيت _torch_nightly-1.1.0.dev20190424-cp36-cp36m-win_amd64.whl_ ويبدو أنه أصلح المشكلة:

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')
>>>

يعمل مع كودا 10.0 أيضا!

لقد حصلت للتو على هذا الخطأ للمرة الأولى اليوم ، بعد تشغيل PyTorch 1.0.1 (CUDA 10.0) على نظام التشغيل Windows 10 لأشهر وأشهر بدون مشاكل.

في حالتي ، بدأ الخطأ يحدث فقط عندما قمت بتحديث برنامج تشغيل الرسومات Nvidia الخاص بي إلى 430.53 من 417.35. لحسن الحظ ، تسبب الرجوع إلى إصدار برنامج التشغيل 417.35 في اختفاء الخطأ وسير كل شيء على ما يرام مرة أخرى. لم أكن بحاجة إلى لمس بيئة CUDA أو Python لإصلاحها ، فقط استرجع برنامج تشغيل الرسومات. غريب جدًا ، يبدو أن Nvidia غيرت شيئًا ما في رمز السائق الذي تسبب في ذلك.

الإعداد الخاص بي:

Windows 10 1607 إصدار 64 بت
بايثون 3.6.8
PyTorch 1.0.1
CUDA 10.0.0 تحديث

تثبيت PyTorch عبر نقطة

حصلت على نفس المشكلة مع خطأ مثل "RuntimeError: cuda runtime error (30): خطأ غير معروف في .. \ aten \ src \ THC \ THCGeneral. cpp: 51 " على جهازي الجديد (Windows 10 ، Nvidia RTX2070). (يُشار أيضًا إلى https://discuss.pytorch.org/t/a-error-when-using-gpu/32761).
لقد جربت الكثير من الأساليب المقترحة ، مثل خفض مستوى cuda ، وخفض مستوى Anaconda والترقية ، وما إلى ذلك ولكن لم تنجح.
بالنسبة لحالتي ، يبدو أن الخطأ قد اختفى فجأة فقط بعد أن قمت بتثبيت أحدث برنامج تشغيل ألعاب Nvidia.
اتمنى ان تكون مفيدة

نحن نبني هذه المرة مع برنامج تشغيل NVIDIA 418.96. ولكن وفقًا لنتائج الاختبار الخاصة بك ، لا أعرف ما إذا كان ينبغي عليّ تخفيضه أو ترقيته. ومع ذلك ، إذا كانت المشكلة ناتجة عن السائق ، فيمكننا بالفعل إجراء بعض الاختبارات على ذلك. أيضًا ، إذا كان لديك وقت ، يمكنك تجربة ما إذا كان البناء من المصدر يحلها.

في الواقع ، من مستند CUDA ، يمكنني فقط أن أجد أن هناك حدًا أقل لإصدار برنامج التشغيل لكل إصدار من إصدارات CUDA: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html# المكونات

حصلت على نفس المشكلة مع خطأ مثل "RuntimeError: cuda runtime error (30): خطأ غير معروف في .. \ aten \ src \ THC \ THCGeneral. cpp: 51 " على جهازي الجديد (Windows 10 ، Nvidia RTX2070). (يُشار أيضًا إلى https://discuss.pytorch.org/t/a-error-when-using-gpu/32761).
لقد جربت الكثير من الأساليب المقترحة ، مثل خفض مستوى cuda ، وخفض مستوى Anaconda والترقية ، وما إلى ذلك ولكن لم تنجح.
بالنسبة لحالتي ، يبدو أن الخطأ قد اختفى فجأة فقط بعد أن قمت بتثبيت أحدث برنامج تشغيل ألعاب Nvidia.
اتمنى ان تكون مفيدة

لقد عمل تحديث برنامج تشغيل Nivida (إلى 430.39) أيضًا من أجلي.

نظامي:
نظام التشغيل Windows 10
كودا 10.1.1
بايثون 3.7.2
PyTorch 1.0.1
NVIDIA GeForce GTX 1050 Ti

ما يلي يعمل دائمًا:

import torch
torch.cuda.current_device()

ما يلي دائمًا يفشل بالنسبة لي:

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

كان الحل الخاص بي هو إضافة المكالمة إلى البرامج النصية الخاصة بي إلى torch.cuda.current_device() قبل أي مكالمات cuda أخرى.
آمل أن يعطي هذا تلميحًا حول مكان البحث عن المشكلة :)

شكرا! هذا هو بالضبط نفس الشيء الذي يحدث معي على نظام التشغيل Windows 10.

إذا استخدمت torch.cuda.current_device () قبل أي شيء متعلق بـ cuda ، فإنه يعمل مثل السحر.

إذا استخدمت torch.cuda.current_device () قبل أي شيء متعلق بـ cuda ، فإنه يعمل مثل السحر.

للتسجيل ، ليس من المفترض أن يكون هذا ضروريًا ، لكن من الممكن أن يكون هذا معطلاً.

يا رفاق ، يبدو أنني أجد السبب الجذري لهذه المشكلة بمساعدة @ Jonas1312 في https://github.com/pytorch/pytorch/issues/20635 ، ويرجع ذلك إلى حقيقة أننا غيرنا الطريقة التي نربط بها cudart . لقد قمت بعمل العلاقات العامة https://github.com/pytorch/pytorch/pull/21062. يمكنك محاولة حل مشكلتك.

نظامي:
نظام التشغيل Windows 10
كودا 10.1.1
بايثون 3.7.2
PyTorch 1.0.1
NVIDIA GeForce GTX 1050 Ti

ما يلي يعمل دائمًا:

import torch
torch.cuda.current_device()

ما يلي دائمًا يفشل بالنسبة لي:

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

كان الحل الخاص بي هو إضافة المكالمة إلى البرامج النصية الخاصة بي إلى torch.cuda.current_device() قبل أي مكالمات cuda أخرى.
آمل أن يعطي هذا تلميحًا حول مكان البحث عن المشكلة :)

شكرا لك! لدي نفس المشكلة ، وأحتاج إلى إعادة تشغيل Python في كل مرة. وفقًا لما قلته ، أقوم بإضافة torch.cuda.current_device () بعد استيراد الشعلة. إنها تعمل.

تم دمج الإصلاح

نظامي:
نظام التشغيل Windows 10
كودا 10.1.1
بايثون 3.7.2
PyTorch 1.0.1
NVIDIA GeForce GTX 1050 Ti

ما يلي يعمل دائمًا:

import torch
torch.cuda.current_device()

ما يلي دائمًا يفشل بالنسبة لي:

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

كان الحل الخاص بي هو إضافة المكالمة إلى البرامج النصية الخاصة بي إلى torch.cuda.current_device() قبل أي مكالمات cuda أخرى.
آمل أن يعطي هذا تلميحًا حول مكان البحث عن المشكلة :)

عملت معي أيضًا

استيراد الشعلة
torch.cuda.current_device ()

لا أعتقد أن خطأ cuda 30 خطأ من جانبنا. من فضلك جرب هذه الأشياء أولا.

  1. أعد تثبيت أحدث برنامج تشغيل GPU
  2. اعادة التشغيل
  3. تأكد من أن لديك وصول المسؤول

نعم ، بعد إعادة تشغيل جهاز الكمبيوتر الخاص بي ، ذهب هذا الخطأ

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

dablyo picture dablyo  ·  3تعليقات

ikostrikov picture ikostrikov  ·  3تعليقات

eliabruni picture eliabruni  ·  3تعليقات

kdexd picture kdexd  ·  3تعليقات

bartvm picture bartvm  ·  3تعليقات