CANN/pyasc核心张量操作API
2026/5/10 3:22:42 网站建设 项目流程

【免费下载链接】pyasc本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc

asc.language.core

GlobalTensor

classasc.language.core.GlobalTensor(handle: Value)

GlobalTensor用来存放Global Memory(外部存储)的全局数据。 GlobalTensor public成员函数如下。类型T支持基础数据类型以及TensorTrait类型,但需要遵循使用此GlobalTensor的指令的数据类型支持情况。

GlobalTensor.get_phy_addr获取全局数据的地址。
GlobalTensor.get_shape_info获取GlobalTensor的shape信息。注意:Shape信息没有默认值,只有通过SetShapeInfo设置过Shape信息后,才可以调用该接口获取正确的ShapeInfo。
GlobalTensor.get_size获取GlobalTensor的元素个数。
GlobalTensor.get_value获取GlobalTensor的相应偏移位置的值。
GlobalTensor.set_global_buffer传入全局数据地址,初始化GlobalTensor。
GlobalTensor.set_l2_cache_hint设置GlobalTensor是否使能L2 Cache,默认使能L2 Cache。
GlobalTensor.set_shape_info设置GlobalTensor的shape信息。
GlobalTensor.set_value设置GlobalTensor相应偏移位置的值。

LocalMemAllocator

classasc.language.core.LocalMemAllocator(hard: Hardware = Hardware.UB)

LocalMemAllocator是在使用Ascend C静态Tensor编程方式时用于内存管理的类,用户无需构建TPipe/TQue, 而是直接创建LocalTensor对象并开发算子,从而减少运行时的开销,实现更优的性能。

LocalMemAllocator仅支持在Ascend C静态Tensor编程方式中使用,不可以与TPipe等接口混用。

LocalMemAllocator.alloc根据用户指定的逻辑位置、数据类型、数据长度返回对应的 LocalTensor 对象。
LocalMemAllocator.get_cur_addr返回当前物理位置空闲的起始地址。

LocalTensor

classasc.language.core.LocalTensor

classasc.language.core.LocalTensor(dtype: DataType)

classasc.language.core.LocalTensor(dtype: DataType, addr: int)

classasc.language.core.LocalTensor(dtype: DataType, pos: TPosition | None = TPosition.VECIN, addr: int = 0, tile_size: int = 0)

classasc.language.core.LocalTensor(handle: Value, dtype: DataType, shape: TensorShape)

LocalTensor用于存放AI Core中Local Memory(内部存储)的数据,支持逻辑位置TPosition为VECIN、VECOUT、VECCALC、A1、A2、B1、B2、CO1、CO2。

LocalTensor.get_length获取LocalTensor数据长度。
LocalTensor.get_phy_addr返回LocalTensor的地址或指定偏移量后的地址。
LocalTensor.get_position获取LocalTensor所在的TPosition逻辑位置,支持TPosition为VECIN、VECOUT、VECCALC、A1、A2、B1、B2、CO1、CO2。
LocalTensor.get_shape_info获取LocalTensor的Shape信息。注意:Shape信息没有默认值,只有通过SetShapeInfo设置过Shape信息后,才可以调用该接口获取正确的Shape信息。
LocalTensor.get_size获取当前LocalTensor Size大小。
LocalTensor.get_user_tag获取指定Tensor块的Tag信息,用户可以根据Tag信息对Tensor进行不同操作。
LocalTensor.get_value获取LocalTensor指定索引的数值。 该接口仅在LocalTensor的TPosition为VECIN/VECCALC/VECOUT时支持。
LocalTensor.reinterpret_cast将当前Tensor重解释为用户指定的新类型,转换后的Tensor与原Tensor地址及内容完全相同,Tensor的大小(字节数)保持不变。
LocalTensor.set_addr_with_offset设置带有偏移的Tensor地址。用于快速获取定义一个Tensor,同时指定新Tensor相对于旧Tensor首地址的偏移。偏移的长度为旧Tensor的元素个数。
LocalTensor.set_buffer_len设置Buffer长度。当用户调用operator[]函数创建新LocalTensor时,建议调用该接口设置新LocalTensor长度,便于编译器对内存及同步进行自动优化。
LocalTensor.set_shape_info设置LocalTensor的Shape信息。
LocalTensor.set_size设置当前LocalTensor Size大小。单位为元素。当用户重用local tensor变量且使用长度发生变化的时候,需要使用此接口重新设置Size。
LocalTensor.set_user_tag为Tensor添加用户自定义信息,用户可以根据需要设置对应的Tag。后续可通过GetUserTag获取指定Tensor的Tag信息,并根据Tag信息对Tensor进行相应操作。
LocalTensor.set_value设置LocalTensor中的某个值。 该接口仅在LocalTensor的TPosition为VECIN/VECCALC/VECOUT时支持。

ShapeInfo

classasc.language.core.ShapeInfo

classasc.language.core.ShapeInfo(shape: Array, original_shape: Array | None = None, data_format: DataFormat = DataFormat.ND)

classasc.language.core.ShapeInfo(handle: Value)

ShapeInfo用来存放LocalTensor或GlobalTensor的shape信息。

get_shape_size获取Shape中所有dim的累乘结果

【免费下载链接】pyasc本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询