Pytorch: PyTorch 1.3: عشوائي "RuntimeError: CUDA error: unspecified launch failure"

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

🐛 علة

لا توجد مشكلة في PyTorch 1.2. أرشفة مع الكود والبيانات: https://github.com/pytorch/pytorch/files/3723821/PyTorch.zip

Windows 10 (1903) ، Python 3.7.4 ، RTX 2060 (إصدار برنامج التشغيل 436.48)

RuntimeError                              Traceback (most recent call last)
<ipython-input-6-68308ed1e055> in <module>
     35         cum_loss.append(loss.item())
     36 
---> 37         loss.backward()
     38         optimizer.step()
     39 

C:\Anaconda3\envs\torch13\lib\site-packages\torch\tensor.py in backward(self, gradient, retain_graph, create_graph)
    148                 products. Defaults to ``False``.
    149         """
--> 150         torch.autograd.backward(self, gradient, retain_graph, create_graph)
    151 
    152     def register_hook(self, hook):

C:\Anaconda3\envs\torch13\lib\site-packages\torch\autograd\__init__.py in backward(tensors, grad_tensors, retain_graph, create_graph, grad_variables)
     97     Variable._execution_engine.run_backward(
     98         tensors, grad_tensors, retain_graph, create_graph,
---> 99         allow_unreachable=True)  # allow_unreachable flag
    100 
    101 

RuntimeError: CUDA error: unspecified launch failure

سم مكعبezyanggchanan @ zou3519SsnLalbanDgqchenngimel @ peterjc123

high priority autograd cuda windows needs reproduction triaged

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

أواجه مشكلات مماثلة على جهاز windows الخاص بي ، ولدي خط أنابيب بسيط للتصنيف الثنائي باستخدام LSTM ويتم إيقافه في فترات (يبدو أنه عشوائي).

ال 77 كومينتر

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

wget https://raw.githubusercontent.com/pytorch/pytorch/master/torch/utils/collect_env.py
# For security purposes, please check the contents of collect_env.py before running it.
python collect_env.py

مرحبا vincentqb ،

مثال على الكود: https://github.com/pytorch/pytorch/files/3723821/PyTorch.zip

الإخراج من البرنامج النصي لمجموعة البيئة:

Collecting environment information...
PyTorch version: 1.3.0
Is debug build: No
CUDA used to build PyTorch: 10.1

OS: Microsoft Windows 10 Enterprise
GCC version: Could not collect
CMake version: Could not collect

Python version: 3.7
Is CUDA available: Yes
CUDA runtime version: 10.1.243
GPU models and configuration: Could not collect
Nvidia driver version: Could not collect
cuDNN version: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\cudnn64_7.dll

Versions of relevant libraries:
[pip] numpy==1.15.4
[pip] torch==1.3.0
[pip] torchvision==0.4.1
[conda] blas                      1.0                         mkl
[conda] libblas                   3.8.0                    13_mkl    conda-forge
[conda] libcblas                  3.8.0                    13_mkl    conda-forge
[conda] liblapack                 3.8.0                    13_mkl    conda-forge
[conda] mkl                       2019.4                      245
[conda] mkl-service               2.3.0            py37hb782905_0
[conda] pytorch                   1.3.0           py3.7_cuda101_cudnn7_0    pytorch
[conda] torchvision               0.4.1                py37_cu101    pytorch

nvidia-smi :

Mon Oct 14 21:05:01 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 436.48       Driver Version: 436.48       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 2060   WDDM  | 00000000:01:00.0 Off |                  N/A |
| N/A   63C    P2    28W /  N/A |   1103MiB /  6144MiB |     13%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      6156      C   C:\Anaconda3\envs\torch12\python.exe       N/A      |
+-----------------------------------------------------------------------------+

alexeygolyshev هل هذا مثال
إذا كان بإمكانك تقليل حجم الشفرة ، فسيساعدك ذلك حقًا في العثور على السبب الجذري ، شكرًا!

مرحبا @ albanD ،
نعم ، هذا مثال بسيط. لا أعتقد أنه يمكنني تقليل الكود بشكل كبير. لقد قمت بالفعل بحذف معالجة البيانات المسبقة.

albanD مدخلاتي : [الجمل والكلمات والشخصيات]. لدي بعدين مختلفين: عدد مختلف من الكلمات في الجملة وعدد مختلف من الأحرف في الكلمة.

لسوء الحظ ، ليس لدي إعداد مع دفتر ملاحظات متاح. هل يمكنك تشغيل الكود الخاص بك مع تمكين anomaly_mode ونشر تتبع المكدس الممتد هنا؟

🐛 علة

لا توجد مشكلة في PyTorch 1.2. أرشفة مع الكود والبيانات: https://github.com/pytorch/pytorch/files/3723821/PyTorch.zip

Windows 10 (1903) ، Python 3.7.4 ، RTX 2060 (إصدار برنامج التشغيل 436.48)

RuntimeError                              Traceback (most recent call last)
<ipython-input-6-68308ed1e055> in <module>
     35         cum_loss.append(loss.item())
     36 
---> 37         loss.backward()
     38         optimizer.step()
     39 

C:\Anaconda3\envs\torch13\lib\site-packages\torch\tensor.py in backward(self, gradient, retain_graph, create_graph)
    148                 products. Defaults to ``False``.
    149         """
--> 150         torch.autograd.backward(self, gradient, retain_graph, create_graph)
    151 
    152     def register_hook(self, hook):

C:\Anaconda3\envs\torch13\lib\site-packages\torch\autograd\__init__.py in backward(tensors, grad_tensors, retain_graph, create_graph, grad_variables)
     97     Variable._execution_engine.run_backward(
     98         tensors, grad_tensors, retain_graph, create_graph,
---> 99         allow_unreachable=True)  # allow_unreachable flag
    100 
    101 

RuntimeError: CUDA error: unspecified launch failure

سم مكعبezyangSsnLalbanD @ zou3519gqchen

مرحبًا ، نظام الكمبيوتر الخاص بي هو نفسه نظامك ، Win10 (1903) ، Python 3.7.4 ، RTX 2060 (إصدار برنامج التشغيل 441.20) ، torch.version == 1.2.0 ،】
واجهت نفس المشكلة مثلك. هل قمت بحلها الآن؟

أنت تقول لا مشكلة في PyTorch 1.2. هل يمكن أن تخبرني بكل المعلومات الموجودة في هذا الإصدار?
CUDA؟ CUDNN؟ Python؟

مرحبًا @ JYH9351 ،
أستخدم حاليًا PyTorch 1.3.0 في الإنتاج. لا أعرف لماذا ، لكن هذا يساعد:

with t.autograd.set_detect_anomaly(False):
    for epoch in range(epochs):
        ...

أقل تكرارًا ، ليس في العهدين الأولين.

هل يساعد إيقاف تشغيل إعدادات TDR؟ https://zhuanlan.zhihu.com/p/38141415

لا. TDR = 60. تشغيل مرتين. انهار في الحقبتين 2 و 11. يظهر هذا الخطأ بشكل عشوائي.
with t.autograd.set_detect_anomaly(True) يزيد الوقت لكل فترة في 5x. في أكتوبر ، انتظرت عدة ساعات ، لكن لم يكن هناك خطأ. لذلك لا يوجد تتبع مكدس ممتد.
في بعض الأحيان ، يمكن أن يؤدي with t.autograd.set_detect_anomaly(False) زيادة الوقت بدون أخطاء. لكني لست متأكدا. في أكتوبر ، قمت بتدريب العديد من الشبكات بوقت تشغيل لمدة يومين. ولكن في التجارب اللاحقة ، انهار أيضًا بشكل عشوائي.

# gpu   pwr gtemp mtemp    sm   mem   enc   dec  mclk  pclk
# Idx     W     C     C     %     %     %     %   MHz   MHz
    0    28    62     -    12     0     0     0  6801   960
    0    30    62     -    11     0     0     0  6801  1155
    0    32    63     -    20     7     0     0  6801  1155
    0    32    62     -    13     1     0     0  6801   960
    0    28    62     -    15     1     0     0  6801   960
    0    28    62     -    16     1     0     0  6801   960
    0    28    62     -    15     1     0     0  6801   960
    0    28    63     -    14     1     0     0  6801   960
    0    27    63     -    13     0     0     0  6801   960
    0    28    62     -    11     3     0     0  6801   960
    0    28    62     -     0     0     0     0  6801   960
    0    12    62     -     0     0     0     0   810   345
    0     5    61     -     0     0     0     0   405   345

يجب أن أقول أنه من الصعب تحديد مكان المشكلة بدون تتبع المكدس بما في ذلك موقع التعطل الدقيق. ولكن قد نحصل على ذلك بمساعدة بناء RelWithDebInfo ومرفق مصحح أخطاء VS. يمكنني بناء واحد لك إذا كنت تواجه مشكلة في بناء المشروع.

سيكون من الرائع أن تتمكن من إعداد بنية التصحيح. ليس لدي خبرة كبيرة.

مثير للإعجاب.

لقد تلقيت هذه المشكلة أثناء تدريب نموذج من https://github.com/wgrathwohl/JEM مع PyTorch 1.3
لقد استخدمت هذا الأمر

python train_wrn_ebm.py --lr .0001 --dataset cifar10 --optimizer adam --p_x_weight 1.0 --p_y_given_x_weight 1.0 --p_x_y_weight 0.0 --sigma .03 --width 2 --depth 40 --save_dir ./experiments --plot_uncond --warmup_iters 1000

يبدو أن الخطأ حدث بشكل عشوائي في منتصف التدريب. أنا أستخدم Linux mint وليس Windows.

سأقترح أن تحاول مرة أخرى بإلغاء تثبيت برنامج تشغيل GPU باستخدام DDU وتثبيت برنامج التشغيل الذي يأتي مع مجموعة أدوات cuda.

عدد كبير جدًا من الأخطاء مع برنامج تشغيل Nvidia GPU على نظام Win 10.

لقد واجهت نفس المشكلة وحاولت اقتراح kice بتثبيت برنامج التشغيل من مجموعة أدوات cuda بدون حظ.

أواجه مشكلات مماثلة على جهاز windows الخاص بي ، ولدي خط أنابيب بسيط للتصنيف الثنائي باستخدام LSTM ويتم إيقافه في فترات (يبدو أنه عشوائي).

مشكلتي هي أيضًا مع lstm. من المثير للاهتمام عندما أقوم بإضافة torch.autograd.set_detect_anomaly(True) للحصول على تتبع المكدس ، يستغرق التدريب حوالي 20 ٪ أطول ولكنه لم يفشل. سأركض بضع مرات أخرى لمعرفة ما إذا كان هذا صحيحًا باستمرار.

نفس المشكلة مع LSTM + التصنيف الثنائي + الخطأ في الحقبة العشوائية على windows 10 + Pytorch 1.4

File "C:/Users/User/GoogleDrive/mad2-recommend/gnn/train.py", line 108, in main train_model(train_loader, predict_score_net, optimizer) File "C:/Users/User/GoogleDrive/mad2-recommend/gnn/train.py", line 41, in train_model loss.backward() File "C:\Users\User\Anaconda3\lib\site-packages\torch\tensor.py", line 195, in backward torch.autograd.backward(self, gradient, retain_graph, create_graph) File "C:\Users\User\Anaconda3\lib\site-packages\torch\autograd\__init__.py", line 99, in backward allow_unreachable=True) # allow_unreachable flag RuntimeError: CUDA error: unspecified launch failure

تحديث:
GRU لديها نفس المشكلة.

shingyipcheung @ هل أنت قادر على تكرار الخطأ مع تعيين torch.autograd.set_detect_anomaly (صحيح) من أجل الحصول على تتبع تكديس كامل؟

أواجه هذه المشكلة أيضًا! (تحرير: على أحدث 1.4). ستتدرب الشبكة لفترة ، ثم في نقطة عشوائية ما ، سيتوقف المصنف مع هذا الاستثناء.

من الممكن إعادة الإنتاج باستخدام تعلم نقل FastAI AWD-LSTM لتصنيف النص على مجموعة بيانات كبيرة جدًا: https://docs.fast.ai/text.html

بعد حدوث ذلك ، تؤدي عمليات CUDA الإضافية إلى نفس الخطأ حتى يتم إعادة تشغيل kernel.

أظن أن الكثير من هذا ببساطة لا يتم اختباره على Windows. من الناحية المهنية ، أستخدم دائمًا Linux لمهام التعلم الآلي. يحدث فقط أن نظامي الشخصي الوحيد المزود بوحدة معالجة الرسومات يعمل بنظام Windows ولا يحتوي على مساحة لتثبيت Linux. علاوة على ذلك ، "Ubuntu on Windows" لا يدعم CUDA.

لدي نفس المشكلة عندما أتدرب باستخدام تصنيف LSTM + ، يحدث الخطأ في حقبة عشوائية على نظام التشغيل windows 10 + Pytorch 1.4
في انتظار حل

رفع الأولوية بناءً على نشاط المستخدم

@ peterjc123 هل ترغب في إعادة النظر في هذه المشكلة؟ شكرا!

أواجه نفس المشكلة عند تشغيل Win10 + Pytorch 1.4 بتصنيف LSTM +. يمكن أن تعمل وحدة معالجة الرسومات الخاصة بي بسلاسة مع طرز أخرى مثل CNN.
يمكن تنفيذ نفس الجزء من الكود على الخادم باستخدام نظام Ubuntu. لذا خمن بعض المشكلات المتعلقة بتوافق Win10

هل يمكنك من فضلك اختبار ما إذا كانت لا تزال مشكلة في الحزمة الليلية أو الحزمة 1.5.0؟

@ peterjc123 تم حل المشكلة بعد أن أقوم بالترقية إلى الإصدار الليلي. شكرا للمساعدة :)

نفس المشكلة ، تدريب LSTM تحطم عشوائي.
بيتورش 1.5.0 ، 1660Ti ، 2600X ، windows10 ، 32G

لقد واجهت نفس الخطأ مع Pytorch 1.4.0 و RTX2060 و windows10 ، وكذلك تدريب LSTM.
محاولة الترقية إلى pytorch 1.5.0 الآن وسوف يقدم تقريرًا مرة أخرى.
راجع للشغل لم ألاحظ هذا الخطأ على جهاز الكمبيوتر المحمول pytorch1.4 ، GTX1050Ti (لا أعرف ما إذا كنت محظوظًا بما فيه الكفاية أم أنه مخصص لبعض وحدات معالجة الرسومات)

تحديث:
بعد الترقية إلى pytorch 1.5.0
لا يزال الخطأ يحدث بشكل عشوائي. (مع RTX2060 على windows10)

نفس المشكلة هنا. على جهاز Win10 مع بطاقتين 2080Ti. تعطل Kernal بعد الدُفعات القليلة الأولى من نموذج GRU.

بيتورش: 1.5.0

حسنًا ، بدلاً من وصف حقيقة حدوثها ، سيكون من الأفضل تزويدنا ببعض التعليمات البرمجية لإعادة إنتاجها من جانبنا.

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

إذا كان ذلك يساعدك في رؤية نفس الشيء مع أي برنامج تشغيل windows nvidia أعلى من 431.68. يبدو أن استخدام 431.68 أو أقل أمر جيد.

roceh هل يعمل مع torch.autograd.set_detect_anomaly(True) وتعطل برنامج تشغيل أحدث وينتج تتبع مكدس مفيد؟

لدي نفس المشكلة في تشغيل أكواد الكشف عن كائن CenterNet. مع ubuntu18 + 2080super + CUDA10. إنه يعمل بشكل جيد لعدة فترات ويتعطل بشكل عشوائي عند بعض التكرار. اي حل...؟

TWDH هل يمكنك الحصول على Stacktrace من الانهيار؟

مرحبًا @ peterjc123 ،

أنا مبتدئ في استخدام pytorch & detron2. كما أنني واجهت هذه المشكلة الليلة الماضية. أستخدم مجموعة البيانات الخاصة بي (مجموعة بيانات صغيرة ، 180+ صورة قطار ، 40+ صورة val) ، أعدت بتنسيق MS COCO.

أنا أستخدم Docker ، وإعداد الحاوية يساوي ملف Docker في detron2 repo.
https://github.com/facebookresearch/detectron2/blob/master/docker/Dockerfile

وهنا هو تكوين جهاز الكمبيوتر الخاص بي:

  • وحدة المعالجة المركزية: Intel i7-7800X
  • ذاكرة المضيف: 64 جيجابايت
  • مُعالج الرسومات: NVIDIA GTX 1080 (8 جيجا بايت)

مرفق هو train.py الذي أستخدمه للكشف عن القطار 2.
train_py.zip

الرجاء المساعدة. شكرا.

مرحبًا @ cclo-astri. شكرا على الإبلاغ. معظم التقارير الأخرى هنا كانت خاصة بالنوافذ. هل يمكنك محاولة الإبلاغ عن تتبع التراص من الفشل باستخدام torch.autograd.set_detect_anomaly(True) وإعادة تشغيل الكود؟ من المفيد أيضًا معرفة إصدار PyTorch و Python و Cuda الذي تستخدمه

مرحبًا mattip

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

  1. قبل:
    - cfg.DATALOADER.NUM_WORKERS = 2
    - cfg.SOLVER.IMS_PER_BATCH = 2
    - الوقت المقدر للوصول: 9.5 ساعات ، max_mem: 5.8 جيجا بايت ( nvidia-smi يظهر 6.8 جيجا بايت)
    - فشل بعد 1.5 ساعة

  2. بعد، بعدما:
    - cfg.DATALOADER.NUM_WORKERS = 1
    - cfg.SOLVER.IMS_PER_BATCH = 1
    - الوقت المقدر للوصول: 5 ساعات ، max_mem: 3.5 غيغابايت ( nvidia-smi يظهر 4.5 غيغابايت)

وإليك المعلومات التفصيلية لبيئة عامل الإرساء الخاصة بي:

  • PyTorch: 1.5 + cu101
  • Torchvision: 0.6 + cu101
  • CUDA + CUDNN: يأتي من صورة Docker: nvidia / cuda: 10.1-cudnn7-devel

    • كودا: 10.1.243.001

    • CUDNN: 7.6.5.32

لمزيد من المعلومات حول إصدار الحزم المثبتة ، يرجى الرجوع إلى: https://hub.docker.com/layers/nvidia/cuda/10.1-cudnn7-devel/images/sha256-557de4ba2cb674029ffb602bed8f748d44d59bb7db9daa746ea72a102406d3ec؟

شكرا.

لقد تلقيت هذا الخطأ للتو اليوم بعد تحديث برامج تشغيل NVIDIA الخاصة بي إلى 445.87 (لم أقم بتحديثها لمدة عام على الأقل). أنا أستخدم GTX 1060 (6Gb) ، أدوات تجميع Cuda ، الإصدار 9.0 ، V9.0.176 ، pytorch 1.5.0 + cu92 ، cudnn 7.3.0

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

r_out, (h_out, c_out) = self.rnn(x)

ملف "C: \ Users \ willi \ Anaconda3 \ lib \ site -packs \ torch \ nn \ modules \ module.py" ، السطر 550 ، في __call__
النتيجة = self.forward ( الإدخال ، * kwargs)

ملف "C: \ Users \ willi \ Anaconda3 \ lib \ site -pack \ torch \ nn \ modules \ rnn.py" ، السطر 570 ، إلى الأمام
الاستقطاع الذاتي ، التدريب الذاتي ، الاتجاه الذاتي ، الدفع الذاتي ، الدفعة الأولى)

خطأ وقت التشغيل: خطأ cuDNN: CUDNN_STATUS_INTERNAL_ERROR

ولكن بعد ذلك عندما أحاول التدريب مرة أخرى دون قتل النواة ، أحصل على:

ملف "C: \ Users \ willi \ Anaconda3 \ lib \ site -pack \ torchtext \ data \ iterator.py" ، السطر 156 ، في __iter__
دفعة الإنتاج (الدفعة الصغيرة ، مجموعة البيانات الذاتية ، الجهاز الذاتي)

ملف "C: \ Users \ willi \ Anaconda3 \ lib \ site -pack \ torchtext \ databatch.py" ، السطر 34 ، في __init__
setattr (self، name، field.process (الدفعة ، الجهاز = الجهاز))

ملف "C: \ Users \ willi \ Anaconda3 \ lib \ site -pack \ torchtext \ data \ field.py" ، السطر 237 ، قيد المعالجة
موتر = self.numericalize (مبطن ، جهاز = جهاز)

ملف "C: \ Users \ willi \ Anaconda3 \ lib \ site-packs \ torchtext \ data \ field.py" ، السطر 359 ، بالأرقام
var = torch.tensor (arr، dtype = self.dtype، device = device)

RuntimeError: خطأ CUDA: فشل تشغيل غير محدد


تحديث: حاولت التراجع عن برامج تشغيل NVIDIA الخاصة بي إلى 442.59 ولا يزال الخطأ يظهر في عصر 60.

تشير هذه المشكلة ذات الصلة إلى حل لمشكلتنا ، والتي تعمل باستمرار على جهازي: https://github.com/pytorch/pytorch/issues/21819. على وجه التحديد هذا التعليق.


نظام:

  • بيتورش: 1.5
  • برنامج تشغيل NVIDIA: 446.14
  • إصدار CUDA: 10.2 و 11.0
  • وحدة معالجة الرسومات: 1660
  • نظام التشغيل: Windows 10 (19041.264)

أواجه مشكلات مماثلة ، ومع ذلك ، تم تمكين اكتشاف الانحراف في هذه الحالة. النموذج عبارة عن Revnet بسيط من طبقتين (تلافيفي) يستخدم أقل من غيغابايت من vram. يستخدم النظام نفسه ما بين 300 و 800 ميغا بايت. \
تظهر الأخطاء مع كل من CUDA 10.2 و 11.0 ، مما يعطي نفس عمليات التتبع في كلا التشغيلين.

Warning: Error detected in CudnnConvolutionBackward. Traceback of forward call that caused the error:
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\autograd\function.py", line 77, in apply
    return self._forward_cls.backward(self, *args)
  File "C:\ProgramData\Anaconda3\lib\site-packages\memcnn-1.3.2-py3.7.egg\memcnn\models\revop.py", line 83, in backward
    temp_output = ctx.fn(*detached_inputs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\memcnn-1.3.2-py3.7.egg\memcnn\models\additive.py", line 65, in forward
    gmd = self.Gm.forward(y1)
  File "C:\Users\UserName\Documents\Project\pytorch\model.py", line 121, in forward
    sort = self.sort_conv(inp)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 550, in __call__
    result = self.forward(*input, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\conv.py", line 349, in forward
    return self._conv_forward(input, self.weight)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\conv.py", line 346, in _conv_forward
    self.padding, self.dilation, self.groups)
 (print_stack at ..\torch\csrc\autograd\python_anomaly_mode.cpp:60)
Warning: Error detected in InvertibleCheckpointFunctionBackward. Traceback of forward call that caused the error:
  File ".\main.py", line 14, in <module>
    model.fit()
  File "C:\Users\UserName\Documents\Project\pytorch\main.py", line 129, in fit
    out = self.model(src)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 550, in __call__
    result = self.forward(*input, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\container.py", line 100, in forward
    input = module(input)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 550, in __call__
    result = self.forward(*input, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\memcnn-1.3.2-py3.7.egg\memcnn\models\revop.py", line 183, in forward
    *(xin + tuple([p for p in self._fn.parameters() if p.requires_grad])))
 (print_stack at ..\torch\csrc\autograd\python_anomaly_mode.cpp:60)
Traceback (most recent call last):
  File ".\main.py", line 14, in <module>
    model.fit()
  File "C:\Users\UserName\Documents\Project\pytorch\main.py", line 131, in fit
    err.backward()
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\tensor.py", line 198, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\autograd\__init__.py", line 100, in backward
    allow_unreachable=True)  # allow_unreachable flag
RuntimeError: CUDA error: an illegal memory access was encountered (operator () at C:/cb/pytorch_1000000000000/work/aten/src/ATen/native/cuda/CUDAScalar.cu:19)
(no backtrace available)

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

Warning: Error detected in CudnnConvolutionBackward. Traceback of forward call that caused the error:
  File ".\main.py", line 14, in <module>
    model.fit()
  File "C:\Users\UserName\Documents\Project\pytorch\main.py", line 129, in fit
    out = self.model(src)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 550, in __call__
    result = self.forward(*input, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\container.py", line 100, in forward
    input = module(input)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 550, in __call__
    result = self.forward(*input, **kwargs)
  File "C:\Users\UserName\Documents\Project\pytorch\model.py", line 121, in forward
    sort = self.sort_conv(inp)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 550, in __call__
    result = self.forward(*input, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\conv.py", line 349, in forward
    return self._conv_forward(input, self.weight)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\conv.py", line 346, in _conv_forward
    self.padding, self.dilation, self.groups)
 (print_stack at ..\torch\csrc\autograd\python_anomaly_mode.cpp:60)
Traceback (most recent call last):
  File ".\main.py", line 14, in <module>
    model.fit()
  File "C:\Users\UserName\Documents\Project\pytorch\main.py", line 131, in fit
    err.backward()
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\tensor.py", line 198, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torch\autograd\__init__.py", line 100, in backward
    allow_unreachable=True)  # allow_unreachable flag
RuntimeError: CUDA error: unspecified launch failure (operator () at C:/cb/pytorch_1000000000000/work/aten/src/ATen/native/cuda/CUDAScalar.cu:19)
(no backtrace available)

ومن الغريب أنها أصلحت نفسها بعد الانتظار لمدة ست ساعات ، مما سمح لها بمعالجة ما يقرب من 20000 دفعة في ساعة واحدة أثناء تعطلها فورًا بعد الانتهاء منها.

لقد جمعت الثنائيات مع معلومات التصحيح.
https://5833189-65600975-gh.circle-artifacts.com/0/w/final_pkgs/torch-1.6.0.dev20200613-cp36-cp36m-win_amd64.whl
https://5833191-65600975-gh.circle-artifacts.com/0/w/final_pkgs/torch-1.6.0.dev20200613-cp37-cp37m-win_amd64.whl
https://5833196-65600975-gh.circle-artifacts.com/0/w/final_pkgs/torch-1.6.0.dev20200613-cp38-cp38-win_amd64.whl
يمكنك تثبيتها ثم الحصول على مزيد من المعلومات باستخدام cuda-memcheck .

:: PythonRoot in the line below refers to the directory of your Python installation
:: e.g. C:\Python37
set _NT_ALT_SYMBOL_PATH=[PythonRoot]\Lib\site-packages\torch\lib
cuda-memcheck python your-script.py

مع cuda-memcheck python bug.py ، أحصل على OOM. الحقبة 0 لا تنتهي أبدًا. لكن الذاكرة تنمو.

لذلك أقوم بتشغيل python bug.py . أرى تسريعًا بمعدل مرتين: 10 ثوانٍ لكل فترة مقابل 20 ثانية في PyTorch 1.5. لكن:

epoch: 254
Traceback (most recent call last):
  File "bug.py", line 124, in <module>
    main()
  File "bug.py", line 104, in main
    loss.backward()
  File "C:\Anaconda3\envs\torch16\lib\site-packages\torch\tensor.py", line 184, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph)
  File "C:\Anaconda3\envs\torch16\lib\site-packages\torch\autograd\__init__.py", line 125, in backward
    allow_unreachable=True)  # allow_unreachable flag
RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR
Exception raised from _cudnn_rnn_backward_input at ..\aten\src\ATen\native\cudnn\RNN.cpp:923 (most recent call first):
00007FFD84CE087200007FFD84C85FAB c10.dll!caffe2::TypeMeta::_typeMetaDataInstance<unsigned char> [<unknown file> @ <unknown line number>]
00007FFC91A959B600007FFC8C1EC160 torch_cuda.dll!THCudaShortTensor_set4d [<unknown file> @ <unknown line number>]
00007FFC91AC19F000007FFC8C1EC160 torch_cuda.dll!THCudaShortTensor_set4d [<unknown file> @ <unknown line number>]
00007FFC91ABFAAF00007FFC8C1EC160 torch_cuda.dll!THCudaShortTensor_set4d [<unknown file> @ <unknown line number>]
00007FFC91B7C43800007FFC8C1EC160 torch_cuda.dll!THCudaShortTensor_set4d [<unknown file> @ <unknown line number>]
00007FFC91B8BD3D00007FFC8C1EC160 torch_cuda.dll!THCudaShortTensor_set4d [<unknown file> @ <unknown line number>]
00007FFD3CAABF3A00007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD3CAE625E00007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD3CAABD2200007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD3CB347E500007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD3FAC814D00007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD3FAD573D00007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD3CAABF3A00007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD3CAE625E00007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD3CAABD2200007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD3CB347E500007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD3F8D35D100007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD3F89F55900007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD40055CA900007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD4005764A00007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD4005EE1900007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD4005E94200007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD60C21C3B00007FFD608D6622 torch_python.dll!THPVariable_Wrap [<unknown file> @ <unknown line number>]
00007FFD40042F3400007FFD345D6D2D torch_cpu.dll!caffe2::ExternalDataProto::MaybeArenaPtr [<unknown file> @ <unknown line number>]
00007FFD8E62D9F200007FFD8E62D980 ucrtbase.dll!o_strncat_s [<unknown file> @ <unknown line number>]
00007FFD8F817BD400007FFD8F817BC0 KERNEL32.DLL!BaseThreadInitThunk [<unknown file> @ <unknown line number>]
00007FFD916ECEE100007FFD916ECEC0 ntdll.dll!RtlUserThreadStart [<unknown file> @ <unknown line number>]

bug.zip

أحصل على الكثير من الأخطاء العشوائية ، مثل هذه.
في حالتي ، أقوم بإصلاح هذه الأخطاء عن طريق إجراء شيئين
1 أقوم بتغيير الرافع من بطاقتي (1060 6 جيجابايت متصلة بفتحة PCI-E 8x بواسطة الرايزر)
2 قم بتغيير فتحة PCI-E إلى 16X.

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

عند استخدام LSTM و cuda ، رأيت نفس الخطأ عندما أستخدم مجموعة البيانات بالكامل.
لكن مساعدتك ساعدتني ، فقد استخدمت: torch.autograd.set_detect_anomaly (صحيح) ويمكنني استخدام مجموعة البيانات الكاملة عندما أضع البيان أعلاه. اشكرك.

نقوم أيضًا بتدريب LSTMs ونواجه مشكلات مماثلة. لقد جربنا تكوينات البيئة المختلفة:

(تم تطبيق آخر التحديثات على نوافذ الملاحظات)
1) Windows 10 و Nvidia driver CUDA 10.1 و Pytorch 1.5 CUDA 10.1
2) Windows 10 و Nvidia driver CUDA 10.2 و Pytorch 1.5 CUDA 10.2
3) Windows 10 و Nvidia driver CUDA 11 و Pytorch 1.5 CUDA 10.2
وكل ما سبق مع Pytorch 1.5.1.

4) Ubuntu Linux 20.04 و Nvidia driver CUDA 10.1 و Pytorch 1.5 CUDA 10.1
5) Ubuntu Linux 20.04 و Nvidia driver CUDA 10.2 و Pytorch 1.5 CUDA 10.2

يفشل التدريب دائمًا في فترة عشوائية مع فشل تشغيل غير محدد أو خطأ غير معروف.

واجهت نفس المشكلة (النقدية في فترات عشوائية أثناء التدريب) أمس مع شبكات LSTM على NVIDIA GTX 1070 و Windows 10.

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

واجهت نفس المشكلة (النقدية في فترات عشوائية أثناء التدريب) أمس مع شبكات LSTM على NVIDIA GTX 1070 و Windows 10.

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

لدي مشكلة مماثلة ، لكنني أعتقد أنني أواجهها منذ أن قمت بالتحديث إلى 451.48.

تحرير: جربت كلاً من السائقين في أبريل (445.87) ومايو (446.14) ، ولكن انتهى بي الأمر بنفس النتائج. لا أعتقد أن السائقين هم المشكلة بالنسبة لي.

لست متأكدًا من الشخص الذي يجب الاتصال به ولكنني واثق تمامًا من أنني أستطيع إعادة إنشاء هذه المشكلة.

بشكل أساسي ، إذا اخترت طريقة الإخراج (عندما يكون الرمز المميز = 1 أو 2) فإنه يثير هذا الخطأ ، ولكن هذا لا يحدث مع طريقة concat (عندما يكون الرمز المميز = 3)

المحسن: AdamW
المعيار: CrossEntropyLoss ()

أخيرًا ، يبدو أن الخطأ قد أثير في دالة التقييم الخاصة بي عند هذا السطر
total_acc + = pred.eq (label.view_as (pred)). sum (). item ()

رجاءا، أخبرني إن كنت تحتاج أي شيء آخر.

رمز العمارة RNN:
"
فئة L_Rec_RNN (وحدة nn):
def __init __ (self، input_size، hidden_size، num_classes، hu، n_layer = 1، token = 3، use_cuda = False):
سوبر (L_Rec_RNN ، ذاتي) .__ init __ ()
self.name = "Language RNN"
self.hu_1 = hu
self.classes = عدد_الفصول
self.hidden_size = hidden_size
طبقات ذاتية = n_layers
self.token = رمز مميز
self.use_cuda = use_cuda
self.dr = 0.3

    # condition to multiply the input to the first FC depending on the token method that is used to feed it
    if token < 3:
        mult = 1
    else:
        mult = 2

    # [batch_size, 201, 552]
    self.rnn = nn.GRU(input_size, hidden_size, self.layers, batch_first=True)

    self.lin = nn.Sequential(
        nn.Linear(mult * self.hidden_size, self.hu_1)
        , nn.ReLU()
        , nn.Dropout(self.dr)
        , nn.Linear(self.hu_1, self.classes)

    )

def forward(self, x):
    # pre prep
    x = x.squeeze(1)  # for 1d convolutions
    hs = torch.zeros(self.layers, x.size(0), self.hidden_size)

    if self.use_cuda and torch.cuda.is_available():
        hs = hs.cuda()

    # calling the RNN
    x, _ = self.rnn(x, hs)

    # various methods for choosing the output hidden layer
    # Method 1
    if self.token == 1:
        x = x[:, -1, :]

    # Method 2
    elif self.token == 2:
        x = torch.max(x, dim=1)[0]

    # Method 3
    else:
        x = torch.cat([torch.max(x, dim=1)[0], torch.mean(x, dim=1)], dim=1)

    # calling the FC layers
    x = self.lin(x)

    return x`

تقييم كود الوظيفة:
"
تقييم def (نموذج ، بيانات ، معيار = nn.CrossEntropyLoss () ، get_loss = False ، use_cuda = False):

total_loss = 0.0
total_acc = 0.0
total_epoch = 0
counter = 0

for spec, label in data:
    if use_cuda and torch.cuda.is_available():
        spec = spec.cuda()
        label = label.cuda()

    out = model(spec)
    loss = criterion(out, label)

    pred = out.max(1, keepdim=True)[1]

    total_acc += pred.eq(label.view_as(pred)).sum().item()
    total_loss += loss.item()
    total_epoch += len(label)
    counter += 1

acc = float(total_acc) / total_epoch
loss = float(total_loss) / counter

if get_loss:
    return acc, loss
else:
    return acc`

لا أعرف ما إذا كان هذا مفيدًا ، لكنني أتلقى هذا الخطأ عند التبديل من العينات التي تبلغ 200 ^ 3 إلى العينات التي تبلغ 256 ^ 3. على الرغم من أن لدي الكثير من الذاكرة لتخزينها. أخطاء البرنامج عند حساب أحد مقاييسي الشخصية.

أنا أستخدم pytorch 1.5 مع CUDA 9.2

لقد كنت أعاني من هذه المشكلة منذ بعض الوقت ، لكنني غير قادر على حلها. ومع ذلك ، هناك بعض الأشياء التي لاحظتها حول المشكلة.
1> يحدث هذا فقط عند تنفيذه على وحدة معالجة الرسومات. لا توجد مشكلة في نفس الرمز عندما تتم جميع العمليات على وحدة المعالجة المركزية.
2> المشكلة آلة محددة. إنه يعمل بشكل مثالي على بعض الأجهزة الأخرى (حتى على وحدة معالجة الرسومات) ولكنه يتعطل في جهازي. يوضح هذا أن الشفرة جيدة وأن المشكلة تكمن في الجهاز / البرنامج / عدم تطابق المطابقة.
3> يبدو أن معظم الناس يذكرون أن المشكلة تحدث عند إجراء تصنيف ثنائي باستخدام LSTM. هذه هي حالتي أيضا.

بالمناسبة ، قمت بإعادة تثبيت برامج تشغيل Windows و Anaconda و Pytorch و GPU ، وكل شيء ما عدا المشكلة. ومع ذلك ، فإن نفس الرمز يعمل بشكل مثالي على جهاز المتعاون. انا استخدم
بايثون 3.7
كوندا 4.8.3
بيتورش 1.5.1
Torchvision 0.6.1
كودا 10.2.89.0
نفيديا 451.67

هذه مشكلة خطيرة ، وأطلب من باحثين أكثر جدية في Pytorch أن ينظروا فيها. أرفق الرمز الخاص بي للآخرين لإلقاء نظرة.

LSTM Github.zip

المشكلة نفسها. باستخدام Pytorch 1.5.1 و GTX 1050 ti

نفس الخطأ في الترجمة الآلية العصبية (NMT) مع OpenNMT-py باستخدام pytorch 1.5.1 و cuda 10.2.
أعتقد أن هذا خطأ في خلايا LSTM.
الآن ، أنا أعمل مع المحولات ، وسأبلغ عن النتائج.

المشكلة نفسها. باستخدام Pytorch 1.2.0 و GTX 2060s cuda 10.0

نفس المشكلة مع pytorch 1.3.1 على Quadro RTX 8000 ، وبالمثل مع الآخرين الذين يقومون بتدريب نموذج بطبقة LSTM. أيضًا ، قد تتعطل المحاولة باستخدام بذور مختلفة أحيانًا مع ظهور "خطأ cuDNN: CUDNN_STATUS_INTERNAL_ERROR".

حاولت الإصلاح باستخدام set_detect_anomaly (صحيح) وتوقفت العملية في نفس الحقبة التي تعطلت فيها سابقًا وبدا أنها عالقة في بعض حلقات الخلفية - أظهر cuda استخدامًا بنسبة 100٪ مع انخفاضات عرضية إلى 55٪ تقريبًا.

في النهاية ، يبدو أنني تمكنت أخيرًا من التغلب على المشكلة تمامًا عن طريق تعطيل cudnn باستخدام " torch.backends.cudnn.enabled = False " ، لكنني أعتقد أن هذا قد يؤدي إلى أداء دون المستوى الأمثل وربما مشكلات أخرى؟

ngimel ,
من تعليقات JoshuaSv2 و hendrycks , لا تبدو مشكلة Windows محددة.
https://github.com/pytorch/pytorch/issues/39872 هي مشكلة مماثلة.

نفس الخطأ في الترجمة الآلية العصبية (NMT) مع OpenNMT-py باستخدام pytorch 1.5.1 و cuda 10.2.
أعتقد أن هذا خطأ في خلايا LSTM.
الآن ، أنا أعمل مع المحولات ، وسأبلغ عن النتائج.

نعم ، هذا الخطأ لا يحدث مع طراز المحولات. إنه مجرد خطأ متعلق بـ LSTM.

لدي نفس المشكلة مع pytorch 1.6.0
GTX 1060 على نظام التشغيل windows 10

Traceback (most recent call last):
  File "train.py", line 126, in <module>
    print(' Loss = %s' % epoch_train(
  File "C:\Users\mehrd\Jupyter\SQLNet-master\sqlnet\utils.py", line 148, in epoch_train
    score = model.forward(q_seq, col_seq, col_num, pred_entry,
  File "C:\Users\mehrd\Jupyter\SQLNet-master\sqlnet\model\seq2sql.py", line 123, in forward
    x_emb_var, x_len = self.embed_layer.gen_x_batch(q, col)
  File "C:\Users\mehrd\Jupyter\SQLNet-master\sqlnet\model\modules\word_embedding.py", line 76, in gen_x_batch
    val_inp = val_inp.cuda()
RuntimeError: CUDA error: unspecified launch failure

واجهت نفس المشكلة مع نموذج LSTM ، ولكن بعد تعيين متغير البيئة CUDA_LAUNCH_BLOCKING=1 قبل تشغيل البرنامج النصي ، لم أعد أحصل على الخطأ. واقترح هذا في هذا المنصب لأغراض التصحيح فقط، ولكن مثل الجواب هناك قانون بلدي يعمل غرامة كذلك.

اي فكرة لماذا هذا هو الحال؟

العمل مع pytorch 1.5.0 و CUDA 10.1 على Windows 10.

مرحبًا ، لقد واجهت مؤخرًا هذه المشكلة وحلتها على جهاز Windows الخاص بي.
في حالتي ، تم استدعاء هذه المشكلة بواسطة Windows Timeout Detection and Recovery (TDR) ، والتي تغلق نوى CUDA التي لا تستجيب في الوقت المناسب.

الإصلاح على النحو التالي:

  1. قم بتشغيل "محرر التسجيل" كمسؤول ، وانتقل إلى KeyPath: HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ GraphicsDrivers
  2. تغيير KeyValue: TdrDelay إلى قيمة أعلى. الإعداد الافتراضي هو 2 أو 8 ثوانٍ ، وفي حالتي ، فإن ضبطه على 64 ثانية يفي بالغرض.
  3. اعادة التشغيل.

يجب أن يؤدي هذا إلى الحيلة على Windows 10. آمل أن يساعدك هذا.

ملاحظة. يؤدي ضبط CUDA_LAUNCH_BLOCKING = 1 أيضًا إلى حل المشكلة ولكنه يأتي بعقوبة أداء شديدة.

@ YinPing-Cho بالنسبة لي ، جعل هذا الأمر أفضل ، لكنه لم يحل المشكلة تمامًا. لقد قمت في النهاية بتعيينه على 10000 ثانية.

فقط لمعلوماتك ، كنت أفشل أيضًا مع RuntimeError: CUDA error: unspecified launch failure عندما تم تدريبي على نموذج الكشف عن حدث الصوت على P100 على google colab. بالنسبة لحالتي ، كان الحل ببساطة هو تغيير عدد العاملين في أداة تحميل البيانات من 2 إلى 0. لا أعرف كيف يرتبط هذا الخطأ بعدد عمال التشغيل وكان من الصعب جدًا تصحيحه.

فقط لمعلوماتك ، كنت أفشل أيضًا مع RuntimeError: CUDA error: unspecified launch failure عندما تم تدريبي على نموذج الكشف عن حدث الصوت على P100 على google colab. بالنسبة لحالتي ، كان الحل ببساطة هو تغيير عدد العاملين في أداة تحميل البيانات من 2 إلى 0. لا أعرف كيف يرتبط هذا الخطأ بعدد عمال التشغيل وكان من الصعب جدًا تصحيحه.

لقد ساعدني هذا أيضًا ، لكنه لم يحل المشكلة تمامًا. بالاقتران مع إصلاح @ YinPing-Cho ، تمكنت من تدريب نموذج AWD-LSTM بالكامل في المحاولة الثانية منذ فترة. على الرغم من تجربتي ، فقد جعلت هذه المشكلة أكثر ندرة.

فقط لمعلوماتك ، كنت أفشل أيضًا مع RuntimeError: CUDA error: unspecified launch failure عندما تم تدريبي على نموذج الكشف عن حدث الصوت على P100 على google colab. بالنسبة لحالتي ، كان الحل ببساطة هو تغيير عدد العاملين في أداة تحميل البيانات من 2 إلى 0. لا أعرف كيف يرتبط هذا الخطأ بعدد عمال التشغيل وكان من الصعب جدًا تصحيحه.

هذا في الواقع قلل من الخطأ في بيئتي ، windows 10 ، CUDA 10.0 ، pytorch1.4. لا أعرف السبب ولكن قد يكون أحد الأسباب هو أن جعل num_worker 0 يهيئ بعض الإعدادات الداخلية في كل تكرار. تظهر بعض التحذيرات (في حالتي ، التحذير المتوقف عن nn.Softmax) كل تكرار عندما أقوم بعمل عدد 0.

بالمناسبة ، قبل هذا التغيير ، أوقف runtimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED بالإضافة إلى RuntimeError: CUDA error: unspecified launch failure برنامجي بشكل عشوائي بعد بعض التكرارات.

بعد 30000 تكرار ، حدث الخطأ أخيرًا ...
هذا يقلل من الخطأ ولكن ليس الحل بالنسبة لي

حدث الاستثناء: خطأ وقت التشغيل
خطأ cuDNN: CUDNN_STATUS_MAPPING_ERROR (getCudnnHandle في ..aten \ src \ ATen \ cudnn \ Handle.cpp: 45)
(لا يتوفر التتبع الخلفي)

cudnn = 7.6.5
cudatoolkit = 10.2.89
بيتورش = 1.5.1

حدث الاستثناء: خطأ وقت التشغيل
خطأ CUDA: CUBLAS_STATUS_EXECUTION_FAILED عند الاتصال cublasSgemm( handle, opa, opb, m, n, k, &alpha, a, lda, b, ldb, &beta, c, ldc) (الجوهرة في ..aten \ src \ ATen \ cuda \ CUDABlas.cpp: 165)
(لا يتوفر التتبع الخلفي)

نفس الخطأ على windows ، تدريب LSTM على GTX 2080 TI. يحدث مع كل من Pytorch 1.5 و 1.6.
مزعج للغاية لأنه يبدو عشوائيًا ، والتدريب معطل تمامًا عند حدوثه.

أدى التبديل من 1.6 إلى 1.5 وخفض إصدار برنامج تشغيل Nvidia إلى 431.86 إلى إصلاح الخطأ بالنسبة لي.

نفس الخطأ أثناء تدريب LSTM بحجم دفعة كبير على النوافذ ، كنت أتلقى أعطالًا عشوائية بعد 1 إلى 20 حقبة. أدى تعيين torch.backends.cudnn.enabled = False إصلاح المشكلة.

بيتورش 1.5.1
كودا 10.2.89
CuDNN 7.6.5
GTX 1070 - MSI Gaming X - Driver 445.75.1 تحديث
Windows 10 Pro 1909 build 18363.1016

mszhanyi لقد حاولت بالفعل تمديد TDR إلى 60 ثانية. لقد تمكنت من تشغيل جلسة تدريب مدتها 13 ساعة بعد ضبط TDR وإعادة تشغيل جهاز الكمبيوتر الخاص بي ، لكن وقت backprop كان أيضًا أسرع (أقل من دقيقة واحدة إلى 10/15 ثانية) ، أعتقد أنها كانت مجرد مصادفة واختار cudnn خيارًا مختلفًا الخوارزمية.
بعد ذلك أوقفت التدريب لتحديث إحدى الوظائف وعندما حاولت الاستئناف ، لم أستطع تجاوز 20 حقبة بدون تعطل ، وأحيانًا "ذاكرة غير قانونية" وأحيانًا "فشل تشغيل" عاد وقت backprop إلى دقيقة واحدة. لقد عدت عن التغييرات التي أجريتها وحاولت تدريب نموذج جديد من نقطة الصفر ، لكنه تعطل بين 1 و 20 حقبة بنفس الأخطاء. بعد تعيين torch.backends.cudnn.enabled = False بدون أي تغييرات في التعليمات البرمجية وعدم إعادة التشغيل ، توقف عن التعطل وانخفض وقت backprop إلى 20 ثانية. استمرت تلك الجلسة التدريبية 12 ساعة دون أخطاء.
لقد أجريت جلستين إضافيتين لمدة 4 ساعات بدون مشاكل اليوم.

@ lucas-emery ، هل يمكنك تقديم نص مبسط يمكنني إعادة إنتاجه؟

mszhanyi أخشى أنه لن يكون ممكنًا ، إنه نموذج معقد للغاية في مهمة التعلم المعزز. سأخبرك إذا وجدت أي شيء آخر. سأحاول الحصول على شيء قابل للتكرار بعد أن أنتهي.
بدأ الخطأ في الظهور بعد أن قمت بزيادة حجم الدُفعة الخاصة بي إلى 1 كيلو بطول 32.

أتلقى هذه المشكلة في RTX 3080 ، ولا يمكنني حتى الرجوع إلى إصدار أقدم من PyTorch لأن الإصدارات القديمة لا تدعم RTX 3000.

نجح هذان الإصلاحان بالنسبة لي ، لكن كلاهما له عقوبة في الأداء:

  • os.environ['CUDA_LAUNCH_BLOCKING'] = '1'
  • torch.backends.cudnn.enabled = False

نفس المشكلة على 3090+Windows10+CUDA11+PyTorch(Stable&Nightly)

عملت هذه الإصلاحات بالنسبة لي أيضًا.

  • يزيد $env:CUDA_LAUNCH_BLOCKING=1 وقت التدريب بنسبة 500٪.
  • يزيد torch.backends.cudnn.enabled = False وقت التدريب بنسبة 20٪.

نحن نواجه نفس المشكلة. تمت المحاولة على Ubuntu 18.04 ، Nvidia K80 ، M60 ، V100 ، جميعها بنفس إصدار pytorch 1.6.0 ، cuda 11 .

تطبيق الإصلاح أدناه لا يساعد أيضًا .... :(
""
os.environ ['CUDA_LAUNCH_BLOCKING'] = '1'
torch.backends.cudnn.enabled = خطأ
""

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