# FillV2 — MindSpore Signal+ 使用手册 alpha 文档

# FillV2

创建一个Tensor，根据指定的shape，将其值由value进行填充。

输入：

  - value - 填充值的地址

  - length - 由指定shape计算出的张量总长度。

  - type_size - 填充值的数据类型的长度

  - core_mask - 核掩码。

输出：

  - output - 输出地址。

支持平台：

  `FT78NE` `MT7004`

备注

- FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128

- MT7004 支持fp16, fp32, int16, int32, cplx64

共享存储版本:

void anytype_fillv2_s(void *value, void *output, int length, int type_size, int core_mask)

对于不同数据类型，改变type_size参数即可。

C调用示例：

     1void main() {
     2    float* input = (float*)0xA0000000;
     3    float value = 789.1;
     4    float* output = (float*)0x88000000;
     5    int i;
     6    int length = 1000;
     7    int core_mask = 0b1111;
     8    int core_id = get_core_id();
     9    int logic_core_id = GetLogicCoreId(core_mask, core_id);
    10    int core_num = GetCoreNum(core_mask);
    11    if (logic_core_id == 0) {
    12        *input = value;
    13    }
    14    sys_bar(0, core_num); // 初始化参数完成后进行同步
    15    anytype_fillv2_s(input, output, length, 4, core_mask);
    16}

私有存储版本:

void anytype_fillv2_p(void *value, void *output, int length, int type_size, int core_mask)

C调用示例：

     1void main() {
     2    float* input = (float*)0x10000000;
     3    float value = 789.1;
     4    float* output = (float*)0x10010000;
     5    int i;
     6    int length = 1000;
     7    int core_mask = 0b0001; // 要启动哪一个核，就将哪一位设置为1，只允许存在一个核心启动
     8    *input = value;
     9    anytype_fillv2_p(input, output, length, 4, core_mask);
    10}