Ubuntu运行深度学习代码,代码随机epoch中断没有任何报错

news2025/3/11 11:28:48

深度学习运行代码直接中断

文章目录

  • 深度学习运行代码直接中断
    • 问题描述
    • 设备信息
    • 问题补充
    • ```解决思路```
    • ```问题发现及正确解决思路```
    • 新问题出现
    • 最终问题:ubuntu系统,4090显卡安装英伟达驱动535.x外的驱动会导致开机无法进入桌面
    • 问题记录


问题描述

运行深度学习代码,然后直接中断,就是停止不运行,显卡也停下来,没有任何报错提示。不是在固定的Epoch发生的,像是随机的。中断出现的epoch不确定,时而运行1-2个小时中断,时而运行数10个小时再发生中断。


设备信息

硬件:4090(24G,电竞判客)+i9-14900K+DDR5
系统:Ubuntu22.04.3;
深度学习环境:Pytorch112,cuda12.0,英伟达驱动535.183.01;
代码:计算机视觉相关的代码,相同能够在其它服务器上运行,应该不是代码的问题。
运行方式:使用nohup后台运行,输出的内容会用tqdm包裹。


问题补充

偶尔出现的硬件问题:
服务器的所有外接设备失效,比如网线、鼠标键盘插进去都没有什么反应,需要重启。


解决思路

以下是我排查过的问题和思路,并没有发现问题所在

已排查的错误:

  1. 显卡、内存等进行压力测试,并没有报任何错误;
  2. 主机盖打开,增加散热能力;
  3. 重装系统n次:重装之后一般能解决,但是过一段时间又出现;最近又重装了ubuntu22.04.3,第一次运行就发生了中断;
  4. 限制cpu功率,没办法解决;
  5. num_works设为0,仍然出现该问题;
  6. pin_memory关闭,还是存在该问题;
  7. 环境不兼容?cuda改成11.8还是有问题,Pytorch环境倒是没有尝试用其它的,感觉不是这个问题吧;
  8. Pytorch从1.12换成2.0.0,代码运行了12小时后中断;
  9. batch_size调小,显存只占用17G左右,还是会中断;
  10. 不使用nohup后台运行,仍然运行一会后会中断;
  11. 正在尝试将tqdm版本切换与另外一台服务器的相同版本,代码还是会中断;
  12. 每一步主要的程序使用print输出,用于定位问题所在。

问题发现及正确解决思路

代码在一台服务器上能够正常运行,在4090上运行异常,代码中断不报错。

因此,以后当大家第一时间遇见这个问题的时候,就应该主动去查看系统的运行日志,定位代码停止运行时刻对应的日志。

(1)输出系统日志,然后查看代码中断时间的日志记录

# journalctl输出系统日志,后面是将输出重定位的journal.log文件
journalctl > journal.log

(2)查看系统对应的日志记录

在这里插入图片描述

7月 25 12:54:04 4090 kernel: show_signal_msg: 50 callbacks suppressed
7月 25 12:54:04 4090 kernel: yida_24-0725-09[1030438]: segfault at 8 ip 000061cc54bfdefa sp 00007fff10053f90 error 4 in python3.9[61cc54a89000+223000] likely on CPU 7 (core 12, socket 0)
7月 25 12:54:04 4090 kernel: Code: 04 24 4c 8d 15 a7 e8 19 00 41 89 7e 68 49 83 c4 02 0f b6 d0 0f b6 cc 49 89 d0 41 89 c9 41 ff 24 d2 4c 8b 7d f8 44 89 4c 24 20 <49> 8b 47 08 4c 89 ff ff 90 e0 00 00 00 4c 63 4c 24 20 48 85 c0 0f

(3) 定位问题出现的原因
通过baidu发现问题出现的潜在原因,发现是底层的计算错误。因此,我去比对2台服务器的Python版本,发现正常运行代码的一台服务器gcc是11.x,另外异常的一台服务器是gcc7.x。
在这里插入图片描述

(4) 解决问题
最终,我通过新建Python环境并更新gcc,发现能够解决该中断问题!!!

(5) 问题由来
问题是由于安装较为老旧的miniconda,其中Python3.9的gcc是7.x,导致了这个底层的问题和计算bug。终于TMD解决这“悄无声息”的问题!!!哈哈哈哈


新问题出现

虽然,代码不会中断了,但是代码的运行偶尔会让系统崩溃!!!又尝试了多种问题均无法解决该问题。无奈,只能重装升级ubuntu23.04,成功解决系统崩溃的问题!!!这ubuntu22.04.3真的是服了!


最终问题:ubuntu系统,4090显卡安装英伟达驱动535.x外的驱动会导致开机无法进入桌面

查找到一个教程似乎能够解决该问题,将发起最终的冲刺解决全部问题。


问题记录

  • 2024年08月01日21:02:23,完成bug的记录及问题解决思路;
  • 感激CSDN豪俊的帮助及引导;
  • 下次更新将解决安装英伟达驱动无法开机进入桌面的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1968917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL--表完整性约束

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 作用&#xff1a;用于保证数据的完整性和一致性 约束条件说明PRIMARY KEY (PK)该字段为该表的主键&#xff0c;可以唯一的标识记录&#xff0c;不可以…

【Python 逆向滑块】(实战三)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信

逆向日期&#xff1a;2024.08.01 使用工具&#xff1a;Node.js 本章知识&#xff1a;逆向网易易盾【cb】参数 文章难度&#xff1a;中等&#xff08;没耐心的请离开&#xff09; 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解密处理…

乐鑫ESP32-S3语音唤醒和命令词识别,XIAO ESP32 S3 Sense开发套件应用

在这个数字化飞速发展的时代&#xff0c;小型化、智能化已成为技术发展的趋势。ESP32-S3芯片在物联网和嵌入式机器学习领域的应用潜力&#xff0c;让我们对智能设备的未来充满了无限遐想。 OpenGlass项目中的Seeed Studio XIAO ESP32 S3 Sense开发套件&#xff0c;以其小巧的体…

【kali靶机之serial】--反序列化漏洞实操

kali靶机配置 【我图片里没有截图的默认配置即可】需要改的地方图片里面都有。 使用kali扫描网关的主机。 扫到一个开放了80端口HTTP协议的主机ip 访问80端口 会看到一个文本页面&#xff0c;翻译一下看是什么意思。。 F12查看cookie&#xff0c;是一个base64编码了的东西 使…

再获奖项,亚信安慧AntDB数据库被评为“2023-2024国产数据库创新赋能优秀产品”

日前&#xff0c;由工业和信息化部直属的中国电子信息产业发展研究院赛迪网、《数字经济》杂志主办的第二届数字驱动创新峰会&#xff08;DDIS 2024&#xff09;在京隆重举办&#xff0c;“2023-2024数字创新优秀成果案例” 征集结果同期正式发布。亚信安慧AntDB数据库凭借多年…

「9月·张家口」第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)

第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)将于2024年9月13日-15日在中国张家口召开。MVIPIT 2024聚焦机器视觉、图像处理与影像技术&#xff0c;旨在为专家、学者和研究人员提供一个国际平台&#xff0c;分享研究成果&#xff0c;讨论问题和挑战&#xff0c;探…

ARM架构中的Cache stashing介绍

快速链接: . 👉👉👉 ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 付费专栏-付费课程 【购买须知】:个人博客笔记导读目录(全部) Reliability, Availability, and I/O coherent Requesting Node (RN-I)I/O coherent Requesting Node with DVM support (RN-D)Fully c…

【C#工具类】Excel接口(一)

目录 需求描述 具体需求分析 学习交流&#xff08;Bug待解决&#xff09; Debug代码&#xff08;写代码的过程&#xff0c;逐渐完善的过程&#xff09; 参考资料 扩展阅读 需求描述 用C#生成两个函数 1. 盲读Excel (Excel文件名) 读取所有单元格的数据&#xff0c;并输…

什么是IO多路复用?其原理和用途是什么?

什么是IO&#xff1f; IO&#xff1a;Input/Output&#xff0c;即数据的读取&#xff08;接收&#xff09;/写入&#xff08;发送&#xff09;操作&#xff0c;针对不同的数据存储媒介&#xff0c;大致可以分为网络 IO 和磁盘 IO 两种。在 Linux 系统中&#xff0c;为了保证系…

计算机毕业设计Hadoop+Hive专利分析可视化 面向专利的大数据管理系统 专利爬虫 专利数据分析 大数据毕业设计 Spark

《Hadoop专利大数据分析可视化系统》开题报告 一、选题背景与意义 随着信息技术的飞速发展&#xff0c;全球数据量呈现爆炸式增长&#xff0c;特别是在专利领域&#xff0c;数据的积累和更新速度更是惊人。专利数据不仅包含了技术创新的详细信息&#xff0c;还反映了行业的发…

Java数据结构(五)——栈和队列

文章目录 栈和队列栈基本概念栈的模拟实现集合框架中的栈栈的创建栈的方法栈的遍历 栈的应用及相关练习括号匹配逆波兰表达式求值出栈入栈次序匹配最小栈 几个含"栈"概念的区分 队列基本概念队列的模拟实现循环队列双端队列集合框架中的队列队列的创建队列的方法队列…

嵌入式day16

结构体与共用体 概述 通常结构体名第一个字符大写 } &#xff1b; 分号不能省略 类型名与变量名的关系 &#xff1a;抽象与具体的关系 . &#xff1a;结构体成员运算符 先有类型&#xff0c;再有定义 Student 可省略 使用者只能用全局变量s1&#xff0c;s2 全部初始化&am…

Redis缓存常见问题

Redis 缓存的穿透、雪崩、击穿是三种常见的问题&#xff0c;它们各自的表现和应对策略有所不同。以下是这三者的区别&#xff1a; 1. 缓存穿透&#xff08;Cache Penetration&#xff09; 现象: 缓存穿透是指客户端请求的数据在缓存中不存在&#xff0c;同时在数据库中也不存…

【avue+vue2+elementui】删除、rules、页面跳转和其他问题

一、删除 API/*** 删除.* @param {*} data * @returns 返参*/ export const deleteOrder = (data) => {return request({url: /api/Order/deleteOrder,method: post,data}) }HTML左菜单<template slot="menuLeft"><el-button size="small" typ…

余弦函数的希尔伯特变换过程推导

做例2.11.1的第一个公式&#xff0c;我懒得手写了&#xff0c;直接画图了。 我曾经百度了coswt的傅里叶变换的公式&#xff0c;发现百度的公式和我换元的不一样&#xff0c;我还以为我错了&#xff0c;大致考虑了傅里叶变换的过程之后&#xff0c;我确定&#xff0c;百度的余弦…

搭建日志系统ELK(二)

搭建日志系统ELK(二) 架构设计 在搭建以ELK为核心的日志系统时&#xff0c;Logstash作为日志采集的核心组件&#xff0c;负责将各个服务的日志数据采集、清洗、过滤。然而缺点也很明显&#xff1a; 占用较多的服务器资源。配置复杂&#xff0c;学习曲线陡峭。处理大数据量时…

通过阿里云OOS“快速设置”快速配置多地域运维任务

1. 介绍 什么是系统运维管理OOS? 系统运维管理OOS&#xff08;CloudOps Orchestration Service&#xff09;是阿里云提供的一项云上自动化运维服务&#xff0c;旨在帮助用户实现运维任务的自动化管理和执行。通过OOS&#xff0c;用户可以设计模板来详细定义执行任务的内容、…

软件开发人员如何有效提问

引子&#xff1a;小张的困惑 小张是一名刚入职的大数据开发工程师&#xff0c;满怀热情地加入了一个处理城市交通数据的项目。然而&#xff0c;面对复杂的数据流和繁琐的ETL过程&#xff0c;他很快就遇到了瓶颈。每次在团队会议上&#xff0c;他都不知道该如何准确地表达自己的…

通过Java实现插入排序(直接插入,希尔)与选择排序(直接选择,堆排)

目录 &#xff08;一&#xff09;插入排序 1.直接插入排序 &#xff08;1&#xff09;核心思想&#xff1a; &#xff08;2&#xff09;代码实现&#xff08;以从小到大排序为例&#xff09;&#xff1a; &#xff08;3&#xff09;代码分析&#xff1a; 2.希尔排序&#xff08…

C# 串口控制 校验

1. 串口控制 using System; using System.IO.Ports; using System.Windows.Forms;namespace 串口控制 {public partial class Form1 : Form{//device1const byte DeviceOpen1 0x01;const byte DeviceClose1 0x81;//device2const byte DeviceOpen2 0x02;const byte DeviceCl…