4. TopsGraphCompiler

表 4.1 数据类型

接口

解释

topsgraphProgram

void*类型的透明句柄,用于整个compiler阶段

topsgraphResult

枚举变量,作为compiler所有接口的返回类型

表 4.2 接口列表

接口

解释

topsgraphCreateProgramFromString

通过hlir的字符串创建一个topsgraph程序

topsgraphCreateProgramFromModule

通过hlir module(燧原基于mlir定义的模型建一个topsgraph程序)

topsgraphCompileProgram

编译topsgraph程序

topsgraphDestroyProgram

释放topsgraph程序

topsgraphGetBinSize

从topsgraph程序中获取binary(二进制文件,配合runtime接口 可以运行在燧原科技加速卡上)的大小

topsgraphGetBin

从topsgraph程序中获取binary

topsgraphSaveBinFile

将binary保存成文件

4.1. topsgraphCreateProgramFromString

topsgraphResult topsgraphCreateProgramFromString(topsgraphProgram* program,
                                                const char* module);
参数:
  • program - topsgraph程序,透明句柄,用于整个编译过程

  • module - hlir module(燧原基于mlir定义的模型)的字符串

返回值:
  • 输出 topsgraphResult

4.2. topsgraphCreateProgramFromModule

topsgraphResult topsgraphCreateProgramFromModule(topsgraphProgram* program,
                                                hlir::Module* module);
参数:
  • program - topsgraph程序,透明句柄,用于整个编译过程

  • module - hlir module指针

返回值:
  • 输出 topsgraphResult

4.3. topsgraphDestroyProgram

topsgraphResult topsgraphCompileProgram(topsgraphProgram program,
                                        int options_num,
                                        const char** options);
参数:
  • program - topsgraph程序,透明句柄,用于整个编译过程

  • options_num - 输入参数的个数

  • options_num - 输入参数,options需要按照指定的键值对(key-vlaue)进行设置,键和值之间用'='连接。当前版本支持三种键,分别是-arch、 -recource和-hlir。具体信息可以参考topsgraphCompiler用户手册。

返回值:
  • 输出 topsgraphResult

4.4. topsgraphDestroyProgram

topsgraphResult topsgraphDestroyProgram(topsgraphProgram* program);
参数:
  • program - topsgraph程序,透明句柄,用于整个编译过程

返回值:
  • 输出 topsgraphResult

4.5. topsgraphGetBin

topsgraphResult topsgraphGetBinSize(topsgraphProgram program,
                                    size_t* binary_size);
参数:
  • program - topsgraph程序,透明句柄,用于整个编译过程

  • binary_size - size_t类型的指针,用于获取binary的大小

返回值:
  • 输出 topsgraphResult

4.6. topsgraphGetBin

topsgraphResult topsgraphGetBin(topsgraphProgram program,
                                char* binary);
参数:
  • program - topsgraph程序,透明句柄,用于整个编译过程

  • binary - char类型的指针,需要用户自己提前分配好内存

返回值:
  • 输出 topsgraphResult

4.7. topsgraphDestroyProgram

topsgraphResult topsgraphDestroyProgram(topsgraphProgram* program);
参数:
  • program - topsgraph程序,透明句柄,用于整个编译过程

返回值:
  • 输出 topsgraphResult

4.8. topsgraphDestroyProgram

topsgraphResult topsgraphSaveBinFile(topsgraphProgram program,
                                    const char* save_file);
参数:
  • program - topsgraph程序,透明句柄,用于整个编译过程

  • save_file - 保存文件路径

返回值:
  • 输出 topsgraphResult