YOLOv101 2024-05-15 13:03 采纳率: 60%
浏览 131

yolov8用CPU能跑,用GPU跑不了

在Linux系统里,用GPU(4060)torch1.131不能运行,退出代码为139,最后一行显示“Segmentation fault”。
而如果我改用CPU就可以跑,但也会自动终止。
想问一下如何才能用GPU跑,和怎么加大Linux运行时的内存(电脑主系统是win)

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-05-15 13:03
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您想要解决的问题

    您希望解决的问题是如何在Linux系统上使用NVIDIA GPU(例如4060)运行YOLOv8模型,同时解决在PyTorch 1.13.1环境下出现的退出代码139和"Segmentation fault"错误。此外,您还希望了解如何增加Linux运行时的内存,因为您的电脑主系统是Windows。

    问题出现原因

    1. 退出代码139和"Segmentation fault":这通常表明程序尝试访问它没有权限访问的内存区域,这可能是由于内存溢出、不兼容的硬件驱动、或者是PyTorch与GPU之间的兼容性问题。
    2. CPU运行自动终止:这可能是因为模型对内存的需求超过了CPU所能提供的,导致程序崩溃。

    问题解决方案

    1. 更新GPU驱动:确保您的GPU驱动是最新的,并且与PyTorch 1.13.1兼容。
    2. 检查CUDA和cuDNN:安装或更新到与PyTorch 1.13.1兼容的CUDA和cuDNN版本。
    3. 增加Linux系统的内存:由于您的主系统是Windows,您可能在Windows上使用Wine或虚拟机运行Linux。如果使用虚拟机,可以通过虚拟机设置增加分配给Linux的内存。
    4. 调试PyTorch代码:尝试简化您的代码,逐步运行以确定导致错误的具体部分。

    提供代码

    以下是一个基本的示例,展示如何在PyTorch中设置GPU或CPU:

    import torch
    
    # 检查是否有可用的GPU,如果有则使用GPU,否则使用CPU
    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    
    # 确保模型和数据都转移到了正确的设备上
    model.to(device)
    data.to(device)
    

    代码运行方式

    1. 确保您的Linux系统已经安装了Python和PyTorch。
    2. 更新您的GPU驱动、CUDA和cuDNN。
    3. 在Linux环境中运行上述代码。

    代码预期运行结果

    如果上述步骤正确执行,您应该能够在GPU上运行YOLOv8模型,而不会遇到"Segmentation fault"错误。

    推荐相关链接

    请注意,具体的错误解决可能需要根据您系统的具体情况进行调整。如果您在解决问题的过程中遇到任何困难,可以提供更多的错误信息或者系统配置细节,以便进一步帮助您。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月15日

悬赏问题

  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥15 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?