pypto.index_put_【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√功能说明根据索引indices将values的多个或多块数据更新到self中。如果accumulate参数为True则表示在更新时values和原本存储在相应位置的值进行累加如果accumulate为False则会直接覆盖原本的值。函数原型index_put_(input: Tensor, indices: tuple, values: Tensor, accumulate: bool False) - None参数说明参数名输入/输出说明input输入源操作数。支持的类型为Tensor。Tensor支持的数据类型为DT_INT8DT_UINT8DT_INT16DT_UINT16DT_INT32DT_UINT32DT_INT64DT_UINT64DT_BF16DT_FP16DT_FP32。不支持空TensorShape仅支持1-4维Shape Size不大于2147483647即INT32_MAX。indices输入Tensor类型的元组每个Tensor表示一个维度的索引。支持的类型为tuple[Tensor], 每个Tensor均为一维且维度相同。Tensor支持的数据类型为DT_INT8DT_UINT8DT_INT16DT_UINT16DT_INT32DT_UINT32DT_INT64DT_UINT64。不支持空Tensortuple中Tensor的个数不大于input的维数。values输入待更新到input中的值。支持的类型为Tensor。Tensor支持的数据类型为DT_INT8DT_UINT8DT_INT16DT_UINT16DT_INT32DT_UINT32DT_INT64DT_UINT64DT_BF16DT_FP16DT_FP32。不支持空Tensor维数不大于input的维数。accumulate输入可选累加参数默认为False。支持的类型为bool。返回值说明对input进行原地操作无返回值约束说明indices中的一维Tensor维度相同不支持broadcast。indices中第i个Tensor中的值须小于input中第i-1维的Shape大小。当indices的选取会对同一个位置进行重复更新时结果是未确定的。values不支持broadcast其第0维的shape须和indices中一维Tensor的shape相同。若values的维度大于等于2那么其除第0维外的后i个维度i0和input后i个维度的shape完全相同。input的维度、indices中Tensor的个数和values的维度之间需满足(input.shape.size) 1 (indices.size) (values.shape.size)。input和values的数据类型须相同。viewshape为一维针对indices中的每个一维Tensor和values的第0维进行切分values的其它维度不做切分。TileShape的维度不超过values的维度针对indices中的每个一维Tensor和values进行切分。indices和values的TileShape大小总和不能超过UB内存的大小。调用示例TileShape设置示例调用该operation接口前应通过set_vec_tile_shapes设置TileShape。TileShape的维度不超过values的维度若TileShape的维度小于values的维度则TileShape在切分时会自动补全后续维度与values的shape一致。如输入input为[m, n, p]输入indices为([t])输入values为[t, n, p], TileShape设置为[t1, n1, p1]则t1用于切分t轴n1用于切分n轴p1用于切分p轴m轴不切。如输入input为[m, n, p]输入indices为([t])输入values为[t, n, p], TileShape设置为[t1, n1]则TileShape会自动补全为[t1, n1, p]t1用于切分t轴n1用于切分n轴m轴和p轴不切。如输入input为[m, n, p]输入indices为([t], [t])输入values为[t, p], TileShape设置为[t1, p1], 则t1用于切分t轴p1用于切分p轴m轴和n轴不切。pypto.set_vec_tile_shapes(4, 16)接口调用示例x pypto.tensor([3, 3], pypto.DT_INT32) indices0 pypto.tensor([2], pypto.DT_INT32) indices (indices0, ) values pypto.tensor([2, 3], pypto.DT_INT32) accumulate True # accumulate is True pypto.index_put_(x, indices, values, accumulate) # accumulate is False(default) pypto.index_put_(x, indices, values)结果示例如下输入数据 x: [[1 1 1], [1 1 1], [0 0 0]] indices: ([1 2], ) values: [[0 1 0], [0 2 0]] 原地更新后的 x: [[1 1 1], [1 2 1], [0 2 0]] # accumulate is True [[1 1 1], [0 1 0], [0 2 0]] # accumulate is False【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
CANN/pypto索引放置操作
pypto.index_put_【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√功能说明根据索引indices将values的多个或多块数据更新到self中。如果accumulate参数为True则表示在更新时values和原本存储在相应位置的值进行累加如果accumulate为False则会直接覆盖原本的值。函数原型index_put_(input: Tensor, indices: tuple, values: Tensor, accumulate: bool False) - None参数说明参数名输入/输出说明input输入源操作数。支持的类型为Tensor。Tensor支持的数据类型为DT_INT8DT_UINT8DT_INT16DT_UINT16DT_INT32DT_UINT32DT_INT64DT_UINT64DT_BF16DT_FP16DT_FP32。不支持空TensorShape仅支持1-4维Shape Size不大于2147483647即INT32_MAX。indices输入Tensor类型的元组每个Tensor表示一个维度的索引。支持的类型为tuple[Tensor], 每个Tensor均为一维且维度相同。Tensor支持的数据类型为DT_INT8DT_UINT8DT_INT16DT_UINT16DT_INT32DT_UINT32DT_INT64DT_UINT64。不支持空Tensortuple中Tensor的个数不大于input的维数。values输入待更新到input中的值。支持的类型为Tensor。Tensor支持的数据类型为DT_INT8DT_UINT8DT_INT16DT_UINT16DT_INT32DT_UINT32DT_INT64DT_UINT64DT_BF16DT_FP16DT_FP32。不支持空Tensor维数不大于input的维数。accumulate输入可选累加参数默认为False。支持的类型为bool。返回值说明对input进行原地操作无返回值约束说明indices中的一维Tensor维度相同不支持broadcast。indices中第i个Tensor中的值须小于input中第i-1维的Shape大小。当indices的选取会对同一个位置进行重复更新时结果是未确定的。values不支持broadcast其第0维的shape须和indices中一维Tensor的shape相同。若values的维度大于等于2那么其除第0维外的后i个维度i0和input后i个维度的shape完全相同。input的维度、indices中Tensor的个数和values的维度之间需满足(input.shape.size) 1 (indices.size) (values.shape.size)。input和values的数据类型须相同。viewshape为一维针对indices中的每个一维Tensor和values的第0维进行切分values的其它维度不做切分。TileShape的维度不超过values的维度针对indices中的每个一维Tensor和values进行切分。indices和values的TileShape大小总和不能超过UB内存的大小。调用示例TileShape设置示例调用该operation接口前应通过set_vec_tile_shapes设置TileShape。TileShape的维度不超过values的维度若TileShape的维度小于values的维度则TileShape在切分时会自动补全后续维度与values的shape一致。如输入input为[m, n, p]输入indices为([t])输入values为[t, n, p], TileShape设置为[t1, n1, p1]则t1用于切分t轴n1用于切分n轴p1用于切分p轴m轴不切。如输入input为[m, n, p]输入indices为([t])输入values为[t, n, p], TileShape设置为[t1, n1]则TileShape会自动补全为[t1, n1, p]t1用于切分t轴n1用于切分n轴m轴和p轴不切。如输入input为[m, n, p]输入indices为([t], [t])输入values为[t, p], TileShape设置为[t1, p1], 则t1用于切分t轴p1用于切分p轴m轴和n轴不切。pypto.set_vec_tile_shapes(4, 16)接口调用示例x pypto.tensor([3, 3], pypto.DT_INT32) indices0 pypto.tensor([2], pypto.DT_INT32) indices (indices0, ) values pypto.tensor([2, 3], pypto.DT_INT32) accumulate True # accumulate is True pypto.index_put_(x, indices, values, accumulate) # accumulate is False(default) pypto.index_put_(x, indices, values)结果示例如下输入数据 x: [[1 1 1], [1 1 1], [0 0 0]] indices: ([1 2], ) values: [[0 1 0], [0 2 0]] 原地更新后的 x: [[1 1 1], [1 2 1], [0 2 0]] # accumulate is True [[1 1 1], [0 1 0], [0 2 0]] # accumulate is False【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考