0
我想弄清楚是否以及如何將特定的現有代碼並行化以用於ARM Cortex-A9 NEON SIMD單元。這是代碼:可能爲ARM NEON並行化濾波器?
for(int i=0; i < 11; i++)
{
f4UF1 *= F[i];
A[i][2] = A[i][1];
A[i][1] = A[i][0];
A[i][0] = f4UF1;
B[i][2] = B[i][1];
B[i][1] = B[i][0];
C[i] = 0;
C[i] += D[i][0] * A[i][0];
C[i] += D[i][1] * A[i][1];
C[i] += D[i][2] * A[i][2];
C[i] -= E[i][1] * B[i][1];
C[i] -= E[i][2] * B[i][2];
B[i][0] = C[i]/E[i][0];
f4UF1 = B[i][0];
}
我已經看過的代碼相當多的現在,我幾乎可以肯定,它不能有效地並行處理,但我想,我可以試試看問這裏。我不期待現成的代碼,只是想法如何做到這一點。謝謝:)
什麼是數據類型?你應該粘貼一些能夠滿足編譯器的東西。 – auselen
編譯它並檢查輸出可能會提供一些見解。 – marko
可以使用vext指令向下滑動元素。你也可以做乘法/加法。如果你在NEON中編寫它,看起來你可以改進幾個週期。唯一的問題是需要變成乘數的鴻溝。 – BitBank