【GPGPU编程模型与架构原理】第一章 1.2 GPGPU 发展概述
生活随笔
收集整理的這篇文章主要介紹了
【GPGPU编程模型与架构原理】第一章 1.2 GPGPU 发展概述
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.2 GPGPU 發展概述
??l隨著半導體工藝水平不斷提高和計算機體系結構設計的不斷創新,GPU快速發展,從傳統圖形圖像相關的三維圖形渲染專用加速器拓展到多種應用領域,形成通用的圖形處理器。
1.2.1 GPU
圖形圖像任務:在計算過程中,將三維立體模型轉化為屏幕上的額日為圖像需要經過一系列的處理任務,這些處理步驟在實際設計中會形成圖形處理的流水線。
圖形流水線需要通過不同的應用程序接口來定義它們的功能,主要是兩種標準:OpenGL 和Direct3D。三維場景輸入,輸出二位圖像顯示器,主要步驟如下:
- 輸入階段。運行在CPU上的程序是整個圖形流水線的入口處,改應用程序負責構建想要渲染在屏幕上的集合圖形。
- 頂點處理。接收到CPU發送來的頂點信息后,頂點著色器對每個頂點的數據進行一系列的變換,包括幾何變換、視圖變換、投影變換等,實現頂點的三維坐標向屏幕的二位坐標的轉化。
- 幾何處理。幾何處理器對由多個頂點組成的幾何圖元進行操作,實現逐圖元著色或產生額外的圖元,各個圖元之間的處理也是相互獨立的。
- 像素處理。這些像素或由像素組成的片段通過像素著色器添加紋理、顏色和參數等信息。
- 輸出合并。最后階段執行Z-buffer深度測試和模板測試,丟棄隱藏片段或段深度取代像素,并將段顏色和像素顏色進行合成,將合成后的顏色寫入像素點。
隨著圖形處理需求的日益復雜復雜和硬件加速性能的不斷完善,由越來越多的功能 被添加到圖形流水線中,形成更豐富的圖形流水線操作步驟和流程。其中頂點處理、幾何處理和像素處理是可編程的部分。
1.2.2 從GPU 到GPGPU
20世紀90年代,GPU被局限于處理圖形渲染的j計算任務,對于擁有強大計算能力的GPU來說,這是對計算資源的極大浪費。隨著GPU可編程性的不斷提高,GPU接管一部分適合自己運算的應用,利用GPU完成通用計算的研究也漸漸活躍GPU開始應用于通用領域 ,逐漸發展維GPGPU。
GPU發展的三大時代,即固定功能的圖形流水線時代、可編程的圖形流水線階段和GPGPU通用計算時代。
- 20世紀80年代初到90年代末,固定功能流水線性能最好,但是不可編程,已呢次不夠靈活。早起的GPU只能進行二維的位圖操作,20世紀90年代末,出現了硬件加速的三維坐標轉換和光源計算技術
- 2001-2006年,可編程實時圖形流水線的出現將頂點處理和片段處理移動到了可編程處理器上。例如,以前的固定圖形流水線中需要CPU計算每一幀的頂點變化后傳遞給流水線執行。單頂點著色器出現之后,CPU只需要吧頂點數據準備好,然后在頂點著色器中編程控制頂點的各種屬性。這樣CPU指需要在開始傳遞一次數據給GPU,大大節省了數據傳輸消耗的時間。
- 2006年。NVIDIA公布統一著色器架構和GeForce8 系列GPU。傳統 GPU廠商采用固定比例的頂點著色器和像素著色器,但這會導致單元利用率低下,為解決這個問題,統一著色器架構整合了頂點著色器和像素著色器,這種無差別設計,使得GPU成了一個多核的通用處理器。
- 第三個時代可以認為是2007年6月NVIDIA 推出的CUDA。CUDA 是一種將GPU 作為數據并行計算設備的軟硬件體系。不需要使用圖形學API,而是采用容易的類C 語言開發。與以往相比,支持CUDA的GPU 在架構上有了明顯的改進。一是采用了統一處理架構,可以有效的利用過去分布在頂點著色器和像素著色器的計算資源;二是引進了片內共享存儲器,支持隨機寫入(scatter)和線程間通信。
總結
以上是生活随笔為你收集整理的【GPGPU编程模型与架构原理】第一章 1.2 GPGPU 发展概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 火狐扩展Firefox extensio
- 下一篇: WinAPI双人贪吃蛇