• C
    add cinn_launch_op for using CINN to optimize graph (#36600) · 0a963ee9
    CtfGo 提交于
    增加CinnLaunchOp,负责执行Cinn子图编译的结果,要点如下:
    1. 在子图划分的BuildCinnPass中,每个子图在原图中会被替换为该CinnLaunchOp,由它来调用Cinn进行子图编译、执行的功能。
    2. CinnLaunchOp的输入/输出即为子图的输入和输出,另外增加`compilation_key`属性,它可由该属性key从全局Cache中获取子图对象、编译结果,该属性由BuildCinnPass在创建Op时进行设置
    3. CinnLaunchOp功能实现的流程为:
            - 从全局Cache中获取子图对象
            - 从全局Cache中获取子图编译结果,未命中cache时进行即时编译
            - 根据编译结果的变量信息(数据类型、shape)初始化运行时数据,分配内存/显存
            - 将运行时数据打包为参数,调用cinn的可执行对象runtime program进行计算
            - 子图运行结果通过参数指针同步到paddle侧的tensor
    0a963ee9
cinn_launch_op.cc 4.0 KB