我需要改善解析XML文件並將其內容添加到大型SQL數據庫的軟件的性能。我一直在試圖找到關於是否可以在GPU上實現這一點的信息。我對CUDA和OpenCL的研究給我留下了任何明確的答案,除了可以用C/C++,FORTRAN和許多其他語言使用編譯器指令來開發GPU處理的軟件之外。這導致我問這個問題:我是否真的需要一個爲GPU加速編寫的API或庫,或者使用標準XML解析庫編寫的使用CUDA/OpenCL編譯器指令編譯的程序是否會自動運行XML GPU上的庫函數?GPU加速的XML解析
回答
我實際上在解析GPU上的XML時看不到任何意義。 GPU架構專注於大量浮點數計算,而不是文本處理等操作。我認爲使用CPU並在線程之間拆分XML分析以利用多個內核會更好。在這樣的應用程序中使用GPU在我看來是矯枉過正。
太壞的人沒有知識試圖回答一個問題的聲望點。我有完全相同的問題,我需要最好的算法解析GPU,我找不到一個。 -1 – Nulik
一般情況下,GPU不適合XML處理加速... GPU是,如果預期的任務有大規模並行利用,另一方面大量的GPU處理單元.. XML處理僅偉大在很大程度上是一種單線程狀態機過渡類型的工作。
首先看看你的xml的結構。在此鏈接之後,您可以找到適用於並行處理的XML結構標準。 Parallel XML Parsing in Java
如果你的XML結構是並行處理的,然後幾個想法:
我所知,XML解析需要堆疊結構記在樹當前位置,並驗證正確的開放和節點關閉。
堆棧結構可以表示爲帶有堆棧指針的一維數組。 堆棧指針包含陣列中棧頂元素的位置
他們說您可以將數組存儲在1D紋理中(最多4,096個元素)。 還是以2D紋理(最大16777216 = 4,096x4,096元素)...看看下面的鏈接瞭解更多 https://developer.nvidia.com/gpugems/GPUGems2/gpugems2_chapter33.html
如果分配獨立的浮點數到每一個獨特的元素名稱,那麼你就可以存儲元素數字
如果您將輸入文本作爲ascii/utf-8代碼的數組,那麼爲什麼不將它們存儲爲浮點數的數組?
最重要考慮使用GPU的事情是輸出結構是什麼。
如果您需要例如表格的固定長度列,那麼它只是關於如何表示這樣的結構在一維或二維數組中的浮點數
當您確定以前的點和GPU是適合您的時候,那麼只需編寫函數您的數據轉換成紋理和紋理回到你的數據
然後當然整個XML解析器...
我從來沒有嘗試過與GPU編程所有,但很快在我看來,說某樣東西不可能...
有人應該是第一個建全的算法,並看是否能夠有效地使用GPU或不
- 1. XML解析速度減慢
- 2. 加速json解析
- 3. 關於XML解析的快速提問
- 4. 加速解析算法
- 5. 在Android中加速解析
- 6. 加速日期解析29FEB
- 7. 鉻光環GPU加速
- 8. GPU加速崩潰網站
- 9. 禁用GPU加速渲染
- 10. 德爾福 - 快速(er)XML解析器
- 11. JSON與XML解析速度在Flash AS2
- 12. 使用Nokogiri進行快速XML解析
- 13. 加快xml解析與PHP
- 14. 加載並解析XML,IE
- 15. 使用lxml和xpath加速xml解析過程
- 16. .NET中的速度和XML解析 - 序列化vs XML DOM vs?
- 17. 使用VTD-XML優化解析XML文件的速度
- 18. 解析的XML
- 19. GPU加速和模糊的內容
- 20. GPU加速的硬件模擬?
- 21. C++中的GPU加速遞歸函數
- 22. 如何使用新的GPU加速avd?
- 23. XML解析:無法解析XML正確
- 24. Oracle XML解析與Java XML解析
- 25. XML解析器不解析
- 26. Android的XML請求不解析「+」加號
- 27. 在Perl中加速JSON解析
- 28. 在html敏捷包中加速解析
- 29. Groovy的XML解析
- 30. XML的RSS解析
*「我是不是真的需要GPU加速編寫的API或庫,或將一個程序用C語言編寫/ C++使用標準的XML解析庫並使用CUDA/OpenCL的編譯器指令進行編譯時,會自動在GPU上運行XML庫函數?「* - 絕對是前者,您可能需要重大調整所涉及的算法,有用的任務如此分層,不適合像GPU解析那樣的GPU計算(儘管我不是XML解析的專家,我承認)。 –