RopeOperation
功能
旋转位置编码处理。
约束
- hiddenSizeQ必须是hiddenSizeK的整数倍且满足hiddenSizeQ = headDim * headNum。
- 当输入tensor数据类型为bf16时,不支持Atlas 推理系列产品(Ascend 310P AI处理器)。
定义
struct RopeParam {
int32_t rotaryCoeff = 4;
int32_t cosFormat = 0;
bool operator == (const RopeParam &other) const
{
return this->rotaryCoeff == other.rotaryCoeff && this->cosFormat == other.cosFormat;
}
};
成员
成员名称 |
描述 |
|---|---|
rotaryCoeff |
rope,旋转系数,对半旋转是2,支持配置2、4或headDim / 2。 |
cosFormat |
训练用参数,支持配置0或1 |
输入
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
q |
[ntokens, hiddenSizeQ] |
float16/bf16 |
ND |
k |
[ntokens, hiddenSizeK] |
float16/bf16 |
ND |
cos |
[ntokens, headDim] / [ntokens, headDim / 2] |
float16/float/bf16 |
ND
|
sin |
[ntokens, headDim] / [ntokens, headDim/ 2] |
float16/float/bf16 |
ND
|
seqLen |
[batch] |
uint32/int32 |
ND |
输出
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
ropeQ |
[ntokens, hiddenSizeQ] |
float16/bf16 |
ND |
ropeK |
[ntokens, hiddenSizeK] |
float16/bf16 |
ND |