我正在做一個有很多計算的項目,我有一個想法是把一些工作扔給GPU,但是我想知道我們是否可以從GLSL檢索結果,如果它是可行的,怎麼樣?我們如何從GLSL獲取變量值?
1
A
回答
4
3
一般而言,您要做的是將OpenCL用於通用GPU任務。然而,如果你堅持假裝OpenGL不是渲染API ......
Framebuffer Objects使渲染到多個輸出變得相對容易。這當然意味着你必須構建你的處理過程,使得渲染的內容與你想要的相匹配。您可以渲染到32位浮點「圖像」,因此您可以獲得足夠的精度。最大的困難是我所說的:弄清楚如何構建你的任務來匹配渲染。
使用變換反饋比較容易一些。這是將頂點(或幾何)着色器處理的輸出寫入buffer object的功能。這仍然需要將您的任務構建爲像渲染一樣的東西,但更容易,因爲頂點着色器具有嚴格的一個頂點到一個頂點的映射。對於每個輸入頂點,都只有一個輸出。如果您繪製GL_POINTS
,則使用屬性傳遞更改的數據並不困難。
使用shader_image_load_store更容易也更困難。這實際上是「隨時隨地」對任意圖像進行讀/寫的能力。我將最後一部分放在引號中,因爲有很多關於數據競爭條件的深奧規則:從另一個着色器調用等寫入的值中讀取數據。這些都是不是微不足道的處理。您可以嘗試通過在同一着色器中不寫入相同圖像位置來構造代碼以避免它們。但在很多情況下,如果你可以這樣做,你可以渲染幀緩衝區。
最終,在一般情況下回答這個問題幾乎是不可能的,不知道你想要實際做什麼正確。你如何通過渲染API來處理GPGPU很大程度上取決於你想要計算的內容。
相關問題
- 1. 我們如何從Ruby中的用戶獲取變量?
- 2. linq如何從變量中獲取值
- 3. 如何從php變量中獲取值到我們的JavaScript文件?
- 4. 從Tensorflow獲取變量值
- 5. 從mongoDB變量獲取值
- 6. 我如何從bpel布爾變量獲取返回值?
- 7. 如何從.getVisibleText()獲取值到我的變量?
- 8. 如何從Lua運行進程讀取變量值(獲取過程變量值)?
- 9. JQuery:我們如何從變量
- 10. Jmeter json路徑提取器 - 我們如何從所有捕獲的變量中獲取隨機值?
- 11. 獲取我們從
- 12. 我如何讀取JavaScript的值,並送他們爲C#變量
- 13. 如何從AngularJS獲取變量並在javascript中使用它們?
- 14. 如何從字段獲取值並將它們存儲在變量中
- 15. 如何從變量中獲取滑塊最小值,最大值。
- 16. 如何獲取從數組中取得的變量值?
- 17. 如何獲取addElement值到變量?
- 18. 如何獲取PHP變量數組值?
- 19. 如何獲取枚舉變量的值?
- 20. 如何獲取JSON值給變量?
- 21. 如何獲取變量的不同值
- 22. 如何獲取str變量的值?
- 23. 如何獲取HtmlControl變量的值?
- 24. 如何從android中獲取變量值從java到xml文件?
- 25. equationsToMatrix:我如何獲得變量的值?
- 26. 如何從共享變量支持的theano張量變量中獲取值?
- 27. 我們如何從Json數組中快速獲取價值?
- 28. 如何將變量名賦值給變量以獲取變量的值?
- 29. 如何從Django url獲取變量
- 30. 如何從Nexpect方法獲取變量?
GLSL不用於通用GPU編程,因爲硬件和軟件接口是爲此目的而開發的。除非你需要編寫超過6年的GPU,否則這可能不是你想要的問題。 – Potatoswatter