لا توجد مشكلة في 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
هل يمكنك تقديم مثال رمزي صغير لإعادة إنتاجه؟ يرجى أيضًا نسخ ولصق الإخراج من البرنامج النصي لمجموعة البيئة الخاصة بنا. يمكنك الحصول على البرنامج النصي وتشغيله باستخدام:
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
وهنا هو تكوين جهاز الكمبيوتر الخاص بي:
مرفق هو train.py الذي أستخدمه للكشف عن القطار 2.
train_py.zip
الرجاء المساعدة. شكرا.
مرحبًا @ cclo-astri. شكرا على الإبلاغ. معظم التقارير الأخرى هنا كانت خاصة بالنوافذ. هل يمكنك محاولة الإبلاغ عن تتبع التراص من الفشل باستخدام torch.autograd.set_detect_anomaly(True)
وإعادة تشغيل الكود؟ من المفيد أيضًا معرفة إصدار PyTorch و Python و Cuda الذي تستخدمه
مرحبًا mattip
بعد أن قمت بتغيير حجم الدُفعات وعدد العاملين في أداة تحميل البيانات إلى 1 ، يبدو أن الخطأ قد انتهى (على الأقل يمكن أن يستمر التدريب لمدة 5 ساعات تقريبًا ، لكن الكمبيوتر الشخصي يتوقف فجأة والتدريب غير مكتمل). يتناقص الوقت المقدر لوقت التدريب أيضًا ، لماذا؟
قبل:
- cfg.DATALOADER.NUM_WORKERS = 2
- cfg.SOLVER.IMS_PER_BATCH = 2
- الوقت المقدر للوصول: 9.5 ساعات ، max_mem: 5.8 جيجا بايت ( nvidia-smi
يظهر 6.8 جيجا بايت)
- فشل بعد 1.5 ساعة
بعد، بعدما:
- cfg.DATALOADER.NUM_WORKERS = 1
- cfg.SOLVER.IMS_PER_BATCH = 1
- الوقت المقدر للوصول: 5 ساعات ، max_mem: 3.5 غيغابايت ( nvidia-smi
يظهر 4.5 غيغابايت)
وإليك المعلومات التفصيلية لبيئة عامل الإرساء الخاصة بي:
لمزيد من المعلومات حول إصدار الحزم المثبتة ، يرجى الرجوع إلى: 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. على وجه التحديد هذا التعليق.
نظام:
أواجه مشكلات مماثلة ، ومع ذلك ، تم تمكين اكتشاف الانحراف في هذه الحالة. النموذج عبارة عن 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>]
أحصل على الكثير من الأخطاء العشوائية ، مثل هذه.
في حالتي ، أقوم بإصلاح هذه الأخطاء عن طريق إجراء شيئين
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 أن ينظروا فيها. أرفق الرمز الخاص بي للآخرين لإلقاء نظرة.
المشكلة نفسها. باستخدام 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 التي لا تستجيب في الوقت المناسب.
الإصلاح على النحو التالي:
يجب أن يؤدي هذا إلى الحيلة على 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
@ lucas-emery ، هل حاولت تمديد عرض TDR أو تعطيل TDR كـ https://developer.download.nvidia.com/NsightVisualStudio/2.2/Documentation/UserGuide/HTML/Content/Timeout_Detection_Recovery.htm
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 = خطأ
""
التعليق الأكثر فائدة
أواجه مشكلات مماثلة على جهاز windows الخاص بي ، ولدي خط أنابيب بسيط للتصنيف الثنائي باستخدام LSTM ويتم إيقافه في فترات (يبدو أنه عشوائي).