已关闭
[Requirement|需求建议]: OptimizedTransducer算子AscendC实现贡献 #298
gcw_wUGgi1cC创建于 2025年12月29日关闭于 5月15日
gcw_wUGgi1cC
2025年12月29日 评论:
2025年12月29日 评论:
/assign


2025年12月29日 将 gcw_wUGgi1cC 设为负责人
2025年12月29日 关联了pull request:【社区任务】optimized_transducer算子设计文档
5月15日 添加了label:Accepted
Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
Backgroud(背景信息)
使用AscendC对业界开源算法optimized_transducer进行重构,实现了OptimizedTransducer算子对Atlas 800I/T A2硬件的适配。
Origin(信息来源)
外部来源
Benefit / Necessity (价值/作用)
OptimizedTransducer算子主要功能是为端到端语音识别提供无需强制对齐的序列建模能力,核心作用是可以自动对齐,无需人工标注音频和文本的对齐关系,同时可以变长序列处理,直接处理不同长度的音频和文本序列,是实现CTC的改进版本,更适合语音识别。
Design(设计方案)
算子描述
输入输出参数描述:
Host侧设计
1)分核策略
按照logits输入的batch大小进行分核,如果batch数量不超过核心数量,则每个核心单独处理一个batch,否则分大核和小核,每个大核多处理一个batch
2)单核内切分策略
每次搬运的logtis数量以V为基本单位,充分使用UB的原则,以V为基本块进行UB划分
Kernel侧设计
进行Init和Process两个阶段,其中Process包括概率计算(ComputeLogProbs)、前向DP(ComputeAlpha)、后向DP(ComputeBeta)、梯度计算(ComputeGrad)四个阶段。
当数据类型是float16时,为了满足精度要求,同时为了方便scalar单元计算,会使用cast指令转为float32处理。