算子列表

使用说明:

  • 算子目录:目录名为算子名小写下划线形式,每个目录承载该算子所有交付件,包括代码实现、examples、文档等,目录介绍参见项目目录。
  • 算子执行硬件单元:大部分算子运行在AI Core,少部分算子运行在AI CPU。默认情况下,项目中提到的算子一般指AI Core算子。关于AI Core和AI CPU详细介绍参见《Ascend C算子开发》中“概念原理和术语 > 硬件架构与数据处理原理”。
  • 算子接口列表:为方便调用算子,CANN提供一套C API执行算子,一般以aclnn为前缀,全量接口参见aclnn列表。
  • V版本演进说明:部分算子存在多个V版本,使用时选择最高V版本即可(高版本算子已兼容低版本算子的所有能力)。

项目提供的所有算子分类和算子列表如下:

算子分类 算子目录 算子实现 aclnn调用 图模式调用 算子执行硬件单元 说明
op_kernel op_host op_api op_graph
math abs √ √ √ √ AI Core 为输入张量的每一个元素取绝对值。
math accumulate_nv2 √ √ √ √ AI Core 对多个相同形状、相同数据类型的输入张量进行逐元素累加,输出累加后的张量。
math acos √ √ √ √ AI Core/AI CPU 该算子对输入的每个元素进行反余弦操作后输出。
math acosh √ √ √ √ AI Core/AI CPU 计算逆双曲余弦(inverse hyperbolic cosine),支持FLOAT、FLOAT16、BF16数据类型。
math acosh_grad √ √ × √ AI CORE 计算Acosh算子的反向梯度,公式z = dy / sqrt(y² - 1)。
math acos_grad √ √ × √ AI CORE 计算Acos算子的反向梯度,公式z = -dy / sqrt(1 - y²)。
math ada_cast √ √ × √ AI CORE uint16→float16 类型转换并按 pixel 归一化(HDRnet 白电平缩放),公式 y = SaturateCast_FP16(float32(x) × (1/pixel))。
math add √ √ √ √ AI CORE/AI CPU 该算子用于完成加法计算。
math add_v2 √ √ × √ AI Core 对两个输入张量执行逐元素加法,兼容TensorFlow AddV2语义,支持广播与空Tensor。
math add_lora √ √ × √ AI Core 将输入x根据输入索引indices,分别和对应的weightA,weightB相乘,然后将结果累加到输入y上并输出。
math add_mat_mat_elements √ √ × √ AI Core 对输入张量a、b进行逐元素相乘后,与输入张量c按标量alpha、beta进行加权求和,并输出结果张量cOut。
math add_n √ √ √ √ AI Core/AI CPU 对输入进行逐元素相加求和操作。
math addcdiv √ √ √ √ AI Core/AI CPU 张量运算函数,用于执行乘除加组合操作,将张量除法(带缩放)+ 张量加法合并为单个操作。
math addcmul √ √ √ √ AI Core 张量运算函数,用于执行乘除加组合操作,将张量乘法(带缩放)+ 张量加法合并为单个操作。
math addr √ √ √ √ AI Core 求一维向量vec1和vec2的外积得到一个二维矩阵,并将外积结果矩阵乘一个系数后和自身乘系数相加后输出。
math adjacent_difference √ √ × √ AI Core 比较输入张量相邻元素的差异,若相邻元素相同,返回0,否则返回1。
math affine_grid × × √ × AI Core 给定一组3维的仿射参数矩阵(theta)以及输出图像的大小(size),生成一个2D或3D的网格。
math angle_v2 √ √ √ √ AI Core 为输入张量的每一个元素取角度(单位:弧度)。
math arg_max_v2 √ √ √ √ AI Core 返回张量在指定维度(dim)上的最大值的索引,并保存到out张量中。
math arg_max_with_value √ √ √ √ AI Core 返回Tensor指定维度的最大值及其索引位置。最大值保存到out中,最大值的索引保存到indices中。如果keepdim为false,则不保留对应的轴;如果为true,则保留指定轴的维度值为1。
math arg_min √ √ √ √ AI Core 返回tensor中指定轴的最小值索引,并保存到out中。如果keepdim为false,则不保留对应的轴;如果为true,则保留指定轴的维度值为1。
math arg_min_with_value √ √ √ √ AI Core 返回self中指定维度的最小值及其索引位置。最小值保存到out中,最小值的索引保存到indices中。如果keepdim为false,则不保留对应的轴;如果为true,则保留指定轴的维度值为1。
math asin √ √ √ √ AI Core/AI CPU 该算子对输入的每个元素进行反正弦操作后输出。
math asinh √ √ √ √ AI Core/AI CPU 该算子对输入Tensor中的每个元素进行反双曲正弦操作后输出。
math asin_grad √ √ × √ AI Core Asin(反正弦)算子的反向计算,根据正向输入x和上游梯度dy,计算输入梯度dx。
math asinh_grad √ √ × √ AI Core Asinh(反双曲正弦)算子的反向计算,根据正向输入y和上游梯度dy,计算输入梯度dx。
math assign_add √ √ × √ AI CPU 该算子完成在原有tensor上的加法计算。
math assign_sub √ √ × √ AI CPU 该算子完成在原有tensor上的减法计算。
math atan √ √ √ √ AI Core/AI CPU 该算子对输入的每个元素进行反正切操作后输出。
math atan2 √ √ √ √ AI Core 计算输入张量self中每个元素和输入标量other的反正切(四象限)。
math atanh √ √ √ √ AI Core/AI CPU 计算逆双曲正切(inverse hyperbolic tangent),支持FLOAT、FLOAT16、BF16数据类型。
math atan_grad √ √ × √ AI Core Atan(反正切)算子的反向计算,根据正向输入x和上游梯度dy,计算输入梯度dx,用于神经网络反向传播。
math axpy √ √ √ √ AI Core 源操作数中每个元素与标量求积后和目的操作数中的对应元素相加。
math axpy_v2 √ √ √ √ AI Core 源操作数中每个元素与张量求积后和目的操作数中的对应元素相加。
math bessel_i0e √ √ × √ AI Core 计算指数缩放的第一类零阶修正贝塞尔函数,公式y = exp(-|x|) * I0(x),仅支持图模式调用。
math bessel_i1e √ √ × √ AI Core 计算指数缩放修正贝塞尔函数(第一类,阶数1)。
math bias √ √ × √ AI Core 按照axis、num_axes和bias_from_blob推导bias的广播形状,计算y = x + broadcast(bias)。
math bias_add √ √ √ √ AI Core 偏置加法。
math bias_add_grad √ √ × √ AI Core 计算偏置的梯度。
math bincount √ √ √ √ AI Core 计算非负整数数组中每个数的频率。
math dense_bincount √ √ × √ AI Core 统计一维或二维整数输入中各个 bin 的出现次数或权重和。
math bitwise_and √ √ √ √ AI Core 计算输入tensor中每个元素和输入标量的按位与结果。输入的tensor与other必须是整型或者BOOL型变量。当输入为BOOL时,计算逻辑与的结果。
math bitwise_not × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math bitwise_or √ √ √ √ AI Core 计算输入张量self中每个元素和输入标量other的按位或。输入self和other必须是整数或布尔类型,对于布尔类型,计算逻辑或。
math bitwise_xor × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math cast √ √ √ √ AI Core/AI CPU 将输入tensor转换为指定的dtype类型。
math cdist √ 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math cdist_grad 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math ceil √ √ √ √ AI CPU 该算子用于返回输入Tensor中每个元素向上取整的结果。
math cholesky
math compare_and_bit_pack √ × × √ AI CPU 将输入与阈值进行比较,将比较结果的比特位打包为一个uint8输出。
math complex × × × × AI Core 根据实部real和虚部imag构建复数张量。
math complex_abs
math conj √ √ × √ AI CPU 返回复数张量的共轭,对输入每个复数元素取共轭(实部不变、虚部取反)。
math cos √ √ √ √ AI Core 返回输入张量元素进行余弦操作后的结果。
math cosh √ √ √ √ AI Core/AI CPU 返回输入张量元素进行的双曲余弦值结果。
math cosine_similarity √ √ √ × AI Core 计算两个输入张量沿指定维度的余弦相似度。
math cross √ √ √ √ AI Core/AI CPU 该算子对输入Tensor完成linear_cross运算。
math confusion_matrix √ √ × √ AI Core 计算分类任务的混淆矩阵,统计每个(标签, 预测)对的出现次数或加权累加和,输出num_classes×num_classes矩阵。
math cummax × × √ √ AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math cummin × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math cumprod × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math cumulative_logsumexp √ √ √ √ AI Core 对输入张量沿指定维度计算累积log-sum-exp。
math cumsum √ √ √ √ AI CPU 该算子对输入张量self的元素,按照指定维度dim依次进行累加。
math cumsum_cube × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math data_compare √ √ × √ AI Core 逐元素比较两个相同shape和dtype的输入张量,统计差异超出容差范围的元素总个数。
math dawsn √ √ × √ AI Core 计算Dawson积分 F(x) = exp(-x^2) * integral_0^x exp(t^2) dt。
math diag_part √ √ × √ AI Core 获取输入张量对角线元素。
math digamma
math div √ √ √ √ AI Core/AI CPU 张量除法计算。
math truncate_div √ √ √ √ AI Core 完成截断除法计算,结果向零取整。
math div_no_nan √ √ × √ AI Core 张量除法计算,在分母可能为0的情况下,可以帮助避免由于分母为0导致的NaN值问题。
math dot √ √ √ √ AI Core 计算两个输入一维张量的点积结果。
math eltwise √ √ × √ AI Core 对1~32个同shape、同dtype的输入张量执行逐元素操作,支持PRODUCT(逐元素乘积)、SUM(逐元素加权求和)、MAX(逐元素取最大值)三种计算模式。
math equal √ √ √ √ AI Core/AI CPU 该算子计算两个Tensor是否有相同的大小和元素。
math erf √ √ √ × AI Core 返回输入张量中每个元素对应的误差函数的值。
math erfc √ √ √ √ AI Core 返回输入张量中每个元素对应的互补误差函数的值
math exp √ √ √ √ AI Core/AI CPU 返回一个新的张量,该张量的每个元素都是输入张量对应元素的指数。
math exp_segsum_grad √ √ √ × AI Core Segsum的反向计算。
math expand √ √ × √ AI Core/AI CPU 将输入tensor广播到指定的shape。
math expint √ √ × √ AI Core 计算指数积分函数。
math expm1 √ √ √ × AI Core 以输入张量为指数,计算自然常数e的幂,并对指数计算结果进行减1计算。对于输入张量取值较小的场景,提供比直接用公式计算结果更高的精度。
math eye √ √ √ √ AI Core 返回一个对角线值为1其余位置为0的二维张量。
math floor √ √ √ √ AI Core 返回输入Tensor中每个元素向下取整,并将结果回填到输入Tensor中。
math floor_div √ √ √ √ AI Core 完成除法计算,对结果向下取整。
math floor_mod √ √ √ √ AI Core 计算两个输入张量的逐元素模运算。
math fresnel_sin √ √ × √ AI Core 计算Fresnel正弦积分。
math fresnel_cos √ √ × √ AI Core 计算Fresnel余弦积分。
math fused_mul_add √ √ × √ AI Core 三元逐元素融合算子,将Mul、Add融合为单次计算,公式y = x1 * x2 + x3。
math fused_mul_add_add √ √ × √ AI Core 四元逐元素融合算子,将Mul、Add、Add融合为单次计算,公式y = x1 * x2 + x3 + x4。
math fused_mul_add_n √ √ × √ AI Core 将mul和addn算子进行融合,要求addn的n为2,mul的其中一个输入必须是scalar或者只包含一个数的tensor。
math fused_mul_addn_l2loss √ √ × √ AI Core 图融合内部算子,将Mul+AddN+L2Loss子图合并,逐元素计算y1=x1*x3[0]+x2,同时对x1全量平方归约得到标量y2=Σx1²/2。
math gcd √ √ √ √ AI Core 计算两个输入张量的最大公约数。
math ger √ √ √ √ AI Core 求一维向量vec1和vec2的外积得到一个二维矩阵。
math get_shape √ √ × √ AI Core 获取一个或多个输入 tensor 的 shape 信息,按输入顺序将各维度的尺寸值拼接为一维 int32 tensor 输出。
math greater √ √ √ √ AI CPU 该算子用于判断输入Tensor中的每个元素是否大于other Scalar的值。
math greater_equal √ √ √ √ AI Core/AI CPU 返回一个BOOL类型的张量,里面每一个值代表输入张量对应位置值是否大于等于另一个张量值或者scalar值。
math approximate_equal √ √ × √ AI Core 逐元素近似相等校验算子,用于判断两个张量的对应元素是否在允许的误差范围内近似相等,输出布尔类型结果。
math grouped_bias_add_grad √ √ × √ AI Core 分组偏置加法(GroupedBiasAdd)的反向计算。
math hans_decode √ √ × √ AI Core 对压缩后的张量基于PDF进行解码,同时基于mantissa重组恢复张量。
math hans_encode √ √ × √ AI Core 对输入张量指数位所在字节实现PDF统计,按PDF分布统计进行无损压缩。
math histogram_fixed_width √ √ × √ AI Core 计算张量直方图。
math histogram_v2 √ √ √ √ AI Core 计算张量直方图。
math inplace_top_k_distance √ √ × √ AI CPU 将一组已排序的距离数据与一组新的距离数据合并重排后取前k个数据,结果原地更新到输入中。
math inv √ √ × √ AI Core 对输入张量的每一个元素计算其倒数。
math inv_grad √ √ × √ AI Core Inv(取倒数)算子的反向梯度,计算y = -grad * x * x。
math invert √ √ × √ AI Core 为输入张量的每一个元素取反。
math is_close √ √ √ √ AI Core 返回一个带有布尔元素的新张量,判断给定的self和other是否彼此接近,如果值接近,则返回True,否则返回False。
math is_finite √ √ √ √ AI Core 判断输入张量哪些元素是有限数值,即不是inf、-inf或nan。
math is_inf √ √ √ √ AI Core 判断张量中哪些元素是无限大值,即为inf、-inf。
math is_nan √ √ × √ AI Core 判断张量中哪些元素是nan。
math is_neg_inf √ √ √ √ AI Core 判断输入张量的元素是否为负无穷。
math is_pos_inf √ √ √ √ AI Core 判断输入张量的元素是否为正无穷。
math kl_div √ √ × √ AI Core 计算KL散度(旧图迁移兼容壳算子,计算内核转发KlDivV2)。
math kl_div_v2 √ √ √ √ AI Core 计算KL散度。
math left_shift √ √ √ √ AI Core/AI CPU 按元素计算输入张量x与y的按位左移操作。
math lerp √ √ √ √ AI Core 根据给定的权重,在起始和结束Tensor之间进行线性插值,返回插值后的Tensor。
math less √ √ √ √ AI Core/AI CPU 该算子用于判断输入self中的每个元素是否小于输入other的值。
math less_equal √ √ √ √ AI Core 判断输入self中的元素值是否小于等于other的值,并将self的每个元素的值与other值的比较结果写入out中。
math lgamma
math lin_space √ √ × √ AI Core/AI CPU 生成一个等间隔数值序列。创建一个大小为steps的1维向量,其值从start起始到stop结束(包含)线性均匀分布。
math linalg_qr
math log √ √ √ √ AI CPU 该算子对输入张量x的元素,逐元素进行对数计算。
math log1p √ √ √ √ AI Core 对输入Tensor完成log1p运算。
math log_add_exp × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math logdet
math logical_and √ √ √ √ AI Core 对两个输入张量的对应元素执行「与逻辑」判断,输出布尔型张量(True/False)。
math logical_not √ √ √ √ AI Core 计算给定输入Tensor的逐元素逻辑非。如果未指定输出类型,输出Tensor是bool类型。如果输入Tensor不是bool类型,则将零视为False,非零视为True。
math logical_or √ √ √ √ AI Core 完成给定输入张量元素的逻辑或运算。当两个输入张量为非bool类型时,0被视为False,非0被视为True。
math logspace × × √ × AI Core 创建一个大小为steps的一维张量,其值在base^start到base^end上对数尺度上均匀间隔。
math log_space_d √ √ × √ AI Core 根据起始值、结束值、步数和底数生成一维对数间隔序列。
math masked_scale × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math maximum √ √ √ √ AI Core 返回两个输入张量中的最大值组成的新张量。
math minimum √ √ √ √ AI Core 返回两个输入张量中的最小值组成的新张量。
math mod √ √ √ √ AI Core 张量取余计算。
math mul √ √ √ √ AI Core/AI CPU 返回两个张量元素之间的乘积结果组成的新张量。
math mul_addn √ √ × √ AI Core 实现N>=2个mul和addn融合计算,减少搬运时间和内存的占用。
math mul_no_nan √ √ × √ AI Core 二元逐元素安全乘法,当乘数x2为0时结果返回0,避免0*inf、0*nan产生NaN污染。
math muls √ √ √ √ AI Core 返回输入张量元素与指定scalar值乘积组成的新张量。
math nan_to_num √ √ √ × AI Core 将输入中的NaN、正无穷大和负无穷大值分别替换为nan、posinf、neginf指定的值。
math ndtri √ √ × √ AI Core 逆标准正态累积分布函数(probit),对输入概率张量逐元素计算标准正态分位点。
math neg √ √ √ √ AI Core/AI CPU 计算每个元素的相反数。
math non_finite_check √ √ × √ AI Core 检测输入tensor_list中是否存在非有限数值(NaN、Inf、-Inf)。
math not_equal √ √ √ √ AI CPU 该算子逐元素比较两个输入张量是否不相等。
math one_hot √ √ √ √ AI Core 将离散标签进行二进制编码转换。
math ones_like √ √ √ √ AI Core/AI CPU 返回形状和类型相同的张量,所有元素都设置为1。
math pdist × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math polar √ √ √ √ AI Core 构建一个复数张量,其元素为对应于极坐标的笛卡尔坐标,其中绝对值为abs,角度为angle。
math population_count √ √ × √ AI Core 逐位取出二进制每一位,累加所有为1的比特。
math pow √ √ √ √ AI Core/AI CPU 根据输入指数和幂张量进行指数计算。
math pows √ √ × √ AI Core 对input中的每个元素应用指数为exponent的幂运算。
math precision_compare × × √ × AI Core 计算两个Tensor元素是否相同,进行精度比对,返回算子执行的状态码。
math prod_force_se_a √ √ × √ AI Core DeepPot-SE模型的反向力计算算子。将神经网络对描述符的导数与描述符对坐标的导数逐元素相乘后归约累加,得到每个原子的三维力向量。
math prod_env_mat_a_calc_rij √ √ × √ AI CPU DeepMD环境矩阵的近邻计算,输出邻居索引、平方距离与中心原子指向邻居的位移向量。
math q_r
math ragged_bin_count √ √ × √ AI Core 按splits划分的ragged row,统计每个bin的出现次数或权重和。
math range √ √ √ √ AI Core 从start到end,按照step间隔长度生成等差数列组成的张量。
math rank × √ × √ AI Core/Host CPU 返回输入张量的秩(rank),即张量的维度数,输出为INT32标量。
math real √ √ √ √ AI Core 返回复数张量的实部,若输入为实数张量则按原值返回。
math real_div √ √ × √ AI CPU 该算子按元素逐个返回x1/x2的结果。
math reciprocal √ √ √ √ AI Core 返回一个具有每个输入元素倒数的新张量。
math reciprocal_grad √ √ × √ AI Core 计算Reciprocal算子的反向梯度。
math reduce_all × × × × AI Core/AI CPU 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math reduce_any × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math reduce_log_sum × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math reduce_log_sum_exp × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math reduce_max × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math reduce_mean √ √ × √ AI CPU 该算子对一个多维向量按照指定的维度求平均值。
math reduce_min × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math reduce_nansum × × √ × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math reduce_prod × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math reduce_std_v2 √ √ √ √ AI Core 计算指定维度的标准差。
math reduce_std_v2_update √ √ × √ AI Core 接收原始输入和预计算均值,沿指定维度归约计算方差或标准差,支持贝塞尔校正与keepdim。
math reduce_std_with_mean √ √ √ √ AI Core 给定外部预计算的均值,沿指定维度计算标准差(invert=false)或其倒数(invert=true)。
math reduce_sum √ √ √ √ AI Core/AI CPU 返回给定维度中输入张量每行的和。
math reduce_var √ √ √ √ AI Core 返回指定维度的方差。
math rfft1_d √ √ × × AI Core 对输入张量self进行RFFT(傅里叶变换)计算,输出是一个包含非负频率的复数张量。
math right_shift √ √ √ √ AI Core/AI CPU 该算子按元素计算输入张量x与y的按位右移操作。
math round √ √ √ √ AI Core/AI CPU 该算子将输入张量的值舍入到最接近的整数,若该值与两个整数距离一样则向偶数取整。
math rsqrt √ √ √ √ AI Core/AI CPU 求input(Tensor)每个元素的平方根的倒数。
math rsqrt_grad √ √ × √ AI Core rsqrt的反向计算。
math scale √ √ √ √ AI Core 对输入x按scale缩放并可选叠加bias:y = x * scale + bias,支持axis/num_axes/scale_from_blob控制的通道广播。
math search_sorted √ √ √ √ AI CPU 该算子用于在一个已排序的张量sorted_sequence中查找给定张量values应该插入的位置。
math segsum √ √ √ × AI Core 进行分段和计算。生成对角线为1、上三角为0的半可分矩阵。
math select √ √ √ √ AI Core 根据条件选取self或other中元素并返回(支持广播)。
math select_v2 √ √ × √ AI Core/AI CPU 根据条件选取self或other中元素并返回(支持广播)。
math get_dynamic_dims √ × × √ AI CPU 根据shape_info中标记的未知维度,从动态输入张量中提取实际维度值并输出。
math shape × √ × √ AI Core/Host CPU 返回输入tensor的shape,即由输入各维度值组成的一维tensor。
math shape_n × √ × √ AI Core/Host CPU 返回多个输入tensor的shape,每个输入对应一个输出,输出为由对应输入各维度值组成的一维tensor。
math sign √ √ √ √ AI Core 对输入的tensor逐元素进行Sign符号函数的运算并输出结果tensor。
math sign_bits_pack √ √ √ √ AI Core 将浮点数(float16/float32)的符号位提取并打包为uint8字节,每8个符号位打包为1个字节。
math sign_bits_unpack √ √ √ √ AI Core 将UINT8类型的1-bit Adam符号位拆包为FLOAT32或FLOAT16类型的张量。
math signbit √ √ √ √ AI Core 判断输入self中的每个元素符号位是否为1,返回一个Tensor。
math silent_check × × √ × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
math silent_check_v2 √
math sin √ √ √ √ AI Core 对输入Tensor完成sin运算
math sparse_bincount √ √ × √ AI Core 统计稀疏张量中每个值的出现次数或加权累加和。
math sinc √ √ √ √ AI Core 对输入Tensor完成sinc运算
math sinh √ √ √ √ AI Core/AI CPU 该算子对输入的每个元素进行双曲正弦操作后输出。
math sinkhorn √ √ × × AI Core 计算Sinkhorn距离,可以用于MoE模型中的专家路由。
math slogdet × × √ × AI Core 计算输入self的行列式的符号和自然对数。
math sort √ √ √ √ AI Core 将输入tensor中的元素根据指定维度进行升序/降序,并且返回对应的index值。
math sort_with_index √ √ × √ AI Core 将输入tensor按照元素值大小进行排序,index值跟随对应元素值进行排序。
math spence √ √ × √ AI Core 计算Spence函数(dilogarithm):S(x) = -integral_0^(1-x) ln(1-t)/t dt = Li2(1-x)。
math sqrt √ √ √ √ AI Core/AI CPU 完成非负数平方根计算,负数情况返回nan。
math sqrt_grad √ √ × √ AI CPU 该算子用于完成梯度平方根计算。
math square √ √ √ √ AI CPU 该算子对输入Tensor逐元素计算平方值。
math square_sum_all √ √ × √ AI Core 分别计算两个同Shape输入Tensor的全元素平方和,输出两个独立标量。
math square_sum_v1 √ √ × √ AI CPU 用于计算输入张量在指定轴上的平方和。
math squared_difference √ √ × √ AI CPU 为第一个输入张量减去第二个输入张量,并计算其平方值。
math stft √ √ √ √ AI Core 计算输入在滑动窗口内的傅里叶变换。
math sub √ √ √ √ AI Core/AI CPU 完成减法计算,被减数按alpha进行缩放。
math sub_mul_concat √ √ × √ AI Core 内部融合算子,由CANN既有图融合流程将Sub、Mul和Concat/ConcatV2/ConcatV2D原始图转换后生成,不提供公开ACLNN或直接构造接口。
math svd × × √ × AI Core 计算一个或多个矩阵的奇异值分解。
math tan √ √ √ √ AI Core/AI CPU 正切三角函数。
math tanh √ √ √ √ AI Core 激活函数。返回与输入tensor shape相同的tensor,对输入tensor进行elementwise的计算。
math tanh_grad √ √ √ √ AI Core/AI CPU Tanh的反向计算。
math tensor_equal √ √ √ √ AI Core 计算两个Tensor是否有相同的大小和元素,返回一个Bool类型。
math tile √ √ √ √ AI Core/AI CPU 对输入tensor沿着repeats中对每个维度指定的复制次数进行复制。
math top_k_pq_distance_v2 √ √ × √ AI CPU 借助分组极值剪枝,在最后一维上查找k个最大或最小的元素及其索引。
math top_k_v2 √ √ × √ AI Core 返回输入Tensor在指定维度上的k个极值及索引,支持通过输入Tensor指定k值。
math topk √ √ × √ AI CPU 沿指定维度找出输入张量中最大或最小的k个元素及其索引。
math top_k_v2_d × √ × √ AI CPU 沿指定维度找出输入张量中最大或最小的k个元素及其索引,兼容TensorFlow TopKV2。
math top_k_pq_distance × √ × √ AI CPU 基于分组极值剪枝的TopK距离计算,用于向量检索场景。
math trace √ √ √ × AI Core 计算矩阵从左上角开始的主对角线元素的和。
math transform_bias_rescale_qkv √ √ × √ AI Core 一个用于处理多头注意力机制中查询(Query)、键(Key)、值(Value)向量的接口,用于调整这些向量的偏置(Bias)和缩放(Rescale)因子。
math triangular_solve √ √ √ √ AI Core 求解一个具有方形上或下三角形可逆矩阵A和多个右侧b的方程组。
math trunc √ √ √ √ AI Core 对输入张量逐元素截断取整,向零方向舍入。
math truncate_mod √ √ × √ AI Core 张量取余计算。
math xdivy √ √ × √ AI Core 计算x / y,x == 0时结果为0,支持broadcast。
math xlogy √ √ × √ AI Core 计算x1 * log(x2),x1 == 0时结果为0,支持broadcast。
math x_log_y × × × × AI Core 计算x1 * log(x2),逐元素运算,支持广播
math xlog1py √ √ √ √ AI Core 计算x * log(1 + y),当x == 0时结果为0。支持broadcast。
math zeta × √ × √ AI CPU 计算Hurwitz zeta函数 ζ(x, q)。
math zero_op √ √ √ √ AI Core 将张量填充为全零。
conversion ball_query √ √ × √ AI Core Ball Query用于查找点p1指定球半径范围内的所有点(在实现中设置了K的上限)。
conversion bitcast × √ × × Host CPU 将输入tensor按照比特位重新解释为目标数据类型,不改变底层数据的存储内容,仅改变dataType和shape。
conversion calc_buckets_limit_and_offset √ √ × √ AI CPU 根据ivf_counts和bucket_list计算每个桶的limits和offsets,用于向量检索场景。
conversion chunk_cat √ √ √ √ AI Core 将tensors中所有tensor先按照维度dim切分为numChunks块,再按照dim后一维进行级联,最后转换为out的数据类型。
conversion circular_pad √ √ √ √ AI Core 使用输入循环填充输入tensor的最后两维。
conversion circular_pad_grad √ √ √ × AI Core circular_pad的反向传播。
conversion coalesce_sparse √ √ × √ AI Core 实现对Coo_Tensor优化的方法coalesce()方法。
conversion coordinates_1d_to_2d √ √ × √ AI CPU 将1D坐标转换为2D坐标,根据shape信息计算行列索引。
conversion depth_to_space √ √ × √ AI Core 该算子通过对输入张量的深度(通道)维度进行重新排列,将其转换为空间维度(高度和宽度)。具体来说,它将输入张量的深度维度按照指定的块大小(block_size)进行划分,并将这些深度块重新排列到空间维度中,从而增加空间维度的大小,同时减少通道维度的深度。
conversion diag √ √ × √ AI Core 创建一个以小于等于4维的输入张量为对角线元素的对角矩阵。
conversion diag_flat √ √ √ √ AI Core 创建一个以输入数组为对角线元素的平铺对角矩阵。
conversion diag_v2 √ √ √ √ AI Core 根据输入的二维张量,提取由diagonal指定的对角线元素。
conversion feeds_repeat √ √ × √ AI Core 对于输入feeds,根据输入feeds_repeat_times,将对应的feeds的第0维上的数据复制对应的次数,并将输出y的第0维padding到output_feeds_size的大小。
conversion fill_diagonal_v2 √ √ √ √ AI Core 将指定值填充到矩阵的主对角线上。
conversion masked_select_v3 √ √ √ √ AI Core 根据mask是否为True,选出input中对应位置的值,input和mask满足广播规则,结果为一维Tensor。
conversion mem_set_v2 √ √ × × AI Core 给输入tensor赋指定的值。
conversion pad_v3_grad_replicate √ √ × × AI Core padv3 2D的反向传播。
conversion pad_v3_grad_replication √ √ × × AI Core padv3 3D的反向传播。
conversion pad_v4_grad √ √ √ √ AI Core pad之后的输入的反向传播。
conversion reflection_pad3d_grad √ √ × × AI Core 计算aclnnReflectionPad3d api的反向传播。
conversion stack_ball_query √ √ × √ AI Core Stack Ball Query是KNN的替代方案,用于查找点p1指定半径范围内的所有点(在实现中设置了K的上限)。
conversion slice_last_dim √ √ × √ AI Core 对输入张量的最后一维进行切片,通过start、end指定切片范围,stride指定步长。
conversion slice_with_axes √ √ × √ AI Core 沿指定axes从输入张量中提取切片,每个axis由offsets指定起始位置、size指定切片长度。
conversion slice_write √ √ × √ AI CPU 将value tensor写入x tensor的指定位置(由begin指定偏移)。这是一个原地操作,输出与输入x共用同一块内存。
conversion strided_slice_assign_v2 √ √ × √ AI Core StridedSliceAssign是一种张量切片赋值操作,它可以将张量inputValue的内容,赋值给目标张量varRef中的指定位置。
conversion transpose_v2 √ √ × × AI Core 实现张量的维度置换(Permutation)操作,按照指定的顺序重新排列输入张量的维度。
conversion unfold_grad √ √ √ √ AI Core/AI CPU 实现Unfold算子的反向功能,计算相应的梯度。
conversion concat_d √ √ √ √ AI Core 将tensors中所有tensor按照维度dim进行级联,除了dim对应的维度以外的维度必须一致。
conversion concat_dv2 √ √ × × AI Core 将tensors中所有tensor按照维度concat_dim进行级联,除了dim对应的维度以外的维度必须一致。
conversion concat_v2 √ √ × √ AI Core/AI CPU 该算子沿指定维度将多个输入张量进行拼接。
conversion clip_by_norm_no_div_sum √ √ × √ AI Core 对4个支持广播的输入张量执行ClipByNormNoDivSum运算。
conversion clip_by_value √ √ √ √ AI CPU 该算子将输入的所有元素限制在[clipValueMin,clipValueMax]范围内。
conversion clip_by_value_v2 √ √ √ √ AI Core/AI CPU 该算子将输入的所有元素限制在[clipValueMin,clipValueMax]范围内。
conversion invert_permutation √ √ × √ AI CPU 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
conversion conjugate_transpose √ √ × √ AI CPU 按perm指定的维度顺序对输入x做转置并取共轭,实数类型等价于普通Transpose。
conversion unpack √ √ × √ AI Core/AI CPU 将张量沿着某一维度拆分为多个子张量。
conversion as_strided √ √ × √ AI Core 允许用户通过指定新的形状和步长来创建一个与原张量共享相同数据内存的张量视图。
conversion assign √ √ × √ AI Core 将一个输入tensor的值填充到另一个输入tensor中。
conversion broadcast_to √ √ √ √ AI Core 将输入tensor广播到指定shape。
conversion batch_to_space √ √ × √ AI Core 将批次维度的数据重新排列到空间维度,并裁剪空间维度。
conversion batch_to_space_nd √ √ × √ AI Core 将批次维度的数据重新排列到空间维度,并裁剪空间维度。
conversion case_condition √ × × √ AI CPU 根据三个输入值与阈值的关系,输出离散case编号。
conversion concat √ √ × √ AI Core 用于沿指定维度将多个输入Tensor进行拼接,输出包含所有输入数据按顺序拼接后的Tensor。
conversion confusion_transpose_d √ √ √ √ AI Core 融合reshape和transpose运算。
conversion contiguous × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
conversion dynamic_partition √ √ × √ AI Core 用于根据分区索引将输入数据动态分割成多个张量。
conversion expand_dims × √ × √ Host CPU 在输入张量shape的指定位置插入一个大小为1的维度,仅改变张量的shape,不改变底层数据。
conversion fill √ √ √ √ AI Core 对输入张量填充指定标量值。
conversion fill_v2 √ √ × √ AI Core 对输入张量填充指定标量值,其中要填充值作为属性传入。
conversion flatten × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
conversion flatten_v2 × √ × √ Host CPU 将输入张量[axis, end_axis]范围内的维度展平为一个维度,不改变底层数据。
conversion gather_shapes × √ × √ Host CPU 从多个输入tensor的shape中收集指定的维度值,按axes顺序拼接为一维tensor输出。
conversion im2col √ √ √ √ AI Core 图像到列,滑动局部窗口数据转为列向量,拼接为大张量。
conversion masked_fill √ √ √ √ AI Core 将输入Tensor`x`中mask位置为`True`的元素填充指定的值。`mask`必须与`x`的shape相同或可广播。
conversion mirror_pad √ √ √ √ AI Core 以镜像方式填充输入tensor的边界。
conversion npu_format_cast × × × × AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
conversion pack √ √ √ √ AI Core 通过沿轴维度打包,将值中的张量列表打包成一个比值中的每个张量高一维度的张量。
conversion pad √ √ × √ AI Core/AI CPU 按照输入paddings的配置,对输入x的每一维进行前后常量填充,填充值为0。兼容TensorFlow的Pad算子。
conversion pad_v2 × √ × √ AI Core 对输入tensor进行指定值的常量填充。
conversion pad_v3 √ √ √ √ AI Core 对输入Tensor做填充。
conversion pad_v3_grad √ √ × √ AI Core pad_v3之后的输入的反向传播。
conversion phony_concat × √ × √ Host CPU 标识GE为所有输入分配同一块连续内存并计算偏移,不执行任何计算,供前置自定义算子按偏移写入。
conversion phony_split × √ × √ Host CPU 标识GE为所有输出分配同一块连续内存并计算偏移,不执行任何计算,供后置自定义算子按偏移读取。
conversion prevent_gradient × √ × √ Host CPU 该算子前向原样返回输入张量;反向传播时梯度不可流经,一旦流经立即报错,用于显式阻断梯度回传。
conversion reshape √ √ × √ AI CPU 将输入张量重解释为目标形状。
conversion roll √ √ √ √ AI Core 沿指定维度滚动张量元素。
conversion size × √ × √ Host CPU 返回输入张量的尺寸,即张量元素个数的整数标量。
conversion slice √ √ √ √ AI Core 根据给定的范围和步长,从输入张量中提取子张量。
conversion snapshot × √ × √ Host CPU 该算子用于返回输入张量的一个副本,输出与输入具有相同的形状、数据类型和内容。
conversion space_to_batch √ √ × √ AI Core 将空间维度的数据按块重新排列到批次维度,并对空间维度补零。
conversion space_to_batch_nd √ √ × √ AI Core 将多个空间维度的数据按块重新排列到批次维度,并对空间维度补零。支持任意数量的空间维度。
conversion sparse_reshape √ √ × √ AI Core 将稀疏张量的indices从输入shape重塑到目标shape。
conversion split √ √ × √ AI Core 将张量沿指定维度split_dim平均拆分为num_split份更小的张量。
conversion split_v √ √ √ √ AI Core/AI CPU 将输入tensor指定维度按照指定长度进行切分,最后一块长度可能不足。
conversion squeeze × √ √ √ AI Core/Host CPU 移除输入张量中大小为1的维度。
conversion squeezev2 × √ × √ Host CPU 删除张量shape中大小为1的维度。axis为空时删除所有大小为1的维度,指定axis时仅删除指定维度(需为1或未知维)。输出数据类型与输入一致。
conversion squeezev3 × √ × √ Host CPU 删除Tensor中维度值为1的维度,axes以可选输入的形式提供。
conversion stop_gradient × √ × √ Host CPU 该算子用于将输入张量原样传递到输出,同时阻止反向传播计算经过该节点。
conversion strided_slice √ √ √ √ AI Core/AI CPU 按照指定的起始、结束位置和步长,从输入张量中提取一个子张量。
conversion strided_slice_grad √ √ × √ AI Core 将子张量的梯度映射回原始张量的对应位置。
conversion strided_slice_v3 √ √ √ √ AI Core 按照指定的起始、结束位置和步长,从输入张量中提取子张量。
conversion tensor_move √ √ √ √ AI Core 将输入tensor的值搬运到输出tensor中。
conversion tensor_redirect √ √ × √ AI Core 将输入张量的数据逐bit拷贝到输出张量,恒等映射。
conversion tile_with_axis √ √ × √ AI Core/AI CPU 沿指定维度复制输入Tensor数据,扩展输出Tensor。
conversion trans_data √ √ √ √ AI Core/AI CPU 实现张量的数据格式转换。
conversion trans_shape × √ × √ Host CPU 根据outShape属性改变输出的shape,不改变底层数据。
conversion transpose √ √ √ √ AI Core 完成张量转置。
conversion tril √ √ √ √ AI Core 将输入的self张量的最后二维(按shape从左向右数)沿对角线的右上部分置零。
conversion triu √ √ √ √ AI Core 将输入的self张量的最后二维(按shape从左向右数)沿对角线的左下部分置零。参数diagonal可正可负,默认为零,正数表示主对角线向右上方向移动,负数表示主对角线向左下方向移动。
conversion unsqueeze × √ √ √ AI Core/Host CPU 在指定位置插入一个大小为1的维度。
conversion unsqueezev2 × √ × √ Host CPU 在张量shape中插入维度值为1的维度。axis为空时不插入任何维度,指定axis时在归一化后的位置插入。输出数据类型与输入一致。
conversion unsqueezev3 × √ × √ Host CPU 在输入Tensor的指定位置插入维度值为1的维度,仅改变shape不改变数据。
conversion view_copy √ √ √ √ AI Core 该算子暂无Ascend C代码实现,欢迎开发者补充贡献,贡献方式参考贡献指南。
conversion identity √ √ × √ AI Core/Host CPU 该算子用于返回与输入张量具有相同形状和内容的张量。
conversion identity_n × √ × √ AI Core/Host CPU 该算子用于返回一组输入张量的副本,输出与输入具有相同的数量、形状、数据类型和内容。
conversion matrix_set_diag √ √ × √ AI Core 将输入tensor的对角线元素替换为对角线tensor的值。
conversion matrix_set_diag_v2 √ √ × √ AI Core 将输入tensor的对角线元素替换为对角线tensor的值。
conversion matrix_diag √ √ × √ AI Core 返回一个给定批量对角值的批量对角Tensor。
conversion matrix_diag_part √ √ × √ AI Core 返回批处理张量最内层矩阵的主对角线元素。
conversion matrix_diag_v3 √ × × √ AI CPU 根据输入的单条或多条对角线值生成矩阵,对角线带之外的位置使用padding_value填充。
conversion matrix_diag_part_v3 √ × × √ AI CPU 从输入矩阵或批量矩阵的最后两维中提取一条或多条对角线。
conversion split_d √ √ × √ AI CPU 将张量沿指定维度split_dim平均拆分为num_split份更小的张量。与Split算子不同,split_dim作为属性而非输入提供。
conversion strided_slice_assign √ √ × √ AI Core 将输入张量input_value的内容赋值给目标张量var中由begin、end、strides指定的切片位置,切片以外的区域保持var原值不变(in-place语义)。
conversion parallel_concat √ √ × √ AI Core 沿第一维拼接N个首维大小为1的同形张量,输出shape为[N, d_1..d_k],数据逐比特搬运。
random drop_out_do_mask √ √ √ √ AI Core 根据mask中对应bit位的值,将输入中的元素置零,并按照scale放大或者置零。
random drop_out_do_mask_v3
random drop_out_do_mask_v3_d
random drop_out_v3 √ √ √ √ AI Core 按照概率p随机将输入中的元素置零,并将输出按照1/(1-p)的比例缩放。
random drop_out_v3_grad √ √ √ × AI Core DropOut反向算子,根据mask和scale计算输入梯度。
random dsa_gen_bit_mask
random dsa_random_normal
random dsa_random_uniform
random random_standard_normal_v2 √ √ × √ AI Core 生成标准正态分布的随机数列。
random random_uniform_int_v2 √ √ × √ AI Core 生成均匀分布的随机整数数列。
random random_uniform_v2 √ √ × √ AI Core 生成均匀分布的随机浮点数数列。
random sim_thread_exponential
random stateless_bernoulli √ √ √ √ AI Core 从伯努利分布中提取二进制随机数。
random stateless_drop_out_gen_mask √ √ √ √ AI Core 根据随机种子和随机偏移量和保活系数生成随机掩码mask。
random stateless_exponential √ √ √ × AI Core 生成指数分布的随机数。
random stateless_random √ √ √ √ AI Core 返回从[from, to - 1]范围中抽取离散均匀分布的随机数。
random stateless_random_choice_with_mask √ √ × √ AI Core 根据输入x中值为true,选择出对应索引列表,其次根据seed, offset调用philox_random生成索引列表长度个随机数,利用随机数对索引列表做洗牌算法,得到随机交换后的索引列表,返回count个。
random stateless_random_normal_v2 √ √ √ √ AI Core 生成正态分布随机数。
random stateless_random_normal_v3 √ √ √ × AI Core 生成正态分布随机数。
random stateless_normal √ √ √ × AI Core 生成正态分布随机数(与H20 GPU比特对齐)。
random stateless_random_uniform_v2 √ √ × √ AI Core 生成均匀分布随机数。
math amp_update_scale √ √ √ × AI Core 实现AMP训练中的动态Scale更新,根据当前scale值、growth_tracker计数器以及是否发现Inf/NaN,动态调整loss scale大小。
math prod_virial_se_a √ √ × √ AI Core 计算深度势能模型中基于SE原子嵌入描述符的A类型位力张量。
math prod_env_mat_a √ √ × √ AI Core 计算DeepMD-kit环境矩阵描述子(SeA),包含邻居列表格式化和环境矩阵计算两阶段。
random stateless_uniform √ √ √ √ AI Core 生成均匀分布随机数。
random stateless_random_uniform_v3 √ √ √ × AI Core 生成均匀分布随机数。
random stateless_randperm
random stateless_truncated_normal_v2 √ √ √ AI Core 生成截断正态分布的随机数
random truncated_normal_v2
ge aipp_data × √ × √ Host CPU 动态AIPP场景的数据透传节点。将输入张量data直接传递给输出张量out,通过index属性标识AIPP序号,输出shape和数据类型与输入一致。
ge case × √ × √ Host CPU 根据`branch_index`的值选择一个子图分支执行,将输入张量传递给所选子图并返回其输出张量。
ge const × √ × √ Host CPU 从tensor-like对象创建常量张量,用于推理场景。Const算子与Constant算子定义相同,根据value属性中保存的Tensor值和类型,推导输出张量y的形状和数据类型。输出形状和数据类型与value属性中的Tensor一致。
ge const_place_holder × √ × √ Host CPU 创建常量占位张量。该算子用于处理地址不变但值不确定的输入,将输入转换为此类型有助于提升图的执行性能(避免输入地址被反复刷新)。根据origin_shape和dtype属性推导输出张量y的形状和数据类型。输出形状与origin_shape属性一致,输出数据类型与dtype属性一致。
ge constant × √ × √ Host CPU 创建一个常量张量用于训练。Constant算子根据value属性中保存的Tensor值和类型,推导输出张量y的形状和数据类型。输出形状和数据类型与value属性中的Tensor一致。
ge control_trigger × √ × √ Host CPU 仅用作控制边的占位符。类似于NoOp,但即使部分控制输入已失效,也始终产生活跃的控制输出。
ge data × √ × √ Host CPU 为其他算子提供输入数据。Data算子作为图中的数据输入节点,将输入张量x直接传递给输出张量y,同时通过index属性标识该数据节点在网络中的序号。
ge destroy_temporary_variable × √ × √ Host CPU 销毁临时变量并返回其最终值。临时变量的所有其他使用必须在本算子之前执行完毕。本算子与TemporaryVariable算子配对使用:通过var_name属性与TemporaryVariable匹配,读取该临时变量的最终值并触发销毁。输出张量y的形状和数据类型与输入张量x一致。
ge end × √ × √ Host CPU 标记按引擎类型切分的子图的输出。End算子为图引擎内部节点,与PlaceHolder配对使用,输出张量y的形状和数据类型与输入张量x一致。
ge enter × √ × √ Host CPU 创建或查找子帧(child frame),并使输入张量x在子帧内可用。Enter算子与Exit算子配合使用在图中创建循环,执行器通过唯一的frame_name属性标识帧。当is_constant为true时,输出张量y在子帧内为常量。输出张量y与输入张量x具有相同的形状和数据类型。
ge exit × √ × √ Host CPU 退出当前帧(frame)到其父帧。Exit算子与Enter算子配合使用在图中创建循环,将输入张量x传递到父帧使其可用。输出张量y与输入张量x具有相同的形状和数据类型。
ge file_constant × √ × √ Host CPU 创建文件常量张量,用于处理存储在文件中的超大权重数据。根据shape和dtype属性推导输出张量y的形状和数据类型。输出形状与shape属性一致,输出数据类型与dtype属性一致。
ge for × √ × √ Host CPU 循环执行`body`子图:循环计数器从`start`起始、按`delta`步进、不超过`limit`,将输入张量传递给子图并返回其输出张量。
ge guarantee_const × √ × √ Host CPU 向运行时保证输入张量是一个常量。本算子为直通(pass-through)算子:输出张量y即输入张量x,不改变任何形状、数据类型和数值,仅在图中传递"输入是常量"的语义信息,供图优化决策使用。输出张量y的形状和数据类型与输入张量x一致。
ge if × √ × √ Host CPU 根据布尔条件`cond`的值选择执行`then_branch`或`else_branch`子图,将输入张量传递给所选子图并返回其输出张量。
ge is_variable_initialized × √ × √ Host CPU 检查张量是否已初始化。IsVariableInitialized算子接收输入张量x,输出标量布尔值y,表示输入张量是否已初始化。InferShape将输出shape设置为标量(0维),InferDataType将输出数据类型设置为DT_BOOL。
ge loop_cond × √ × √ Host CPU 表示循环终止条件。LoopCond算子将布尔标量输入张量x转发到输出张量y,用于向Switch算子传递while循环的终止条件,InferShape校验输入为标量后复制shape,InferDataType校验输入为DT_BOOL后复制dtype。
ge merge × √ × √ Host CPU 将输入x中第一个变为可用的张量转发到输出y,并在value_index中给出该张量在输入中的索引;通常与Switch配合实现分支汇聚。
ge next_iteration × √ × √ Host CPU 使输入在下一轮迭代中可用。NextIteration算子将输入张量x直接传递到输出张量y,用于在while循环中将当前迭代的计算结果传递给下一轮迭代,InferShape将输入shape复制到输出,InferDataType将输入dtype复制到输出。
ge no_op × √ × √ Host CPU 不做任何操作,仅用作控制边的占位符。
ge partitioned_call × √ × √ Host CPU 将输入张量`args`传递给子图`f`执行并返回其输出张量。
ge placeholder × √ × √ Host CPU 为一个将始终被喂入的张量插入占位符。PlaceHolder算子接收输入张量x,输出y的形状和数据类型与输入x一致,由InferShape将输入shape复制到输出,InferDataType将输入dtype复制到输出。
ge placeholder_withdefault × √ × √ Host CPU 为一个张量插入带默认值的占位符。PlaceholderWithDefault算子接收输入张量x,输出y的形状和数据类型与输入x一致,由InferShape将输入shape复制到输出,InferDataType将输入dtype复制到输出。shape属性用于指定张量的形状信息。
ge queue_data × √ × √ Host CPU 为其他算子提供队列数据。QueueData算子作为图中的队列数据输入节点,根据output_types和output_shapes属性计算输出张量的长度(每项含64字节信息头、维度描述及数据字节),输出为DT_UINT8类型的一维张量。
ge read_variable_op × √ × √ Host CPU 读取并返回输入变量张量的值。输出张量y的形状和数据类型与输入张量x一致。
ge ref_data × √ × √ Host CPU 为其他算子提供可被引用覆盖的输入数据。RefData算子作为图中的数据输入节点,将输入张量x直接传递给输出张量y,同时通过index属性标识该数据节点在网络中的序号。与Data算子不同,RefData可被ref类算子覆盖,起到变量的作用。
ge ref_enter × √ × √ Host CPU 创建或查找子帧(child frame),并使可被引用覆盖的输入张量x在子帧内可用。RefEnter算子与Exit算子配合使用在图中创建循环,执行器通过唯一的frame_name属性标识帧。当is_constant为true时,输出张量y在子帧内为常量。与Enter算子不同,RefEnter的输入可被ref类算子覆盖,起到变量的作用。
ge ref_exit × √ × √ Host CPU 退出当前帧(frame)到其父帧。RefExit算子与Enter算子配合使用在图中创建循环,将可被引用覆盖的输入张量x传递到父帧使其可用。与Exit算子不同,RefExit作用于可被ref类算子覆盖的引用张量。输出张量y与输入张量x具有相同的形状和数据类型。
ge ref_identity × × × × Host CPU 功能与Identity一致:输出张量y与输入张量x的形状、数据类型和内容相同,用于引用(ref)类型数据。
ge ref_merge × √ × √ Host CPU 功能与Merge一致:将输入x中第一个变为可用的张量转发到输出y,并在value_index中给出该张量在输入中的索引,用于引用(ref)类型数据。
ge ref_next_iteration × √ × √ Host CPU 使输入张量在循环的下一次迭代中可用。RefNextIteration算子作为循环控制流算子,将可被引用覆盖的输入张量x传递给下一次迭代,用于while循环中迭代间传递变量状态。输出张量y与输入张量x具有相同的形状和数据类型。
ge refswitch × √ × √ Host CPU 功能与Switch一致:根据布尔标量输入pred将输入张量data转发到output_true或output_false,两个输出的形状与数据类型均与data一致,用于引用(ref)类型数据。
ge switch × √ × √ Host CPU 根据布尔标量输入pred将输入张量data转发到对应的输出端口:pred为true时转发到output_true,否则转发到output_false,两个输出的形状与数据类型均与data一致。
ge switch_by_index × √ × √ Host CPU 将指定下标的输入数据写入指定寄存器。SwitchByIndex算子接收int32下标张量x1(shape为(1,))与一维uint64张量x2,无输出张量,用于运行时label切换,InferShape/InferDataType注册为直接返回成功。
ge switch_n × √ × √ Host CPU 根据整型张量输入pred_value将输入张量data转发到对应的动态输出端口,被选中的输出形状与数据类型与data一致。
ge temporary_variable × √ × √ Host CPU 创建一个临时变量张量。TemporaryVariable 使用完毕后,需将变量张量的引用传递给配对的 DestroyTemporaryVariable 算子进行销毁。根据shape和dtype属性推导输出张量y的形状和数据类型:输出形状与shape属性一致,输出数据类型与dtype属性一致。
ge var_handle_op × √ × √ Host CPU 创建一个指向变量资源的句柄。输出张量y为标量资源句柄(DT_RESOURCE类型),shape和dtype属性描述句柄所指向变量的形状和数据类型(而非输出本身的形状),供下游资源类算子(如ReadVariableOp、AssignVariableOp)使用。container和shared_name属性用于指定变量的容器和共享名称。
ge var_is_initialized_op × √ × √ Host CPU 检查张量(变量)是否已被初始化。输出为bool标量,指示输入变量是否已初始化:输入需为Variable节点,图引擎在编译期通过VarIsInitializedOpPass查询Variable的初始化状态并将本算子节点改写为常量输出。
ge variable × √ × √ Host CPU 创建一个变量张量。Variable算子通过输入x赋值,在内部记录变量张量的值,输出y为创建的变量张量。InferShape函数返回成功但不显式设置输出描述,由框架默认推导(output跟随input)。
ge while × √ × √ Host CPU 循环执行`body`子图直到`cond`子图返回false:cond为真时反复执行body并将循环变量传递到下一轮迭代,否则返回当前循环变量作为输出。