当前位置: 首页 > news >正文

Bev pool 加速(1): torch.autograd.Function的使用

文章目录

    • 1. 介绍
    • 2 torch.autograd.Function
      • 2.1 自动微分
      • 2.2 autograd.Function的使用
      • 2.3 案例
        • 2.3.1 forward 方法
        • 2.3.2 setup_context方法
        • 2.3.3 backward方法
          • 2.3.2.1 backward 讲解
          • 2.3.2.2 梯度计算公式
        • 2.3.4 验证梯度计算
        • 2.3.5 使用自定义的backward
    • 3. 完整代码

1. 介绍

在做Bev项目时,我们会发对于一些计算量非常大的算子,通常会通过CUDA进行加速实现,将cuda计算封装到一个动态库.so,然后提供给python调用,相对于原先的python加速能显著的提升计算效率。比如bev_pool就是通过这种方式实现离线计算和cuda并行,从而速度提升了几个量级

bev_pool是Bev算法的关键的运算瓶颈,针对该问题工程上做了大量的性能优化,包括离线运算和cuda并行计算,从而实现bev_pool的计算加速。代码示例如下

bevfusion/mmdet3d/ops/bev_pool/bev_pool.py

class QuickCumsumCuda(torch.autograd.Function

http://www.mrgr.cn/news/22167.html

相关文章:

  • 经典栈和队列OJ题
  • API 架构(RPC风格、RESTful风格)
  • 用Pytho解决分类问题_DBSCAN聚类算法模板
  • C++函数提高
  • 在Python中读取Excel文件
  • PAT甲级-1085 Perfect Sequence
  • Linux下的PWM驱动
  • C++万字解析类和对象(上)
  • 面试真题 | 记录一次面试真题
  • 「iOS学习」——Masonry学习
  • 如何解决缓存(redis)和数据库(MySQL)数据不一致的问题?
  • 衡石分析平台使用手册-快速入门
  • 长短期记忆神经网络-LSTM回归预测-MATLAB代码实现
  • 一名优秀的工程师应该学会在工作中提升自己,面试篇
  • matlab读取NC文件(含group)
  • vulhub远程执行命令漏洞CVE-2022-22963
  • SprinBoot+Vue校园数字化图书馆系统的设计与实现
  • Vulhub Apache Airflow (CVE-2020-11978)
  • QML入门之创建可重用的组件(一)
  • 828华为云征文|Flexus X实例C#/.Net Core 结合(git代码管理、docker自定义镜像)快速发布部署-让你的项目飞起来~