GetCompiledGraphSummary
函数功能
查询图编译结果的概要信息。包括Feature内存大小、Const内存大小、Stream、Event数目及内存是否可刷新等信息。您可以根据该信息,自行申请内存,再通过如下接口设置或更新Feature内存、Const内存基址:
- 通过SetGraphConstMemoryBase设置Const内存基址。内存大小从GetCompiledGraphSummary>GetConstMemorySize接口中获取。
- 通过UpdateGraphFeatureMemoryBase更新Feature内存基址,内存大小从GetCompiledGraphSummary>GetFeatureMemorySize接口中获取。
- 通过SetGraphFixedFeatureMemoryBase设置Fixed Feature内存基地址,内存大小从GetCompiledGraphSummary>GetFixedFeatureMemorySize接口中获取。
- 通过SetGraphFixedFeatureMemoryBaseWithType设置图的不同内存类型的Fixed Feature内存基地址,内存大小从GetCompiledGraphSummary>GetAllFeatureMemoryTypeSize接口中获取。
- 通过UpdateGraphRefreshableFeatureMemoryBase更新除了Fixed之外可刷新的Feature内存基址,内存大小从GetCompiledGraphSummary>GetRefreshableFeatureMemorySize接口中获取。
函数原型
CompiledGraphSummaryPtr GetCompiledGraphSummary(uint32_t graph_id);
参数说明
参数名 |
输入/输出 |
描述 |
---|---|---|
graphId |
输入 |
子图对应的id。 |
返回值
参数名 |
类型 |
描述 |
---|---|---|
- |
CompiledGraphSummaryPtr |
图编译结果的概要信息CompiledGraphSummary的share_ptr。 CompiledGraphSummary具体结构如下所示: class GE_FUNC_VISIBILITY CompiledGraphSummary { public: class Builder; class SummaryData; ~CompiledGraphSummary(); CompiledGraphSummary &operator=(const CompiledGraphSummary &) & = delete; CompiledGraphSummary(const CompiledGraphSummary &) = delete; // 返回graph是否是静态编译的,只有在静态编译的情况下,才可以使用后续的获取Summary信息的接口(GetFixedFeatureMemorySize/GetAllFeatureMemoryTypeSize接口除外) bool IsStatic() const; // 获取编译后的Const内存大小 Status GetConstMemorySize(size_t &size) const; // 获取编译后的全量Feature内存大小(包含Fixed固定内存) Status GetFeatureMemorySize(size_t &size) const; // 获取Feature基址是否可刷新 Status GetFeatureMemoryBaseRefreshable (bool &v) const; // 获取编译后逻辑地址相同的graph输入索引和输出索引对 Status GetIOIndexesWithSameAddr(std::vector<std::pair<uint32_t, uint32_t>> &io_indexes) const; // 获取Stream数目 Status GetStreamNum(size_t &num) const; // 获取Event数目 Status GetEventNum(size_t &num) const; // 获取图编译的输出shape,输出shape可用于计算outputs所占内存大小 Status GetOutputShapes(std::vector<ge::Shape> &shapes) const; // 获取图编译的输出Dtypes Status GetOutputDtypes(std::vector<ge::DataType> &dtypes) const; //获取输入(refdata)在各个device上的切分信息 Status GetInputShardMethod(std::map<std::string, std::map<int32_t, std::vector<std::pair<int64_t, int64_t>>>>&device_id_to_tensor_deployment) const; //用于获取Fixed内存总大小(适用于静态图和动态图) Status GetFixedFeatureMemorySize(size_t &size) const; //用于获取除了Fixed之外可刷新内存的总大小 Status GetRefreshableFeatureMemorySize(size_t &sizes) const; //用于获取所有内存类型的Feature内存列表,当前仅包含Fixed的内存(适用于静态图和动态图) std::vector<FeatureMemoryPtr> GetAllFeatureMemoryTypeSize() const; private: CompiledGraphSummary() = default; std::shared_ptr<SummaryData> data_{nullptr}; }; Status返回值有如下两个取值:
GetAllFeatureMemoryTypeSize返回值为:图编译结果中Feature memory信息FeatureMemory的shared_ptr FeatureMemory具体结构如下所示: class GE_FUNC_VISIBILITY FeatureMemory { public: class Builder; class FeatureMemoryData; ~FeatureMemory(); FeatureMemory &operator=(const FeatureMemory &) & = delete; FeatureMemory(const FeatureMemory &) = delete; //内存类型 MemoryType GetType() const; //内存大小 size_t GetSize() const; //是不是Fixed内存 bool IsFixed() const; private: FeatureMemory() = default; std::shared_ptr<FeatureMemoryData> data_{nullptr}; }; |
约束说明
在调用本接口前,必须先调用CompileGraph接口进行图编译。
父主题: Graph运行接口