2016-09-17 127 views
0

我有一個採訪測試,我必須用給定的矩陣乘法算法實現快速矩陣乘法。快速矩陣乘法

我必須在任何需要編譯器的平臺上實現它。任務說:

•PC實現應該準備好進行SIMD優化。 •爲數據處理模塊設計合理的接口。 •在不降低效率的情況下編寫便攜式ANSIC代碼。不要使用匯編程序。 •考慮操作的數量和操作的複雜性。關心像函數調用開銷,循環開銷,內存訪問時間和緩存性能的事情

我應該在像raspberry pi這樣的平臺上實現這個嗎?或者在CPU + DSP或ARM + NEON或CPU + GPU模擬器上運行?或者只是給代碼?

謝謝

+0

這不是面試官更好的問題嗎? –

回答

0

有大約指令級並行,線程級並行,緩存利用率和加快矩陣乘法沒有使用什麼樣的整體理論。

我可以指出,首先要了解CPU緩存的工作原理。當一個塊被加載到緩存中時,它如何映射到緩存索引,塊被驅逐時等。請參閱計算機體系結構或維基百科的書。

然後我可以指出你的阻塞矩陣乘法算法。

最後是BLAS規範和OpenBLAS作爲CPU的最快實現。