Skip to content

Feat/Flashocc Optimization - #30

Open
Coulsonq wants to merge 27 commits into
HYGON-AI:mainfrom
Coulsonq:flashocc-optimization
Open

Coulsonq wants to merge 27 commits into
HYGON-AI:mainfrom
Coulsonq:flashocc-optimization

Conversation

@Coulsonq

@Coulsonq Coulsonq commented Oct 26, 2026 •

Copy link
Copy Markdown

共8个优化项

  • 为 image_encoder 增加 torch.compile 优化组。
  • 为 bev_encoder 增加 torch.compile 优化组。
  • 为 prepare_inputs 增加 torch.compile 优化组。
  • 为 forward_occ_train 增加 torch.compile 优化组。
  • 为 DataLoader 增加 pinned memory 优化。
  • 为 DataLoader 增加 persistent workers 优化。
  • 加速 view transformer 的几何坐标和 voxel 索引准备,并将静态网格设为非持久 buffer;不替换 bev_pool_v2 聚合算子。
  • 增加关闭 image backbone activation checkpoint 的选项,以显存换取减少反向重计算。

兼容项

  • 将 DVR 的 HCU 兼容源码放在 Turbo 插件目录,避免导入时触发官方源码中的不兼容编译路径;过滤 HCU 编译器不支持的 NVCC 参数。
  • 支持从外置 MMDetection3D 目录导入依赖和查找 base config。
  • 支持将相对路径的 NuScenes 标注文件解析到数据目录。
  • 兼容 GB18030 编码的旧版 Python 源码。
  • 支持加载或在官方源码目录之外构建 bev_pool、bev_pool_v2、nearest_assign 等 HCU 扩展。###

已验证吞吐和精度。

@hygon-ai-reviewer hygon-ai-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review

🟡 建议修改

发现有明确证据的问题,建议核对并处理。

已确认 2 个问题,其中 1 个已添加到对应代码行。

变更概览

本次变更主要包含:

  • 新增 FlashOCC 模型的 TurboPhysAI 优化接入文档,涵盖容器环境准备、外置 MMDetection3D 依赖与 HCU 扩展构建、nuScenes 数据及权重准备、训练启动命令。
  • 新增 flashocc 优化包初始化文件,导入时执行兼容性引导安装并引入优化目录 catalog,并配套添加忽略构建产物与本地缓存的 .gitignore。
  • 本批新增 FlashOCC 优化组注册文件,定义针对 BEVDet 图像/BEV 编码器、prepare_inputs、occ 训练前向的 torch.compile 优化组,以及 DataLoader pin_memory、persistent workers、view transformer 几何准备加速和关闭激活检查点的优化组;另附 DVR 的 HCU 兼容 C++ 绑定源码。
  • 新增 DVR 的 HCU 兼容 CUDA 扩展源码,提供体素占据初始化与光线步进前向渲染内核,作为插件目录内的本地编译源,供后续批次按 HCU 兼容方式构建。
文件审查摘要
文件 变更 审查结果
turbo_physai/optimizations/models/flashocc/sitecustomize.py 新增 · +27/-0 P2 × 1
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cu 新增 · +747/-0 P3 × 1
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.hip 新增 · +749/-0 —
turbo_physai/optimizations/models/flashocc/compatibility.py 新增 · +393/-0 —
model_examples/FlashOCC/README.md 新增 · +198/-0 —
turbo_physai/optimizations/models/flashocc/catalog.py 新增 · +136/-0 —
turbo_physai/optimizations/models/flashocc/configs/optimization.yaml 新增 · +105/-0 —
turbo_physai/optimizations/models/flashocc/voxel_pooling_compile.py 新增 · +86/-0 —
turbo_physai/optimizations/models/flashocc/scripts/build_flashocc_ops_external.sh 新增 · +78/-0 —
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cpp 新增 · +72/-0 —
turbo_physai/optimizations/models/flashocc/geometry_compile.py 新增 · +52/-0 —
turbo_physai/optimizations/models/flashocc/configs/recipe.yaml 新增 · +36/-0 —
turbo_physai/optimizations/models/flashocc/device_buffers.py 新增 · +34/-0 —
turbo_physai/optimizations/models/flashocc/persistent_workers.py 新增 · +34/-0 —
turbo_physai/optimizations/models/flashocc/run_flashocc_turbo.sh 新增 · +33/-0 —
turbo_physai/optimizations/models/flashocc/configs/runtime.yaml 新增 · +32/-0 —
turbo_physai/optimizations/models/flashocc/disable_activation_checkpoint.py 新增 · +32/-0 —
turbo_physai/optimizations/models/flashocc/.gitignore 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compatibility_bootstrap.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_prepare_inputs.py 新增 · +23/-0 —

其余 6 个文件未逐项展开。

无法定位到 diff 行的问题(1)

P3 · grad_sigma 反向梯度写入存在数据竞态

  • 文件:turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cu(无法安全定位到当前 diff 行)
  • 触发条件:训练反向传播时,同一批次内多条光线(不同线程)穿越相同体素并对该体素执行梯度累加。
  • 证据与影响:核函数中 grad_sigma[n][ts][v.z][v.y][v.x] += dl_dd * dd_dsigma[i] 使用普通读-改-写而非原子操作,且源码注释自述此处存在写入竞态。 共享体素的梯度累加会丢失部分更新,梯度结果不确定,表现为训练不可复现,而非崩溃。
  • 修改建议:若需确定性与完整梯度,可将该处累加改为 atomicAdd;若有意沿用上游 DVR 语义,需人工核验并注明该非确定性影响。
审查信息
  • 变更统计:26 个文件,+3030/-0。
  • 覆盖情况:共 26 个文件,已完整审查 26 个。
  • 候选问题:2 项;证据复核过滤:0 项;发布前敏感信息保护:0 项。
  • 本服务以 GitHub 提供的 PR diff 为审查主体,PR 描述与按相关性选取的仓库片段仅用于核验;未执行代码或重跑测试,结论仍需维护者核验。
提交修复并推送新 commit 后,将自动审查 PR 的最新版本。

model_root = os.environ.get("FLASHOCC_ROOT")
runtime_root = os.environ.get("FLASHOCC_RUNTIME_ROOT")
if not model_root or not runtime_root:
raise RuntimeError("FlashOCC compatibility roots are not configured")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 · 兼容层安装失败仅 raise,异常被 site 机制吞掉后训练继续执行

触发条件: TURBO_PHYSAI_BOOTSTRAP=1 且 FLASHOCC_ROOT 或 FLASHOCC_RUNTIME_ROOT 未设置,或 compatibility.py 加载/install_compatibility 抛错时

证据与影响: 新文件第16、22行直接 raise RuntimeError;bootstrap 的 _run_user_sitecustomize() 调用处 except Exception 仅打印 traceback 后继续执行 activate(),site.execsitecustomize 本身也会吞掉异常;仓库自述设计明确要求失败以 91 退出码 os._exit 而非 raise 环境未配置或加载失败时,进程仍在未安装兼容层的状态下继续训练,后续以无关错误失败或静默按未兼容/未优化路径运行,问题难以定位

修改建议: 参照 bootstrap 的处理:打印带说明的错误信息后以统一的激活失败退出码 os._exit,而不是在 sitecustomize 中仅 raise

@hygon-ai-reviewer hygon-ai-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review

🟡 建议修改

发现有明确证据的问题,建议核对并处理。

已确认 2 个问题,其中 1 个已添加到对应代码行。

变更概览

本次变更主要包含:

  • 新增 FlashOCC 优化包入口:提供接入文档 README 与 .gitignore,并在包导入时先执行 install_for_turbo_run 安装兼容引导,再导入 catalog 注册优化。
  • 新增 FlashOCC 优化目录注册文件,声明 image/bev encoder、prepare_inputs、occ 训练的 torch.compile 优化组,以及 DataLoader pin_memory、persistent_workers、view transformer 几何准备加速和关闭激活检查点等组。
  • 新增 DVR 的 HCU 兼容 C++ 源码,提供 init、render、render_forward 的参数校验与 pybind 导出。
  • 将 DVR 的 CUDA 源码新增到 Flashocc 兼容源码目录,提供体素占用初始化与光线渲染核函数,供 HCU 环境以兼容方式编译,规避官方源码的不兼容编译路径。
文件审查摘要
文件 变更 审查结果
turbo_physai/optimizations/models/flashocc/sitecustomize.py 新增 · +27/-0 P2 × 1
turbo_physai/optimizations/models/flashocc/compatibility.py 新增 · +393/-0 P3 × 1
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.hip 新增 · +749/-0 —
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cu 新增 · +747/-0 —
model_examples/FlashOCC/README.md 新增 · +198/-0 —
turbo_physai/optimizations/models/flashocc/catalog.py 新增 · +136/-0 —
turbo_physai/optimizations/models/flashocc/configs/optimization.yaml 新增 · +105/-0 —
turbo_physai/optimizations/models/flashocc/voxel_pooling_compile.py 新增 · +86/-0 —
turbo_physai/optimizations/models/flashocc/scripts/build_flashocc_ops_external.sh 新增 · +78/-0 —
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cpp 新增 · +72/-0 —
turbo_physai/optimizations/models/flashocc/geometry_compile.py 新增 · +52/-0 —
turbo_physai/optimizations/models/flashocc/configs/recipe.yaml 新增 · +36/-0 —
turbo_physai/optimizations/models/flashocc/device_buffers.py 新增 · +34/-0 —
turbo_physai/optimizations/models/flashocc/persistent_workers.py 新增 · +34/-0 —
turbo_physai/optimizations/models/flashocc/run_flashocc_turbo.sh 新增 · +33/-0 —
turbo_physai/optimizations/models/flashocc/configs/runtime.yaml 新增 · +32/-0 —
turbo_physai/optimizations/models/flashocc/disable_activation_checkpoint.py 新增 · +32/-0 —
turbo_physai/optimizations/models/flashocc/.gitignore 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compatibility_bootstrap.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_prepare_inputs.py 新增 · +23/-0 —

其余 6 个文件未逐项展开。

无法定位到 diff 行的问题(1)

P3 · 默认数据基目录不存在时兼容层安装整体中断

  • 文件:turbo_physai/optimizations/models/flashocc/compatibility.py(无法安全定位到当前 diff 行)
  • 触发条件:调用 install_compatibility 时未设置 FLASHOCC_DATA_BASE,且 model_root 父目录下不存在 static_data 目录(如数据放在其他位置或信息文件为绝对路径,无需相对路径解析)。
  • 证据与影响:install_compatibility 以 str(model_path.parent / 'static_data') 作为默认 data_base 传入 install_relative_nuscenes_path_compatibility;该函数中 resolved_base.is_dir() 为假时直接 raise FileNotFoundError,异常向上传播。 install_compatibility 在该检查处抛异常,其后的 meta_path 扩展 finder、编码 finder 与 DVR 兼容安装均不会执行,整个兼容层安装失败,即使本次加载并不需要相对路径解析。
  • 修改建议:默认路径不存在时降级处理(记录并跳过相对路径兼容安装),仅在使用方显式配置 FLASHOCC_DATA_BASE 且目录缺失时才报错;或将数据基目录校验延迟到实际加载信息文件时进行。
审查信息
  • 变更统计:26 个文件,+3030/-0。
  • 覆盖情况:共 26 个文件,已完整审查 26 个。
  • 候选问题:5 项;证据复核过滤:3 项;发布前敏感信息保护:0 项。
  • 本服务以 GitHub 提供的 PR diff 为审查主体,PR 描述与按相关性选取的仓库片段仅用于核验;未执行代码或重跑测试,结论仍需维护者核验。
提交修复并推送新 commit 后,将自动审查 PR 的最新版本。

model_root = os.environ.get("FLASHOCC_ROOT")
runtime_root = os.environ.get("FLASHOCC_RUNTIME_ROOT")
if not model_root or not runtime_root:
raise RuntimeError("FlashOCC compatibility roots are not configured")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 · 兼容层安装失败时仅抛异常,会被 sitecustomize 机制吞掉导致静默跳过

触发条件: 启动 rank 时 FLASHOCC_ROOT 或 FLASHOCC_RUNTIME_ROOT 缺失/为空,或 compatibility.py 不存在、install_compatibility 抛异常。

证据与影响: 第16/22行直接 raise RuntimeError,第27行 install_compatibility 异常也未捕获。而仓库既有机制(bootstrap/__init__.py 注明 site.execsitecustomize() 会吞异常;_sitedir/sitecustomize.py 的 _run_user_sitecustomize 对用户钩子异常仅 print_exc 后继续),这些异常只会被打印,流程继续执行 activate() 与训练。 rank 会在未安装 FlashOCC 兼容层的情况下继续训练,配置错误被静默掩盖,后续可能产生难定位的运行错误,违背仓库“激活失败必须中止、不得退回未优化运行”的约定。

修改建议: 仿照 bootstrap _sitedir/sitecustomize.py 的做法:用 try/except 包裹加载与安装逻辑,失败时输出错误并以 ACTIVATION_FAILURE_EXIT_CODE(os._exit(91))退出,而不是直接 raise。

@Coulsonq Coulsonq changed the title Flashocc Optimization Feat/Flashocc Optimization Oct 27, 2026

@hygon-ai-reviewer hygon-ai-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review

🟡 建议修改

发现有明确证据的问题,建议核对并处理。

已确认 1 个问题,其中 1 个已添加到对应代码行。

变更概览

本次变更主要包含:

  • 新增 FlashOCC 应用说明文档(涵盖环境搭建、外置依赖构建、数据与权重准备及训练启动),并添加 flashocc 优化包的 .gitignore 与包初始化入口,初始化时调用 install_for_turbo_run 安装兼容层并导入 catalog。
  • 新增 FlashOCC 优化组目录 catalog.py,注册多个优化组:image/bev encoder、prepare_inputs、occ_train 的 torch.compile,DataLoader pin_memory 与 persistent_workers,view transformer 几何准备加速及关闭 activation checkpoint。
  • 新增 DVR 兼容性 C++ 扩展绑定源码 compat_sources/dvr/dvr.cpp,提供 init/render/render_forward 的 pybind 接口与 CUDA 输入检查。
  • 在 FlashOcc compat_sources 目录新增 DVR 体素光线步进 CUDA 源码 dvr.cu,作为 HCU 环境下可编译的兼容副本,避免导入时触发官方源码中的不兼容编译路径;文件以新增方式引入,包含 occupancy 初始化与正向渲染核函数。
文件审查摘要
文件 变更 审查结果
turbo_physai/optimizations/models/flashocc/scripts/build_flashocc_ops_external.sh 新增 · +78/-0 P3 × 1
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cu 新增 · +747/-0 —
turbo_physai/optimizations/models/flashocc/compatibility.py 新增 · +426/-0 —
model_examples/FlashOCC/README.md 新增 · +198/-0 —
turbo_physai/optimizations/models/flashocc/catalog.py 新增 · +136/-0 —
turbo_physai/optimizations/models/flashocc/configs/optimization.yaml 新增 · +105/-0 —
turbo_physai/optimizations/models/flashocc/voxel_pooling_compile.py 新增 · +89/-0 —
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cpp 新增 · +72/-0 —
turbo_physai/optimizations/models/flashocc/geometry_compile.py 新增 · +55/-0 —
turbo_physai/optimizations/models/flashocc/configs/recipe.yaml 新增 · +36/-0 —
turbo_physai/optimizations/models/flashocc/device_buffers.py 新增 · +34/-0 —
turbo_physai/optimizations/models/flashocc/disable_activation_checkpoint.py 新增 · +30/-0 —
turbo_physai/optimizations/models/flashocc/configs/runtime.yaml 新增 · +29/-0 —
turbo_physai/optimizations/models/flashocc/run_flashocc_turbo.sh 新增 · +29/-0 —
turbo_physai/optimizations/models/flashocc/compile_prepare_inputs.py 新增 · +26/-0 —
turbo_physai/optimizations/models/flashocc/.gitignore 新增 · +25/-0 —
turbo_physai/optimizations/models/flashocc/compile_bev_encoder.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_image_encoder.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_occ_train.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/persistent_workers.py 新增 · +24/-0 —

其余 5 个文件未逐项展开。

审查信息
  • 变更统计:25 个文件,+2285/-0。
  • 覆盖情况:共 25 个文件,已完整审查 25 个。
  • 候选问题:1 项;证据复核过滤:0 项;发布前敏感信息保护:0 项。
  • 本服务以 GitHub 提供的 PR diff 为审查主体,PR 描述与按相关性选取的仓库片段仅用于核验;未执行代码或重跑测试,结论仍需维护者核验。
提交修复并推送新 commit 后,将自动审查 PR 的最新版本。

fi

mkdir -p "$RUNTIME_ROOT"
BUILD_SRC=$(mktemp -d /tmp/flashocc-ops-src.XXXXXX)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3 · 构建临时目录未清理,反复构建时在 /tmp 持续累积

触发条件: 脚本任一路径退出:成功路径结束时不清理;set -euo pipefail 下构建失败、产物校验退出码 2/3/4 等失败路径同样直接退出。

证据与影响: BUILD_SRC 和 BUILD_TMP 两个 mktemp -d 创建的目录分别在 31-32 行,全脚本无 rm -rf,也未注册 trap EXIT 清理。 每次构建在 /tmp 残留源码副本及编译产物目录,反复执行会累积占用磁盘空间(/tmp 为 tmpfs 时占用内存)。

修改建议: 在创建临时目录后添加 trap 'rm -rf "$BUILD_SRC" "$BUILD_TMP"' EXIT,保证各退出路径统一清理。

@hygon-ai-reviewer hygon-ai-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review

🟡 建议修改

发现有明确证据的问题,建议核对并处理。

已确认 1 个问题,其中 1 个已添加到对应代码行。

变更概览

本次变更主要包含:

  • 新增 FlashOCC 适配基础文件:HCU 环境接入说明文档、构建产物忽略规则,以及优化包入口,在包导入时调用 install_for_turbo_run 安装兼容层并注册优化目录。
  • 新增 FlashOCC 优化组注册文件 catalog.py,定义 image/BEV 编码器、prepare_inputs、occ 训练的 torch.compile,DataLoader pin_memory 与 persistent_workers,view transformer 几何准备加速及关闭 activation checkpoint 等优化组。
  • 新增 DVR 兼容源码 dvr.cpp,提供 init/render/render_forward 的 C++ 绑定,并校验输入为 CUDA 且连续的张量,供 HCU 扩展在官方源码目录外编译使用。
  • 本批在 flashocc 兼容源目录下新增 DVR 的 CUDA 源文件 dvr.cu,提供占用体素初始化 kernel 和光线渲染 forward kernel 的实现,供 HCU 环境编译使用。
文件审查摘要
文件 变更 审查结果
turbo_physai/optimizations/models/flashocc/scripts/build_flashocc_ops_external.sh 新增 · +78/-0 P3 × 1
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cu 新增 · +747/-0 —
turbo_physai/optimizations/models/flashocc/compatibility.py 新增 · +426/-0 —
model_examples/FlashOCC/README.md 新增 · +195/-0 —
turbo_physai/optimizations/models/flashocc/catalog.py 新增 · +136/-0 —
turbo_physai/optimizations/models/flashocc/configs/optimization.yaml 新增 · +105/-0 —
turbo_physai/optimizations/models/flashocc/voxel_pooling_compile.py 新增 · +89/-0 —
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cpp 新增 · +72/-0 —
turbo_physai/optimizations/models/flashocc/geometry_compile.py 新增 · +55/-0 —
turbo_physai/optimizations/models/flashocc/configs/recipe.yaml 新增 · +36/-0 —
turbo_physai/optimizations/models/flashocc/device_buffers.py 新增 · +34/-0 —
turbo_physai/optimizations/models/flashocc/disable_activation_checkpoint.py 新增 · +30/-0 —
turbo_physai/optimizations/models/flashocc/configs/runtime.yaml 新增 · +29/-0 —
turbo_physai/optimizations/models/flashocc/compile_prepare_inputs.py 新增 · +26/-0 —
turbo_physai/optimizations/models/flashocc/.gitignore 新增 · +25/-0 —
turbo_physai/optimizations/models/flashocc/compile_bev_encoder.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_image_encoder.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_occ_train.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/persistent_workers.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/configs/.optimization.yaml.generation.json 新增 · +23/-0 —

其余 4 个文件未逐项展开。

审查信息
  • 变更统计:24 个文件,+2253/-0。
  • 覆盖情况:共 24 个文件,已完整审查 24 个。
  • 候选问题:1 项;证据复核过滤:0 项;发布前敏感信息保护:0 项。
  • 本服务以 GitHub 提供的 PR diff 为审查主体,PR 描述与按相关性选取的仓库片段仅用于核验;未执行代码或重跑测试,结论仍需维护者核验。
提交修复并推送新 commit 后,将自动审查 PR 的最新版本。

BUILD_SRC=$(mktemp -d /tmp/flashocc-ops-src.XXXXXX)
BUILD_TMP=$(mktemp -d /tmp/flashocc-ops-build.XXXXXX)
PROJECTS="$FLASHOCC_ROOT/projects"
cp "$PROJECTS/setup.py" "$BUILD_SRC/setup.py"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3 · 构建脚本生成的临时目录未清理

触发条件: 每次运行该构建脚本,无论构建成功还是中途失败退出(如编译错误、产物校验 exit 3)。

证据与影响: BUILD_SRC 与 BUILD_TMP 通过 mktemp -d 创建,脚本全程及 set -euo pipefail 各退出路径均无 rm -rf 或 trap 清理逻辑。 /tmp 下每次执行都会残留一份算子源码拷贝及编译产物,反复执行将持续占用磁盘空间。

修改建议: 在创建临时目录后添加 trap 'rm -rf "$BUILD_SRC" "$BUILD_TMP"' EXIT,保证各退出路径均清理。

@hygon-ai-reviewer

hygon-ai-reviewer Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

AI Review

审查尚未完整完成,无法给出整体结论;当前没有可发布的已确认问题,不代表代码没有问题。

部分结果不可用:1/10 批未完整完成,已保留可用问题。

审查未完整完成:以 GitHub 返回的 PR diff 为主体,关联上下文仅用于核验,未运行代码。

覆盖情况:共 25 个文件,已审查 12 个,部分审查 4 个,待审查 9 个。

进度已保存。正在继续处理。

@hygon-ai-reviewer hygon-ai-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review

🟡 建议修改

发现有明确证据的问题,建议核对并处理。

已确认 2 个问题,其中 1 个已添加到对应代码行。

变更概览

本次变更主要包含:

  • 新增 FlashOCC 优化包的包初始化与 .gitignore,并在模型支持列表和模型示例文档中接入 FlashOCC 的应用说明、环境搭建与训练启动流程。
  • 新增 FlashOCC 优化组目录,注册 torch.compile(image/bev encoder、prepare_inputs、forward_occ_train)、DataLoader pin_memory 与 persistent_workers、view transformer 加速准备及关闭激活检查点等包裹组。
  • 新增 DVR 的 C++ 扩展兼容源码 dvr.cpp,提供 init/render/render_forward 的 pybind 绑定,用于在官方源码目录外构建扩展。
  • 在 flashocc 的 compat_sources 目录中新增 DVR 的 HCU 兼容 CUDA 源码,包含体素占用初始化内核与基于 voxel traversal 的光线步进渲染内核,用于以插件目录源码替代官方源码的编译路径。
文件审查摘要
文件 变更 审查结果
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cu 新增 · +747/-0 P3 × 1
turbo_physai/optimizations/models/flashocc/scripts/build_flashocc_ops_external.sh 新增 · +78/-0 P3 × 1
turbo_physai/optimizations/models/flashocc/compatibility.py 新增 · +426/-0 —
model_examples/FlashOCC/README.md 新增 · +195/-0 —
turbo_physai/optimizations/models/flashocc/catalog.py 新增 · +136/-0 —
turbo_physai/optimizations/models/flashocc/configs/optimization.yaml 新增 · +105/-0 —
turbo_physai/optimizations/models/flashocc/voxel_pooling_compile.py 新增 · +89/-0 —
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cpp 新增 · +72/-0 —
turbo_physai/optimizations/models/flashocc/geometry_compile.py 新增 · +55/-0 —
turbo_physai/optimizations/models/flashocc/configs/recipe.yaml 新增 · +36/-0 —
turbo_physai/optimizations/models/flashocc/device_buffers.py 新增 · +34/-0 —
turbo_physai/optimizations/models/flashocc/disable_activation_checkpoint.py 新增 · +30/-0 —
turbo_physai/optimizations/models/flashocc/configs/runtime.yaml 新增 · +29/-0 —
turbo_physai/optimizations/models/flashocc/compile_prepare_inputs.py 新增 · +26/-0 —
turbo_physai/optimizations/models/flashocc/.gitignore 新增 · +25/-0 —
turbo_physai/optimizations/models/flashocc/compile_bev_encoder.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_image_encoder.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_occ_train.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/persistent_workers.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/configs/.optimization.yaml.generation.json 新增 · +23/-0 —

其余 5 个文件未逐项展开。

无法定位到 diff 行的问题(1)

P3 · 梯度累加使用非原子操作,存在数据竞争

  • 文件:turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cu(无法安全定位到当前 diff 行)
  • 触发条件:多条射线线程在渲染时遍历到同一 voxel 并同时回传梯度(同一体素被多条射线穿过即触发,属常见情形)。
  • 证据与影响:内核中以普通语句 grad_sigma[n][ts][v.z][v.y][v.x] += dl_dd * dd_dsigma[i] 对共享元素读-改-写,未使用原子操作;代码内注释亦标注 potential race conditions when writing gradients。 并发写会产生竞争,部分梯度贡献可能丢失,梯度更新不确定,训练结果存在不可复现性。
  • 修改建议:改用 atomicAdd(或先做局部聚合再原子合并)累加梯度;若刻意沿用上游已知行为,请人工评估精度与可复现性影响并确认可接受。
审查信息
  • 变更统计:25 个文件,+2254/-0。
  • 覆盖情况:共 25 个文件,已完整审查 25 个。
  • 候选问题:3 项;证据复核过滤:1 项;发布前敏感信息保护:0 项。
  • 本服务以 GitHub 提供的 PR diff 为审查主体,PR 描述与按相关性选取的仓库片段仅用于核验;未执行代码或重跑测试,结论仍需维护者核验。
提交修复并推送新 commit 后,将自动审查 PR 的最新版本。


mkdir -p "$RUNTIME_ROOT"
BUILD_SRC=$(mktemp -d /tmp/flashocc-ops-src.XXXXXX)
BUILD_TMP=$(mktemp -d /tmp/flashocc-ops-build.XXXXXX)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3 · 构建临时目录在成功和失败路径均未清理

触发条件: 脚本每次运行结束后(无论构建成功或任一步因 set -e 中途失败退出)

证据与影响: BUILD_SRC 与 BUILD_TMP 用 mktemp -d 创建后,脚本没有任何 rm -rf 或 trap 清理逻辑,失败提前 exit 也会遗留这两个目录 每次构建在 /tmp 遗留完整源码副本及编译中间产物,反复构建会持续占用磁盘空间

修改建议: 创建临时目录后增加统一清理,例如 trap 'rm -rf "$BUILD_SRC" "$BUILD_TMP"' EXIT,保证正常与异常退出均回收

@hygon-ai-reviewer hygon-ai-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review

⚪ 审查未完成

部分内容未完成审查,当前结论不代表全部改动。

变更概览

本次变更主要包含:

  • 新增 FlashOCC 优化包的包初始化入口与 .gitignore,并在支持列表和 model_examples 文档中新增 FlashOCC 的接入基线、环境准备与训练启动说明。
  • 新增 FlashOCC 优化组目录定义,声明 torch.compile(image/bev encoder、prepare_inputs、occ 训练)、DataLoader pin_memory 与 persistent_workers、view transformer 几何加速及关闭激活检查点等优化项注册。
  • 新增 DVR 的 HCU 兼容 C++ 扩展接口源码,提供 init/render/render_forward 的 C++ 入口,完成 CUDA/contiguous 参数检查后转发至 CUDA 实现。
  • 在 FlashOcc 插件目录新增 DVR 的 CUDA 兼容源码 dvr.cu,实现占用体素初始化 kernel 与基于光线步进遍历的深度渲染 kernel,作为 HCU 编译扩展的兼容源文件。
文件审查摘要
文件 变更 审查结果
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cu 新增 · +747/-0 —
turbo_physai/optimizations/models/flashocc/compatibility.py 新增 · +426/-0 —
model_examples/FlashOCC/README.md 新增 · +195/-0 —
turbo_physai/optimizations/models/flashocc/catalog.py 新增 · +136/-0 —
turbo_physai/optimizations/models/flashocc/configs/optimization.yaml 新增 · +105/-0 —
turbo_physai/optimizations/models/flashocc/voxel_pooling_compile.py 新增 · +89/-0 —
turbo_physai/optimizations/models/flashocc/scripts/build_flashocc_ops_external.sh 新增 · +78/-0 —
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cpp 新增 · +72/-0 —
turbo_physai/optimizations/models/flashocc/geometry_compile.py 新增 · +55/-0 —
turbo_physai/optimizations/models/flashocc/configs/recipe.yaml 新增 · +36/-0 —
turbo_physai/optimizations/models/flashocc/device_buffers.py 新增 · +34/-0 —
turbo_physai/optimizations/models/flashocc/disable_activation_checkpoint.py 新增 · +30/-0 —
turbo_physai/optimizations/models/flashocc/configs/runtime.yaml 新增 · +29/-0 —
turbo_physai/optimizations/models/flashocc/compile_prepare_inputs.py 新增 · +26/-0 —
turbo_physai/optimizations/models/flashocc/.gitignore 新增 · +25/-0 —
turbo_physai/optimizations/models/flashocc/compile_bev_encoder.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_image_encoder.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_occ_train.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/persistent_workers.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/configs/.optimization.yaml.generation.json 新增 · +23/-0 —

其余 5 个文件未逐项展开。

审查信息
  • 变更统计:25 个文件,+2254/-0。
  • 覆盖情况:共 25 个文件,已完整审查 16 个,部分审查 9 个。
  • 候选问题:0 项;证据复核过滤:0 项;发布前敏感信息保护:0 项。
  • 未完成原因:模型调用失败(4 批)
  • 本服务以 GitHub 提供的 PR diff 为审查主体,PR 描述与按相关性选取的仓库片段仅用于核验;未执行代码或重跑测试,结论仍需维护者核验。

@hygon-ai-reviewer hygon-ai-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review

⚪ 审查未完成

部分内容未完成审查,当前结论不代表全部改动。

变更概览

本次变更主要包含:

  • 新增 FlashOCC 模型接入文档、支持列表条目,以及 flashocc 优化包入口;入口模块在导入时调用 install_for_turbo_run 安装兼容层并注册 catalog。
  • 新增 FlashOCC 优化分组目录,注册 image/BEV 编码器等 torch.compile、DataLoader pin_memory 与 persistent workers、关闭 activation checkpoint、view transformer 几何准备加速等 wrap 目标与替换入口;另加入 DVR 兼容 C++ 绑定源码。
  • 本批在 FlashOCC 插件目录下新增 DVR 的 CUDA 兼容源码 dvr.cu,包含占用初始化内核与光线渲染(体素遍历 raymarching)内核实现,用于 HCU 兼容构建。
  • 本批在 Turbo 插件目录新增 DVR 的 HCU 兼容 CUDA 源码 dvr.cu,包含基于 voxel 遍历的光线渲染前向核(render_forward_cuda_kernel)及主机侧 launch 封装、渲染反向核的兼容实现。
文件审查摘要
文件 变更 审查结果
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cu 新增 · +747/-0 —
turbo_physai/optimizations/models/flashocc/compatibility.py 新增 · +426/-0 —
model_examples/FlashOCC/README.md 新增 · +198/-0 —
turbo_physai/optimizations/models/flashocc/catalog.py 新增 · +136/-0 —
turbo_physai/optimizations/models/flashocc/configs/optimization.yaml 新增 · +105/-0 —
turbo_physai/optimizations/models/flashocc/voxel_pooling_compile.py 新增 · +89/-0 —
turbo_physai/optimizations/models/flashocc/scripts/build_flashocc_ops_external.sh 新增 · +78/-0 —
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cpp 新增 · +72/-0 —
turbo_physai/optimizations/models/flashocc/geometry_compile.py 新增 · +55/-0 —
turbo_physai/optimizations/models/flashocc/configs/recipe.yaml 新增 · +36/-0 —
turbo_physai/optimizations/models/flashocc/device_buffers.py 新增 · +34/-0 —
turbo_physai/optimizations/models/flashocc/disable_activation_checkpoint.py 新增 · +30/-0 —
turbo_physai/optimizations/models/flashocc/configs/runtime.yaml 新增 · +29/-0 —
turbo_physai/optimizations/models/flashocc/compile_prepare_inputs.py 新增 · +26/-0 —
turbo_physai/optimizations/models/flashocc/.gitignore 新增 · +25/-0 —
turbo_physai/optimizations/models/flashocc/compile_bev_encoder.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_image_encoder.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_occ_train.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/persistent_workers.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/configs/.optimization.yaml.generation.json 新增 · +23/-0 —

其余 5 个文件未逐项展开。

审查信息
  • 变更统计:25 个文件,+2257/-0。
  • 覆盖情况:共 25 个文件,已完整审查 17 个,部分审查 8 个。
  • 候选问题:0 项;证据复核过滤:0 项;发布前敏感信息保护:0 项。
  • 未完成原因:模型请求超时(1 批)
  • 本服务以 GitHub 提供的 PR diff 为审查主体,PR 描述与按相关性选取的仓库片段仅用于核验;未执行代码或重跑测试,结论仍需维护者核验。

@yh-vino yh-vino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

主要问题:模型被改成了外部包 flashocc_optimization,只有源码放在 runtime.yaml 写死的路径时才能导入,安装后的包和 --model flashocc 都用不了;runtime.yaml 里仍然有本机的网卡和路径配置;README 第 81 行的中文引号会导致 3.5 节执行失败。另外数据目录、mmdet3d 的位置、权重来源和训练参数仍然和上游不一致,第三方声明也还没补。

PR 描述还缺:已执行的测试命令和结果、README 训练命令在 HCU 上实际跑了多少步、--log-report 中各 Group 是否都已应用、是否做过精度验证。

具体见行内评论。

projects.mmdet3d_plugin.models.detectors.bevdet.BEVDet.__init__:
- ast-v1:a9d201d3a42fa4ad7d96869ebf7e50b536ffa90193e3b45f68d6e275fa6d5fcf
optimization_modules:
- flashocc_optimization.catalog

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

optimization_modules 改成了 flashocc_optimization.catalog,新增的 flashocc_optimization/__init__.py 把 __path__ 指向模型目录,生成记录的 base 也从 package 改成了 config。只有模型目录本身在 sys.path 上,顶层的 flashocc_optimization 才能导入,现在完全靠 runtime.yaml 里写死的 PYTHONPATH=/workspace/FlashOCC_TurboPhysAI/TurboPhysAI/turbo_physai/optimizations/models/flashocc 保证。按 README 安装 wheel 后,只要源码不在这个路径,导入就会失败,rank 以退出码 91 中止,--model flashocc 也用不了。

另外同一批文件会以 turbo_physai.optimizations.models.flashocc.* 和 flashocc_optimization.* 两个模块名各加载一次,所以 install_compatibility 里才需要额外加查重 finder 的代码。

请参照 BEVFormer,改回 turbo_physai.optimizations.models.flashocc.catalog(catalog 里的 f"{__package__}..." 随之恢复,重新生成配置),删掉 flashocc_optimization/、sitecustomize.py 和 runtime.yaml 里的 PYTHONPATH,兼容层只通过包的 __init__ 安装:引擎在每个 rank 导入 catalog 时会先执行它,失败时也会按约定以 91 中止。构建脚本里的导入也一起改回。

set:
# This container's deployment settings, not portable model defaults.
HIP_VISIBLE_DEVICES: '0,1,2,3,4,5,6,7'
NCCL_SOCKET_IFNAME: lo

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个文件是随包交付的默认配置,但以下内容只适用于当前容器(注释里也写了不可移植),请删掉:

  • NCCL_SOCKET_IFNAME/GLOO_SOCKET_IFNAME: lo 只能单机用;
  • NCCL_TOPO_FILE: 'null';
  • FLASHOCC_ROOT、FLASHOCC_RUNTIME_ROOT、FLASHOCC_DATA_BASE 和 PYTHONPATH 里写死的 /workspace/... 路径(PYTHONPATH 见 optimization.yaml 那条);
  • PYTHONDONTWRITEBYTECODE。

参照 BEVFormer 的 runtime.yaml,只保留经过验证的性能相关变量;网卡等部署相关的设置由用户用 --set 覆盖。

### 3.5 准备外置 MMDetection3D 依赖并构建 HCU 扩展

```bash
mkdir -p “/workspace/FlashOCC_TurboPhysAI/static_data”

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里用的是中文引号 “”,shell 不会把它们当作引号,而是当成路径的一部分:结果是在当前目录下建出一个名为 “ 的相对目录,/workspace/FlashOCC_TurboPhysAI/static_data 并没有创建。随后构建脚本最后的自检会调用 install_compatibility,它要求 static_data 目录存在,否则抛 FileNotFoundError,3.5 节因此执行失败;第 4 节第一步的 cd static_data 也会失败。请改成英文双引号。


```bash
cd "/workspace/FlashOCC_TurboPhysAI"
git clone --branch flashocc-optimization \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

--branch flashocc-optimization 只存在于作者的 fork,HYGON-AI 仓库里没有这个分支,第 11 行的链接也指向 fork,合入后这条命令会失败。请按 BEVFormer、BEVFusion 的写法,改为参照安装指南使用产品镜像或从 main 安装。镜像名 autonomous-driving:torch2.10-dtk26.04 也请改成安装指南里的说法。

mkdir -p "/workspace/FlashOCC_TurboPhysAI/static_data/ckpts"
curl -fL --retry 5 --retry-delay 3 \
-o "/workspace/FlashOCC_TurboPhysAI/static_data/ckpts/bevdet-r50-cbgs.pth" \
https://haihub-model-bj-1251001002.cos.ap-beijing.myqcloud.com/HyperDrive/ckpt/bevdet-r50-cbgs.pth

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bevdet-r50-cbgs.pth 从 haihub-...myqcloud.com 下载,这不是官方地址。请改为上游给出的来源(FlashOCC 配置里的 load_from 来自 BEVDet 的官方发布)。

return cleaned


def find_prebuilt_dvr(build_root: str | os.PathLike[str]) -> Path | None:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

find_prebuilt_dvr 优先找写死的 py310_cpu,找不到就取排序后最后一个 */dvr/dvr.so,可能加载到用别的源码或别的 torch 版本编出来的 dvr。cpp_extension.load 本身已经按源码和编译参数做了缓存,请删掉这个函数,直接调用 original_load。第 249 行检查的是本仓库自带的源码里有没有 scalar_type,这个条件永远成立,也可以删掉。

*.egg-info/
build/
dist/
logs/

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

除了 compat_sources/dvr/*.hip,其余条目(logs/、work_dirs/、*.pth、.env、新加的 validation/ 等)都和这个插件无关,是开发环境的产物,请删掉。

),
)

PIN_MEMORY = group(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

flashocc.loader.pin_memory 替换的是 mmdet 的框架入口 build_dataloader,实现不依赖 FlashOCC 的结构、配置或数据字段,对任何调用方行为都一样,满足放入公共优化的条件。建议迁到 turbo_physai/optimizations/common/ 下对应框架的目录,FlashOCC 的 Recipe 用 extends 引入,其他基于 mmdet3d 训练的模型也能复用。迁入后需要按公共优化的要求补测试,可以在本 PR 做,也可以后续单独提。

grid_config = getattr(self, "grid_config", {})
axes = [grid_config.get(axis) for axis in ("x", "y", "z")]
if all(axis is not None for axis in axes):
self.grid_size_cpu = tuple(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

grid_size_cpu 赋值后没有任何地方使用,确认是否必要,不必要就删掉。另外 grid_size 注册成 buffer 后会跟着模型移到 HCU 上,上游 voxel_pooling_v2 每次前向都会执行几次 int(self.grid_size[i]),每次都要做一次设备同步。如果当初是打算用 grid_size_cpu 避免这一点,请把它接上。

backbone_cfg = kwargs.get("img_backbone")

if not isinstance(backbone_cfg, dict):
return original(self, *args, **kwargs)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

原来拿不到 dict 形式的配置时会抛 TypeError,现在改成直接调用原函数。这样 Group 在报告里显示为已应用,但 checkpoint 实际上没有关掉。请确认什么情况下会走到这个分支;如果不会走到,就恢复抛错。

@hygon-ai-reviewer hygon-ai-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review

🟡 建议修改

发现有明确证据的问题,建议核对并处理。

已确认 1 个问题,其中 0 个已添加到对应代码行。

变更概览

本次变更主要包含:

  • 在模型支持列表文档中新增 FlashOCC(FlashOCC-R50,ResNet-50)条目,附基线提交哈希与模型文档链接,格式与表中已有行一致。
  • 新增 FlashOCC 应用说明文档,介绍在 HCU 环境中基于官方 FlashOCC 仓库使用 TurboPhysAI 优化的接入基线、容器环境搭建与源码准备步骤。
  • 新增 FlashOCC 模型的 README 部署文档,提供环境准备、官方源码与外置 MMDetection3D 依赖拉取、HCU 扩展构建及 nuScenes 数据准备步骤。
  • model_examples/FlashOCC 下新增 README,说明 nuScenes 数据准备、通过 runpy 调用标注生成脚本、预训练权重下载,以及用 turbo-physai run 启动八卡训练的命令与配置路径。
文件审查摘要
文件 变更 审查结果
model_examples/FlashOCC/README.md 新增 · +198/-0 P3 × 1
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cu 新增 · +747/-0 —
turbo_physai/optimizations/models/flashocc/compatibility.py 新增 · +426/-0 —
turbo_physai/optimizations/models/flashocc/catalog.py 新增 · +136/-0 —
turbo_physai/optimizations/models/flashocc/configs/optimization.yaml 新增 · +105/-0 —
turbo_physai/optimizations/models/flashocc/voxel_pooling_compile.py 新增 · +89/-0 —
turbo_physai/optimizations/models/flashocc/scripts/build_flashocc_ops_external.sh 新增 · +78/-0 —
turbo_physai/optimizations/models/flashocc/compat_sources/dvr/dvr.cpp 新增 · +72/-0 —
turbo_physai/optimizations/models/flashocc/geometry_compile.py 新增 · +55/-0 —
turbo_physai/optimizations/models/flashocc/configs/recipe.yaml 新增 · +36/-0 —
turbo_physai/optimizations/models/flashocc/device_buffers.py 新增 · +34/-0 —
turbo_physai/optimizations/models/flashocc/disable_activation_checkpoint.py 新增 · +30/-0 —
turbo_physai/optimizations/models/flashocc/configs/runtime.yaml 新增 · +29/-0 —
turbo_physai/optimizations/models/flashocc/compile_prepare_inputs.py 新增 · +26/-0 —
turbo_physai/optimizations/models/flashocc/.gitignore 新增 · +25/-0 —
turbo_physai/optimizations/models/flashocc/compile_bev_encoder.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_image_encoder.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/compile_occ_train.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/persistent_workers.py 新增 · +24/-0 —
turbo_physai/optimizations/models/flashocc/configs/.optimization.yaml.generation.json 新增 · +23/-0 —

其余 5 个文件未逐项展开。

无法定位到 diff 行的问题(1)

P3 · mkdir 命令使用弯引号,不会创建预期的 static_data 目录

  • 文件:model_examples/FlashOCC/README.md(无法安全定位到当前 diff 行)
  • 触发条件:用户按 3.5 节复制执行该 mkdir 命令 preparing 数据目录时。
  • 证据与影响:该命令用中文弯引号而非半角直引号包裹路径,shell 将弯引号视为路径字符本身,按相对路径创建以弯引号开头的目录树,而非文档其余部分引用的绝对路径目录。 预期的 /workspace/FlashOCC_TurboPhysAI/static_data 目录未被创建,后续按文档放入 nuScenes 数据时会因目标路径不存在而失败或放错位置,造成明确的部署使用错误。
  • 修改建议:将命令中的弯引号替换为半角直引号,与文档其余命令保持一致。
审查信息
  • 变更统计:25 个文件,+2257/-0。
  • 覆盖情况:共 25 个文件,已完整审查 25 个。
  • 候选问题:2 项;证据复核过滤:1 项;发布前敏感信息保护:0 项。
  • 本服务以 GitHub 提供的 PR diff 为审查主体,PR 描述与按相关性选取的仓库片段仅用于核验;未执行代码或重跑测试,结论仍需维护者核验。
提交修复并推送新 commit 后,将自动审查 PR 的最新版本。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants