MIT-BEVFusion系列九--CUDA-BEVFusion部署1 debug代码

目录

  • 开启Debug
  • 常用数据

在一起看CUDA-BEVFusion的代码前,我们把后面会常见到的变量以及他的含义写在前方,看代码的时候如果看到同名的变量,可以过来看一看数据的形状和含义。

另外这里介绍了开启debug的方法。

总而言之,本篇文章是一个类似前言的文章,方便后续大家调试代码,理解代码。

开启Debug

  1. 修改 CMakeLists.txt,注释 26 行,打开 27 行注释。

MIT-BEVFusion系列九--CUDA-BEVFusion部署1 debug代码_第1张图片
修改前,默认设置

MIT-BEVFusion系列九--CUDA-BEVFusion部署1 debug代码_第2张图片
修改后

  1. 重新运行 bash tool/run.sh。重新构建

    1. run.sh 中 41 行默认会执行 build/bevfusion。推理一次。只想构建,注释掉 41 行即可
      MIT-BEVFusion系列九--CUDA-BEVFusion部署1 debug代码_第3张图片
  2. Debug

如果系统里有多个版本的 cuda/tensorrt,则需要在 launch.json 文件里进行相应的配置:


"environment": [{"name": "LD_LIBRARY_PATH", "value":"/path_to_trt/TensorRT-8.5.3.1/lib:/path_to_cuda/cuda-11.7/lib64:$LD_LIBRARY_PATH"}],

如果发现调试时变量显示都是16进制的数,想让其变成10进制,需要如下设置:

"setupCommands": [
                { "text": "set output-radix 10"}#或者切换成16
            ]

因为.vscode中launch.json已经配置好,按照下图Debug,会运行build/bevfusion进入主程序。
MIT-BEVFusion系列九--CUDA-BEVFusion部署1 debug代码_第4张图片

MIT-BEVFusion系列九--CUDA-BEVFusion部署1 debug代码_第5张图片

常用数据

  • numel_frustum_:332288。一个相机视锥点数量
  • numel_geometry_:1993728。6 个相机一共的视锥点数量(332288*6)
  • remain_ranks :159963。转体素时超出边界的视锥点的个数
  • keep_count_:1833765。转成功的视锥点的数量。1993728 - 159963 = 1833765
  • interval_starts 、n_intervals_: 96801。起始点数量,也可以理解成区间数量。
  • ranks_、interval_start、indices、geometry 关系
    • ranks_

      • compute_geometry_kernel 中看出,ranks 与 geometry 的数据偏移量一致,只不过这个偏移量对应的点如果没有落在体素内时,ranks 存的值是 0,而 geometry 存的是错误的数值
        • ranks 与 geometry 的数据偏移量一致依据
          MIT-BEVFusion系列九--CUDA-BEVFusion部署1 debug代码_第6张图片

        • ranks 存的值是 0,而 geometry 存的是错误的数值依据
          MIT-BEVFusion系列九--CUDA-BEVFusion部署1 debug代码_第7张图片

          MIT-BEVFusion系列九--CUDA-BEVFusion部署1 debug代码_第8张图片

    • indices 存的是 geometry 与排序前 ranks_的偏移量数值。这个偏移量就是_pid=indeces。理解为视锥索引。

      • 可以理解为一个数据由两部分存,indices 存的索引,ranks_\geometry 存的数据。indices=0 为例。其含义就是指 geometry 与 ranks_ 偏移量是 0
        • 一般用法是计算出 indices 后, geometry[indices]去找对应的数据。当 indices=0 时,找到的就是 63905
    • interval_start 具体数据 + 加上 reamain_ranks 的数量(159963)就是这个数据在排序后 rank 中距离首地址的 偏移量

你可能感兴趣的:(CUDA,CUDA-BEVFusion,模型算法部署,自动驾驶,bev,nvidia)