【问题标题】:Optimize gemm (matrix multiplication) with Neon aarch64使用 Neon aarch64 优化 gemm(矩阵乘法)
【发布时间】:2019-01-20 17:34:40
【问题描述】:

我有一个如下所示的矩阵乘法:

void gemm_nn(int N, int K, float *A, float *B, float *C) {
    int j, k;
    for (k = 0; k < K; k++)
        for (j = 0; j < N; j++)
            C[j] += A[k] * B[k * N + j];
}

浮点数是单个的,4 字节,32 位。

我想用 armv8-a 64 位优化循环。

我可以在一个 128 位寄存器中加载 4 个连续的浮点数并执行一次乘加运算吗?

您能否指出我应该尝试实现这一目标的说明?

【问题讨论】:

标签: arm simd neon arm64


【解决方案1】:

需要本机 SIMD ld1 {v16.4s} 和 fmla 指令。

【讨论】:

    猜你喜欢
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多