pytorch 进行分布式调试debug torch.distributed.launch 三种方式

这篇具有很好参考价值的文章主要介绍了pytorch 进行分布式调试debug torch.distributed.launch 三种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. pytorch 分布式调试debug torch.distributed.launch 三种方式

1. 方式1:ipdb调试(建议)

参考之前的博客:python调试器 ipdb
注意:pytorch 分布式调试只能使用侵入式调试,也即是在你需要打断点的地方(或者在主程序的第一行)添加下面的代码:

import pdb
pdb.set_trace()

当进入pdb调试后,跟原先使用pdb调试命令一样,可以在线打断点(再使用pdb命令添加多个断点),也可以逐行执行代码,也能查看变量。唯一缺点是分布式调试需要在代码前手动加上pdb.set_trace()这一行代码,手动打第一个断点。

命令行使用pdb未解决:

命令行进行添加pdb:

python -m pdb -m torch.distributed.launch .....

命令行添加pdb后,进入调试的代码在launch.py中,打断点到主程序后,无法进入到住程序里面,------???暂时未解决

2. 方式2:使用pycharm进行分布式调试(侵入式代码)

在主函数开头添加如下代码:

    if args.world_size == 0:
        os.environ['MASTER_ADDR'] = 'localhost' #master节点的ip地址
        os.environ['MASTER_PORT'] = '56220'  #master节点的端口号
        os.environ["RANK"] = "0"
        os.environ['WORLD_SIZE'] = '1' #debug时没有world_size=8参数,只有一个gpu
    torch.distributed.init_process_group(backend="nccl") #分布式后端初始化

注意一定要在初始化分布式后端nccl之前添加master节点的ip地址和端口号等信息,如下图:

pytorch调试,Pytorch基础,pytorch,python,分布式调试,服务器,单机多卡调试

然后在pycharm Edit configurations…中配置环境,Script path为:主程序.py文件位置,Parameters:程序需要运行的参数,Environment variables:增加环境变量,配置好后,点击Apply–>OK即可。

注意Parameters参数里面不能配置 ‘’–world_size’’ 参数,程序world_size默认为0,因为主程序需要在这一行if args.world_size == 0代码的 if 判断语句里面 需要手动配置master节点的ip和端口号,以及world_size和rank等配置

pytorch调试,Pytorch基础,pytorch,python,分布式调试,服务器,单机多卡调试

此方式也就是相当于在分布式代码上面使用一张卡进行代码调试。

3. 方式3:使用pycharm进行分布式调试(另外一种方式:非侵入代码)

参考链接:
【PyTorch】PyCharm远程连接服务器,调试torch.distributed.launch分布式程序,
Pycharm:运行、调试pytorch分布式训练代码

注意:Parameters参数的详细设置中:所有参数涉及需要路径的地方(如文件路径,保存路径,数据集路径等)就必须使用绝对路径,不然会报错,找不到文件,如下图:

pytorch调试,Pytorch基础,pytorch,python,分布式调试,服务器,单机多卡调试文章来源地址https://www.toymoban.com/news/detail-727934.html

到了这里,关于pytorch 进行分布式调试debug torch.distributed.launch 三种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Distributed】分布式监控系统zabbix应用(二)

    分担 server 的集中式压力; 解决多机房之间的网络延时问题。 结构:agent —— proxy —— server 2.1 设置 zabbix 的下载源,安装 zabbix-proxy 2.2 部署数据库   要求 MySQL 5.7 或 Mariadb 10.5 及以上版本 2.3 导入数据库信息 2.4 修改 zabbix-proxy 配置文件 2.5 启动 zabbix-proxy 2.6 在所有主机上

    2024年02月13日
    浏览(58)
  • 【Distributed】分布式ELK日志文件分析系统(一)

      日志主要包括系统日志、应用程序日志和安全日志。系统远维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。   往往单台机器的日志我们使用

    2024年02月15日
    浏览(42)
  • Clickhouse分布式表引擎(Distributed)写入核心原理解析

    Clickhouse分布式表引擎(Distributed)写入核心原理解析 Clickhouse分布式表引擎(Distributed)查询核心原理解析 Distributed表引擎是分布式表的代名词,它自身不存储任何数据,而是作为数据分片的透明代理,能够自动路由数据至集群中的各个节点 ,所以Distributed表引擎需要和其他数

    2023年04月27日
    浏览(48)
  • GlusterFs 分布式复制卷(Distributed-Replicate)性能测试

    目录 fio工具参数解释 Glusterfs 和NFS 性能测试 顺序写: 随机写: 顺序读: 随机读: 随机读写: 参数说明: 测试结论: 与NFS对比 压测对比结果 NFS和GlusterFs的优缺点 NFS的优点 NFS的缺点 GlusterFS的优点 GlusterFS的缺点 NFS与GlusterFS对比 1. 功能对比 2. 吞吐量对比 3. 可靠性对比 4

    2024年02月12日
    浏览(42)
  • torch分布式通信基础

    官网文档:WRITING DISTRIBUTED APPLICATIONS WITH PYTORCH 需要注意的一点是: 这里面的调用都是同步的,可以理解为,每个进程都调用到通信api时,真正的有效数据传输才开始,然后通信完成之后,代码继续往下跑。实际上有些通信进程并不获取数据,这些进程可能并不会被阻塞。 文

    2024年02月16日
    浏览(32)
  • FPGA原理与结构(6)——分布式RAM(Distributed RAM,DRAM)

    系列文章目录:FPGA原理与结构(0)——目录与传送门 目录 一、RAM概述 1、RAM基本概念 2、FPGA中RAM的分类 二、DRAM详解 1、FPGA资源         2、DRAM的配置形式 2.1 Single-Port(单端口) 2.2 Dual-Port(双端口) 2.3 Quad-Port(四端口) 2.4 Simple Dual-Port(简单双端口) 2.5 更大深度  

    2024年02月08日
    浏览(35)
  • 从底层结构开始学习FPGA(6)----分布式RAM(DRAM,Distributed RAM)

    文章目录 系列目录与传送门 一、什么是RAM?什么是ROM? 二、块RAM和分布式RAM 2.1、BRAM

    2024年02月02日
    浏览(42)
  • 分布式链路追踪——Dapper, a Large-Scale Distributed Systems Tracing Infrastructure

    要解决的问题 如何记录请求经过多个分布式服务的信息,以便分析问题所在? 如何保证这些信息得到完整的追踪? 如何尽可能不影响服务性能? 当用户请求到达前端A,将会发送rpc请求给中间层B、C;B可以立刻作出反应,但是C需要后端服务D、E的配合才能应答 一个简单有用

    2024年02月12日
    浏览(41)
  • NLP——分布式语义 Distributional Semantics:Word Vectors;Word2Vec

    传统的词汇数据库(Lexical Database),如WordNet,是自然语言处理中一种常见的资源,用于提供词汇的定义、词义关系(如同义词、反义词)和词汇层次结构(如上下位词)。虽然这些资源在许多任务中都非常有用,但它们也存在一些限制,这促使了分布式语义的发展。以下是

    2024年02月08日
    浏览(48)
  • torch分布式数据并行:torch.nn.parallel.DistributedDataParallel(DDP),代码书写步骤

    多进程做多卡训练; 目录 1 初始化进程组: 2 当前进程所能用到的GPU卡的名称 3 将数据集随机分配到不同的GPU上 4 将train_sampler传入DataLoader中 5 将数据进行拷贝 6 模型放到GPU上 7 执行命令 8 模型保存 9 加载模型 10 注意事项 代码编写流程: 1 初始化进程组: ‘nccl’ 指定GPU之

    2024年02月15日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包