我開始了一個需要一些複雜數據處理的瀏覽器項目。 當使用GPU加速時,我使用的算法速度提高了50-100倍。GPU加速數學瀏覽器
我可以在瀏覽器中使用JavaScript,Flash或其他技術。 有什麼方法可以訪問GPU來加速我的數學處理?
我開始了一個需要一些複雜數據處理的瀏覽器項目。 當使用GPU加速時,我使用的算法速度提高了50-100倍。GPU加速數學瀏覽器
我可以在瀏覽器中使用JavaScript,Flash或其他技術。 有什麼方法可以訪問GPU來加速我的數學處理?
您可以開始嘗試Khronos的WebCL,儘管這仍處於起步階段。像IE,Chrome和Opera這樣的大公司目前還沒有明確的支持計劃,微軟甚至沒有提供任何WebGL支持計劃。這就是說,除了基於WebGL着色器的GPGPU方法之外,WebCL可能是您計算的最佳選擇。 WebCL本質上是一組到OpenCL的JavaScript綁定。因此,發展最有可能與OpenCL的發展密切相關。
雖然如說,對WebCL支持,因爲這一刻沒有標準,也不普遍,目前有以下可用資源:
我最近纔開始玩這個遊戲,但是現在還不能提出超出「相當有趣」的建議。
取決於你想要做什麼,但我相信它可能是更容易運行在服務器上的GPU的計算,讓他們返回給瀏覽器客戶端
看到有人拉這會很有趣用Flash和Javascript關閉。這完全取決於你必須多頻繁地進行計算。
如果您只需執行一次迭代計算(實質上是一次「渲染」過程或一次繪製調用),則您可以像設置Flash中的任何Stage3D項目一樣設置VertexShader3D和FragmentShader3D,並且然後從該渲染的BitmapData返回結果:
//You probably want this to be the same dimensions as your context3D dimensions:
_context3D.drawToBitmapData(yourBitmapDataDestination);
然後,您可以將信息傳遞給Javascript。我不確定BitmapData是否可以直接傳遞,但我相當積極,您必須首先序列化數據(作爲數組或字符串等)。你必須看看如何使用ExternalInterface
類在Flash和Javascript之間進行通信。
一旦你在JavaScript中得到了你的嘎吱嘎嘎的數字,就不管你用這些值做什麼!
如果您正在尋求一個需要「每幀」執行的進程的解決方案,那麼Flash,GPU和JavaScript之間的信息交換可能並不是最佳的(如遊戲循環,幀)。
注意:對不完整的答案抱歉,但我主要只是想引導您進入一個可能的解決方案,如果您仍然在考慮使用Flash作爲您的GPU訪問點。
WebGL?這是GPU加速。 – Raynos 2011-05-17 19:10:21
看起來像閃存GPU加速處理_by flash_ - 您無法向其發送任意計算請求。 :(http://www.kaourantin.net/2008/05/what-does-gpu-acceleration-mean.html – peteorpeter 2011-05-17 19:21:36
Python怎麼樣?讓Python運行在網頁上是可行的,你可以導入一個Python-GPU庫例如Copperhead或PyCUDA,並在該庫中實現您的算法 – solvingPuzzles 2012-12-29 05:09:29