讓我們假設遊戲開發者開發一個應用程序。因此,在編寫應用程序時,開發人員會編寫一些代碼段,這些代碼段應該轉到CPU,還有一些代碼段應該轉到GPU或由調度程序在運行時決定?CPU和麪向GPU的代碼有什麼區別?
回答
CPU和GPU是不同的,經過優化可以做不同的事情。圖形處理器不那麼聰明,但大量更多的並行和執行大量的專業處理,而不是傳統的CPU更一般的處理。
GPU必須由CPU分配任務。沒有調度程序運行時間的可能性,因爲它們不同,可以有不同的指令。
對於nVidia的PhysX,CPU和GPU之間的選擇可以由用戶通過控制面板進行選擇,包括自動設置,因此對於某些使用該設置的程序,可以在運行時進行選擇。 – rcgldr
這很有趣......沒有理由說明爲什麼GPU上的任何事情都不能在CPU上完成...但是,儘管我對這種功能一無所知,但我不得不假設控制面板是什麼做的是翻轉一下,這樣某些操作/調用通過兩種不同的實現來實現,一種使用CPU,另一種使用GPU,但要清楚,但這些實際上是兩個基本不同的代碼位,而不是相同的代碼重新安排。 – Michael
我唯一使用PhysX的遊戲總是選擇CPU,或者至少這是遊戲設置中顯示的內容(控制面板也有一個選項可以將當前設置顯示爲疊加層),所以我沒有多少遊戲實際上使用這個選項,但它在控制面板中。 – rcgldr
既然你已經標記了C
,那麼讓我告訴你,你用C語言編寫的任何程序,使用GCC
或任何編譯器進行編譯都是針對你的CPU。
如果您編寫代碼並使用常規編譯器進行編譯,但它不針對GPU執行,代碼將始終在CPU上執行。
您的圖形庫調用是由您的CPU「執行」,但面向圖形的調用(例如,繪製東西)由GPU操作。
此外,回答這取決於您正在執行的語言和程序。 CUDA和OpenCL或OpenGL計算着色器在GPU上執行。
所以基本上,你的代碼的所有程序執行,即在代碼中設置編譯器環境以渲染調用是由CPU完成的。
- 1. 下面的代碼1和代碼2有什麼區別?
- 2. 「Cuda Device」和GPU有什麼區別?
- 3. 爲什麼Opencv GPU代碼比CPU慢?
- 4. 面對和朝向有什麼區別?
- 5. cpu和GPU之間的區別(圖形)
- 6. 代碼有什麼區別
- 7. CPU和芯片組有什麼區別?
- 8. 代碼和程序有什麼區別?
- 9. 我的代碼和教程代碼有什麼區別?
- 10. EXC_BAD_ACCESS中的代碼= 1和代碼= 2有什麼區別?
- 11. CPU和GPU相同的代碼庫
- 12. 「cpu/mem-loads/pp」和「cpu/mem-loads /」有什麼區別?
- 13. 困惑!代碼第一和代碼之間有什麼區別?
- 14. 原始代碼和修改代碼有什麼區別?
- 15. 代碼審查和代碼審計有什麼區別?
- 16. 編譯代碼和可執行代碼有什麼區別?
- 17. 串行CPU與GPU代碼
- 18. 這兩個代碼有什麼區別?
- 19. 這段代碼有什麼區別
- 20. 這些verilog代碼有什麼區別?
- 21. 這兩個代碼有什麼區別
- 22. 這些C++代碼有什麼區別?
- 23. 這兩個代碼有什麼區別?
- 24. 這兩個代碼有什麼區別
- 25. 以下代碼段有什麼區別?
- 26. 這段代碼有什麼區別?
- 27. 這段代碼(extjs)有什麼區別?
- 28. 這兩位代碼有什麼區別?
- 29. 兩個代碼有什麼區別
- 30. 2段代碼有什麼區別?
閱讀標籤說明前加入!這與嵌入式無關。正如它給出的是語言不可知的。 – Olaf