---
title: kutacc_af2_triangle_multiplication_calc_proj
description: "用于计算triangle_multiplication过程中生成的中间值：左右投影"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/KunpengHPCKit_developer_134.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/KunpengHPCKit_developer_134.html
indexId: 2d369b0c0f485fc01a49a227742805e8d2fb2e8378f82524486b8b5423a405f567
---
# kutacc_af2_triangle_multiplication_calc_proj

用于计算triangle_multiplication过程中生成的中间值：左右投影

#### 接口定义

void kutacc_af2_triangle_multiplication_calc_proj(kutacc_af2_tm_act_inputs_t *tm_acts_ptr, kutacc_tensor_h mask, kutacc_af2_tm_proj_weights_t *tm_weights_ptr, bool input_prepack);


#### 参数

表1 入参定义

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| tm\_acts\_ptr | kutacc\_af2\_tm\_act\_inputs\_t \* | kutacc\_af2\_tm\_act\_inputs\_t类型的指针，具体数据结构定义见下方表2 kutacc\_af2\_tm\_act\_inputs\_t数据结构表定义 | 输入 |
| mask | kutacc\_tensor\_h | 掩码张量 | 输入 |
| tm\_weights\_ptr | kutacc\_af2\_tm\_proj\_weights\_t \* | kutacc\_af2\_tm\_proj\_weights\_t类型的指针，具体数据结构定义见下方表3 kutacc\_af2\_tm\_proj\_weights\_t数据结构表定义 | 输入 |
| input\_prepack | bool | 是否对输入张量进行prepack操作 | 输入 |


表2 kutacc_af2_tm_act_inputs_t数据结构表定义

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| n\_res | int64\_t | 残基数 | 输入 |
| n\_res\_gather | int64\_t | 残基数 | 输入 |
| proj\_act | kutacc\_tensor\_h | act的左右投影 | 输出 |
| input\_act | kutacc\_tensor\_h | 输入值act经过layernorm归一化后的值 | 输入 |
| proj\_act\_gate | kutacc\_tensor\_h | 临时门控张量 | 输入 |


表3 kutacc_af2_tm_proj_weights_t数据结构表定义

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| c\_o | int64\_t | 输入特征维度 | 输入 |
| c\_i | int64\_t | 输出特征维度 | 输入 |
| proj\_w | kutacc\_tensor\_h | 生成投影所需的权重 | 输入 |
| proj\_b | kutacc\_tensor\_h | 生成投影所需的偏置 | 输入 |
| gate\_w | kutacc\_tensor\_h | 门控权重 | 输入 |
| gate\_b | kutacc\_tensor\_h | 门控偏置 | 输入 |


triangle_multiplication的整数参数应满足的约束关系：

n_res, n_res_gather, c_i, c_o > 0,

n_res * n_res_gather < INT64_MAX，

c_i = c_o，

单进程情况下n_res必须等于n_res_gather，多进程则不需要满足该条件
