文章目录
-
- 1. c++扩展
- 2. 案例
-
- 2.1 案例1
-
- 2. 1.1 代码实现
-
- (1) c++ 文件
- (2) setup.py编写
- (3) python 代码编写
- 2.1 案例1
在bevfusion论文中,将
bev_pooling
定义为view transform中的效率瓶颈
,bevfusion 主要就是对bev_pooling进行了加速
,使得视图转换的速度提高了40倍
,延迟从500ms下降到12m
s。be_pooling的优化和加速,主要是通过实现自定义的c++扩展
和cuda扩展
实现的。
- 在bevfusion项目中的bev_pool.py中:
mmdet3d/ops/bev_pool/bev_pool.py
, 可以看到有一处无法点进去查看的函数bev_pool_ext.bev_pool_forward
, 它实际是用python 去调用我们的c++和cuda函数。
- 其中
bev_pool
的c++和cuda代码实现在:mmdet3d->ops->src
中,用c++实现了bev pool的forward和