下载
中文
注册

构造函数与解析函数

函数功能

构造一个TensorData。

构造方式1:指定了tensor数据的地址以及用于管理tensor数据的函数manager。

构造方式2:指定了tensor数据的地址、用于管理tensor数据的函数manager、tensor数据所占内存大小、tensor数据所在的位置(host、device)。

构造方式3:移动构造形式。

注意:若manager为nullptr,则认为addr就是tensor的数据地址。否则,tensor数据的地址由manager给出。

函数原型

  • 构造函数

    TensorData(TensorAddress addr = nullptr, const TensorAddrManager manager = nullptr)

    TensorData(TensorAddress addr, const TensorAddrManager manager, size_t size, TensorPlacement placement)

    TensorData(TensorData &&other) noexcept
    TensorData(const TensorData &) = delete;
  • 析构函数

    ~TensorData

参数说明

参数

输入/输出

说明

addr

输入

tensor数据的地址

using TensorAddress = void *;

manager

输入

tensor data的管理函数,若manager为空,则认为addr就是tensor的数据地址,且此数据不需要被释放

using TensorAddrManager = ge::graphStatus (*)(TensorAddress addr, TensorOperateType operate_type, void **out);
enum TensorOperateType {
  kGetTensorAddress,  ///< 获取Tensor的地址  
  kFreeTensor,        ///< 释放Tensor  
  kPlusShareCount,    ///< 共享Tensor  
  kTensorOperateType
};

size

输入

tensor数据所占的内存大小

placement

输入

tensor数据所在的设备位置

返回值说明

初始化后的TensorData对象

约束说明

无。

调用示例

auto addr = reinterpret_cast<void *>(0x10);
TensorData td(addr, HostAddrManager, 100U, kOnHost);