2016-02-23 61 views
2

JavaScript中矩陣乘法的糟糕表現是高性能webgl的障礙。所以我正在考慮使用pnacl來加速它。理想情況下,我想將ArrayBuffer(Float32Array)和矩陣傳遞給pnacl,然後使用本機代碼完成乘法並更新緩衝區中的值,最後通知頁面(javascript)。是否有可能通過pnacl加速webgl矩陣乘法?

但我懷疑緩衝區內存是否可以共享pnacl和page javascript? 如果不是,我必須將緩衝區傳遞給客戶端,我不確定這種操作對性能的影響。

任何建議將不勝感激!

回答

0

與所有優化問題一樣,您應該剖析代碼以查看矩陣乘法是否是一個問題。如果是,bbudge是正確的,那麼必須通過將數組傳遞到PNaCl並返回到JavaScript,您可能會失去性能收益。

asm.js代碼與JavaScript運行在相同的進程和堆棧中,因此您可以通過使用它看到好處。看看http://jsperf.com/matrix-multiplication-with-asm-js/6。不幸的是,並不能保證asm.js能夠在所有瀏覽器上運行。如果瀏覽器不直接支持asm.js,它將作爲普通的JavaScript執行,最終可能會變慢。

WebAssembly可用時,這可能是您最好的選擇。