Skip to content

[DEV] 新增 fused FFN 算子和资源-任务互感知分析器 #1153

@ZhouBencheng

Description

@ZhouBencheng

目标版本
main

功能描述
新增两个相互独立的模块,均通过编译选项或环境变量控制,默认关闭,不影响现有算子的源码、签名与默认编译路径:

  1. Fused FFN 算子infiniopFusedFFN

    将 LLM decode 阶段 FFN 主路径融合为单算子:
    out = Down( SwiGLU( GateUp( RMSNorm(in) ) ) ) + residual

    • 公开 C API:include/infiniop/ops/fused_ffn.h
    • 形状校验支持 gate_up_weight / down_weight 各两种 layout
    • Backend 覆盖:CPU(纯 C++ reference)/ NVIDIA / Iluvatar / Hygon / Ali / QY / MetaX
    • 可选 deep-fused 路径(INFINIOP_FUSED_FFN_DEEP=1 走调度器、=2 强制)将 GateUp GEMM 与 SwiGLU 合并为单 kernel,消除中间缓冲的 HBM 往返,对小 ntok 场景友好
    • 测试覆盖 LLaMA-7B / 13B / Qwen 三种典型架构 × {F16, BF16} × {with / without residual}
  2. 资源-任务互感知分析器(编译选项 --mutual-awareness=y

    在算子调度链路上提供运行时上下文采集与目标驱动的 kernel 选择能力:

    • 算子 trace 环(OpTraceRing)、推理阶段识别(PhaseDetector:PREFILL / DECODE / ATTENTION_DENSE 等)、GPU 资源采样(ResourceSensor:NVIDIA NVML / Iluvatar IXML / MetaX / CPU
      /proc/meminfo)、优化目标生成(IntentGenerator:LATENCY_FIRST / THROUGHPUT_FIRST / MEMORY_SAFE / STABILITY_FIRST)
    • OpDispatcher 新增 goal-aware 重载(向后兼容,旧算子可继续只注册 device 维度),仅 Attention::execute 接入消费
    • infinirt 同步新增统一资源快照 API:infinirtGetMemInfo / infinirtGetDeviceResourceSnapshot,按平台分层后端实现,未启用平台返回 NOOP / fallback
    • Python 绑定 infinicore.analyzer 在启用时自动暴露

    关闭该选项时,analyzer 源文件不参与编译、OpDispatcher 无 goal-aware 分支、infinirt 新增 API 走 NOOP,零 ABI 与零运行时影响。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions