首页 > 其他分享 >PyTorch 1.0 中文文档:torch.utils.bottleneck

PyTorch 1.0 中文文档:torch.utils.bottleneck

时间:2023-05-05 11:32:25浏览次数:42  
标签:分析 1.0 utils torch CUDA 工具 bottleneck CPU


译者: belonHan

torch.utils.bottleneck是 调试瓶颈bottleneck时首先用到的工具.它总结了python分析工具与PyTorch自动梯度分析工具在脚本运行中情况.

在命令行运行如下命令

python -m torch.utils.bottleneck /path/to/source/script.py [args]

其中 [args]script.py脚本的参数(任意个数).运行python -m torch.utils.bottleneck -h命令获取更多帮助说明.

警告

请确保脚本在分析时能够在有限时间内退出.

警告

当运行CUDA代码时,由于CUDA内核的异步特性, cProfile的输出 和cpu模式的autograd分析工具可能无法显示正确的计时: 报告的CPU时间 是用于启动内核的时间,不包括在GPU上执行的时间。 在常规cpu模式分析器下,同步操作是非常昂贵的。在这种无法准确计时的情况下,可以使用cuda模式的autograd分析工具。

注意

选择查看哪个分析工具的输出结果(CPU模式还是CUDA模式) ,首先应确定脚本是不是CPU密集型CPU-bound(“CPU总时间远大于CUDA总时间”)。如果是cpu密集型,选择查看cpu模式的结果。相反,如果大部分时间都运行在GPU上,再查看CUDA分析结果中相应的CUDA操作。

当然,实际情况取决于您的模型,可能会更复杂,不属于上面两种极端情况。除了分析结果之外,可以尝试使用nvprof命令查看torch.autograd.profiler.emit_nvtx()的结果.然而需要注意NVTX的开销是非常高的,时间线经常会有严重的偏差。

警告

如果您在分析CUDA代码, bottleneck运行的第一个分析工具 (cProfile),它的时间中会包含CUDA的启动(CUDA缓存分配)时间。当然,如果CUDA启动时间远小于代码的中瓶颈,这就被可以忽略。

更多更复杂关于分析工具的使用方法(比如多GPU),请点击https://docs.python.org/3/library/profile.html 或者 torch.autograd.profiler.profile().

阅读全文/改进本文


标签:分析,1.0,utils,torch,CUDA,工具,bottleneck,CPU
From: https://blog.51cto.com/wizardforcel/6245147

相关文章

  • PyTorch 1.0 中文文档:torch.utils.checkpoint
    译者:belonHan注意checkpointing的实现方法是在向后传播期间重新运行已被checkpint的前向传播段。所以会导致像RNG这类(模型)的持久化的状态比实际更超前。默认情况下,checkpoint包含了使用RNG状态的逻辑(例如通过dropout),与non-checkpointed传递相比,checkpointed具有更确定的输......
  • PyTorch 1.0 中文文档:torch.distributed
    译者:univeryinli后端torch.distributed支持三个后端,每个后端具有不同的功能。下表显示哪些功能可用于CPU/CUDA张量。仅当用于构建PyTorch的实现支持时,MPI才支持CUDA。后端gloompinccl设备CPUGPUCPU————发送✓✘✓接收✓✘✓广播✓✓✓all_reduce✓✓✓reduce✓✘✓all_gather......
  • Pytorch-模型的保存/复用/迁移
    模型的保存与复用模型定义和参数打印#定义模型结构classLenNet(nn.Module):def__init__(self):super(LenNet,self).__init__()self.conv=nn.Sequential(#[batch,1,28,28]nn.Conv2d(1,8,5,2),#[batch,1,28,28]......
  • 无CUDA安装PyTorch
    1.官网选择2.加国内镜像快速下载pip3installtorchtorchvisiontorchaudio-ihttps://pypi.tuna.tsinghua.edu.cn/simple3.验证是否安装成功importtorchprint(torch.__version__)......
  • 超越 PyTorch 和 TensorFlow,这个国产框架有点东西
    By超神经内容概要:都已经有这么多深度学习框架了,为什么还要搞个OneFlow?在机器学习领域,袁进辉看的比90%的人都长远。 关键词:开源  深度学习框架  OneFlow在深度学习领域,PyTorch、TensorFlow等主流框架,毫无疑问占据绝大部分市场份额,就连百度这样级别的公司,也是花费了大量......
  • windows 配置 cuda pytorch
    1.进入 https://pytorch.org,依次选择 PyTorchBuild->YourOS->Package->Language->ComputePlatform,然后会生成安装命令或下载链接,执行或下载安装即可如果没有GPU,ComputePlatform选CPU即可  对于CUDA版本,可以执行cmd命令查看本地显卡支持的版本:nvidia-smi......
  • 【2023 · CANN训练营第一季】昇腾AI入门Pytorch
    昇腾AI全栈架构华为AI全栈全场景解决方案为4层,分别为芯片层、芯片使能层、AI框架层和应用使能层。芯片基于统一、可扩展架构的系列化AIIP和芯片,为上层加速提供硬件基础。芯片产品:昇腾310和昇腾910的独立芯片,Nano-Tiny-Lite的非独立芯片。Ascend层,一切集成电路的核心,主要作用......
  • pytorch模型降低计算成本和计算量
    下面是如何使用PyTorch降低计算成本和计算量的一些方法:压缩模型:使用模型压缩技术,如剪枝、量化和哈希等方法,来减小模型的大小和复杂度,从而降低计算量和运行成本。分布式训练:使用多台机器进行分布式训练,可以将模型训练时间大大缩短,提高训练效率,同时还可以降低成本。硬件加......
  • Python数据库连接池DBUtils
    DBUtils是Python的一个用于实现数据库连接池的模块。安装pip3instal1dbutilspip3instal1pymysql 此连接池有两种连接模式:模式一:为每个线程创建一个连接,线程即使调用了close方法,也不会关闭,只是把连接重新放到连接池,供自己线程再次使用。当线程终止时,连接自动关闭。......
  • 【pytorch】为什么 ToTensor 后紧接 Normalize 操作?
    学习pytorch的transforms一节中产生疑问:ToTensor操作中图像数据满足[0,255]条件会进行线性归一化,映射到[0,1]。在ToTensor操作后一般紧接着Nomalize操作,又进行了一次标准差归一化。既然已经归一化了一次,为什么还要再来一次?以下是我在网络上找到的一些答案:数据如果......