开发者
资源
[object Object]

[object Object][object Object]undefined
[object Object]
  • 接口功能:针对单输入 x 进行旋转位置编码。

  • 计算公式:

    q=reshape(x,[B,N,S,D//2,2])transpose(1,2)reshape([B,N,S,D])q = \text{reshape}(x, [B, N, S, D//2, 2]) \cdot \text{transpose}(-1, -2) \cdot \text{reshape}([B, N, S, D]) qembed=qcos+RotateHalf(q)sinq_{\text{embed}} = q \cdot \text{cos} + \text{RotateHalf}(q) \cdot \sin

    其中:RotateHalf(q) 表示将 q 的 D 维后半部分元素移至前半部分并乘以 -1,后半部分用前半部分的值。

    RotateHalf(q)i={qi+D//2if i<D//2qi+D//2otherwise\text{RotateHalf}(q)_{\text{i}} = \begin{cases} -q_{i+D//2} & \text{if } i < D//2 \\ q_{i+D//2} & \text{otherwise} \end{cases}
[object Object]

每个算子分为,必须先调用"aclnnInterleaveRopeGetWorkspaceSize"接口获取入参并根据流程计算所需workspace大小,再调用"aclnnInterleaveRope"接口执行计算。

[object Object]
[object Object]
[object Object]
  • 参数说明

    [object Object]
  • 返回值

    aclnnStatus:返回状态码,具体参见

    第一段接口完成入参校验,出现以下场景时报错:

    [object Object]
[object Object]
  • 参数说明

    [object Object]
  • 返回值

    aclnnStatus:返回状态码,具体参见

[object Object]
  • 确定性计算:
    • aclnnInterleaveRope默认确定性实现。
  • 该接口支持推理场景下使用。
  • x、cos、sin、out要求为4维张量,shape为(B,N,S,D)。
  • cos、sin的S维度可以为1或与x的S维度相同,N维度必须等于1。
  • 输入x、cos、sin的D维度必须等于64。
[object Object]

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]