已关闭
移除 dynamic_rnn 系列 TF 插件并修复 einsum TF 插件动态输入映射 #5619
Nice try创建于  1 天前关闭于  1 天前
Nice try
Nice try成员
1 天前 创建

Backgroud(背景信息)

rnn/dynamic_rnn 与 rnn/dynamic_rnnv2 的 framework 目录保留一组基于 REGISTER_CUSTOM_OP 注册的 TensorFlow 插件
(block_lstm_tf_plugin.cpp / dynamic_rnn_tf_plugin.cpp / dynamic_rnnv2_tf_plugin.cpp),用于将 TF 源算子
BlockLSTM、DynamicRNN/DynamicRnn、DynamicRnnV2/DynamicRnnv2WithoutSeqlength/DynamicRnnv2WithSeqlength 映射并融合解析
为 CANN DynamicRNN/DynamicRNNV2 算子。这批 TF 插件此前迁移到本仓后引发部分用例 ATC 失败,先行下线处理。
另外 matmul/batch_mat_mul_v3 下 einsum TF 插件仍使用旧的静态映射注册方式,与 Einsum 算子
DYNAMIC_INPUT(x) + REQUIRED_ATTR(N) 的变长输入原型不匹配,一并修复。ONNX 插件路径保留不受影响。

Origin(信息来源)

(建议由 PR 作者补充说明)

Benefit / Necessity (价值/作用)

  • 移除 dynamic_rnn 系列算子遗留的 TensorFlow 框架映射/融合解析代码,减小维护面与插件编译范围;
  • einsum TF 插件改用 ParseParamsFn + AutoMappingFnDynamic 动态映射,将 TF 源输入 "in" 映射到动态输入 "x"
    并同步数量属性 N,使变长输入场景的映射与算子原型(DYNAMIC_INPUT(x) / REQUIRED_ATTR(N))一致;
  • 构建系统(cmake/func.cmake)按 glob(*_tf_plugin.cpp)自动收集 tf_plugin 源文件,删除后插件即不参与编译注册,
    无需额外构建配置改动。

Design(设计方案)

  1. 删除 3 个 *_tf_plugin.cpp:
    • rnn/dynamic_rnn/framework/block_lstm_tf_plugin.cpp:TF BlockLSTM → DynamicRNN(BLOCKLSTM) 属性/子图解析;
    • rnn/dynamic_rnn/framework/dynamic_rnn_tf_plugin.cpp:TF DynamicRNN/DynamicRnn → DynamicRNN 融合子图解析
      (Transpose → time_major、Const(lstm_cell/add/y) → forget_bias、输入 HWCN);
    • rnn/dynamic_rnnv2/framework/dynamic_rnnv2_tf_plugin.cpp:TF DynamicRnnV2 系列 → DynamicRNN/DynamicRNNV2。
  2. matmul/batch_mat_mul_v3/framework/einsum_tf_plugin.cpp:
    注册由 ParseParamsByOperatorFn 改为 ParseParamsFn,映射改用 AutoMappingFnDynamic,value["in"]=("x","N"),
    与 concat_offset_tf_plugin.cpp 动态映射用法一致。
  3. 保留:framework/CMakeLists.txt(仅 add_onnx_plugin_sources())无需改动;ONNX 插件
    npu_lstm_onnx_plugin.cpp、npu_lstm_cell_onnx_plugin.cpp 不受影响。

关联 PR:https://gitcode.com/cann/ops-nn/pull/9925

likedislike
Nice tryNice try成员
1 天前 添加了label:requirement
Nice try
Nice try成员
1 天前 评论:

/assign @Nice_try

likedislike
CANN-robotCANN-robot成员
1 天前 将 Nice_try 设为负责人
CANN-robotCANN-robot成员
1 天前 关闭了 issue
CANN-robotCANN-robot成员
1 天前 添加了label:resolved