Can you summarize the following document?
        
  以GeForce 8800 GTX為例,其核心擁有128個內處理器。利用CUDA技術,就可以將那些內處理器串通起來,成為執行緒處理器去解決資料密集的計算。而各個內處理器能夠交換、同步和共享資料。利用NVIDIA的C-編譯器,通過驅動程式,就能利用這些功能。亦能成為流處理器,讓應用程式利用進行運算。  GeForce 8800 GTX顯示卡的運算能力可達到520GFlops,如果建設SLI系統,就可以達到1TFlops。  但程式設計師在利用CUDA技術時,須分開三種不同的暫存器,要面對繁複的執行緒層次,編譯器亦無法自動完成多數任務,以上問題就提高開發難度。而將來的G100會採用第二代的CUDA技術,提高效率,降低開發難度。  目前,已有軟體廠商利用CUDA技術,研發出Adobe Premiere Pro的外掛。通過外掛,使用者就可以利用顯示核心去加速H.264/MPEG-4 AVC的編碼速度。速度是單純利用CPU作軟體加速的7倍左右。  在NVIDIA收購AGEIA後,NVIDIA取得相關的物理加速技術,即是PhysX物理引擎。配合CUDA技術,顯示卡可以模擬成一顆PhysX物理加速晶片。目前,全系列的GeForce 8顯示核心都支援CUDA。而NVIDIA亦不會再推出任何的物理加速卡,顯示卡將會取代相關產品。  為了將CUDA推向民用,NVIDIA舉行一系列的程式設計比賽,要求參賽者開發程式,充分利用CUDA的計算潛能。但是,要將GPGPU普及化,還要看微軟能否在Windows作業系統中,提供相關的程式設計介面。  2008年8月,NVIDIA推出CUDA 2.0。2010年3月22日,NVIDIA推出CUDA 3.0,僅支援Fermi及之後的架構。  CUDA是一種由NVIDIA提出的並由其製造的圖形處理單元(GPUs)實現的一種平行計算平臺及程式設計模型。CUDA給程式開發人員提供直接訪問CUDA GPUs中的虛擬指令集和平行計算元件的記憶體。  使用CUDA技術,GPUs可以用來進行通用處理(不僅僅是圖形);這種方法被稱為GPGPU。與CPUs不同的是,GPUs有著側重以較慢速度執行大量併發執行緒的並行流架構,而非快速執行單一執行緒。  軟體發展者可以通過CUDA加速庫,編譯器指令(如OpenACC)以及符合工業標準的程式設計語言(如C,C++和Fortran)擴充套件對CUDA平臺進行操作。C/C++程式師可以使用“CUDA C/C++”,使用“NVCC”——NVIDIA基於LLVM的C/C++編譯器進行編譯;Fortran程式師可以使用“CUDA Fortran”,使用PGI公司的PGI CUDA Fortran編譯器進行編譯。除了庫、編譯器指令、CUDA C/C++和CUDA Fortran,CUDA平臺還支援其它計算介面,如Khronos Group的OpenCL,Microsoft的DirectCompute,以及C++AMP。其協力廠商封裝也可用於Python,Perl,Fortran,Java,Ruby,Lua,Haskell,MATLAB,IDL及Mathematica的原生支援。  在電腦遊戲行業中,GPUs不僅用於進行圖形渲染,而且用於遊戲物理運算(物理效果如碎片、煙、火、流體),比如PhysX和Bullet。在計算生物學與密碼學等領域的非圖形應用上,CUDA的加速效果達到可以用數量級來表示的程度。  CUDA同時提供底層API與高階API。最初的CUDA軟體發展包(SDK)於2007年2月15日公佈,支援Microsoft Windows和Linux。而後在第二版中加入對Mac OS X的支援,取代2008年2月14日釋出的測試版。所有G8x系列及以後的NVIDIA GPUs皆支援CUDA技術,包括GeForce,Quadro和Tesla系列。CUDA與大多數標準作業系統相容。Nvidia宣告:根據二進位制相容性,基於G8x系列開發的程式無需修改即可在未來所有的Nvidia顯示卡上執行。

  在GPUs(GPGPU)上使用圖形APIs進行傳統通用計算,CUDA技術有下列幾個優點:

  利用CUDA技術,配合適當的軟體(例如MediaCoder、Freemake Video Converter),就可以利用顯示核心進行高清視訊編碼加速。視訊解碼方面,同樣可以利用CUDA技術實現。此前,NVIDIA的顯示核心本身已整合PureVideo單元。可是,實現相關加速功能的一個微軟API-DXVA,偶爾會有加速失效問題。所以利用CoreAVC配合CUDA,變相在顯示核心上實現軟體解碼,解決相容性問題。另外,配合適當的引擎,顯示核心就可以計算光線跟蹤。NVIDIA就放出了自家的Optix實時光線跟蹤引擎,透過CUDA技術利用GPU計算光線跟蹤。

  所有基於G80及之後架構的民用與專業顯示卡或運算模組皆支援CUDA技術。

  下列的範例是如何用C++自GPU的image陣列中取得紋理(texture): 下列的例子是用Python改寫. Python相關的訊息可取自PyCUDA. 更多的Python的矩陣相乘問題可取自pycublas.
CUDA(Compute Unified Device Architecture,統一計算架構)是由NVIDIA所推出的一種整合技術,是該公司對於GPGPU的正式名稱。透過這個技術,使用者可利用NVIDIA的GeForce 8以後的GPU和較新的Quadro GPU進行計算。亦是首次可以利用GPU作為C-編譯器的開發環境。NVIDIA行銷的時候,往往將編譯器與架構混合推廣,造成混亂。實際上,CUDA可以相容OpenCL或者自家的C-編譯器。無論是CUDA C-語言或是OpenCL,指令最終都會被驅動程式轉換成PTX程式碼,交由顯示核心計算。