nVIDIA 發表 CUDA 5 預覽版、Eclipse 版 Nsight、以及 Kepler 架構 Tesla!


之前 nVIDIA 在推出新的 GPU 架構、也就是 Kepler(克卜勒、GeForce GTX 680/670)的時候,只有把 自家的 CUDA 做小改版、而沒有大變化,這點其實讓 Heresy 滿訝異的。

不過現在,nVIDIA 在 GTC 2012 上,終於發表了新的 CUDA 5 Preview 了!他的官方介紹是《CUDA 5 Preview Release Now Available》這篇文章,目前也已經可以下載來使用了~

他的下載頁面是:http://developer.nvidia.com/rdp/cuda-50-preview-package
和以往版本最大的一個差異,就是這一版開始,nVIDIA 終於把 CUDA SDK 和 CUDA Toolkit 整合在一起,可以只安裝一個東西就好了~當然,目前要使用 CUDA 5.0 Preview 也還需要新的 Beta 版、302.59 的顯示卡驅動程式了~

基本上,他的更新重點如下:

New Nsight, Eclipse Edition helps you explore the power of GPU computing with the productivity of Eclipse on Linux and MacOS

  • Develop, debug, and profile your GPU application all within a familiar Eclipse-based IDE
  • Integrated expert analysis system provides automated performance analysis and step-by-step guidance to fix performance bottlenecks in the code
  • Easily port CPU loops to CUDA kernels with automatic code refactoring
  • Semantic highlighting of CUDA code makes it easy to differentiate GPU Code from CPU code
  • Integrated CUDA code samples makes it quick and easy to get started
  • Generate code faster with CUDA aware auto code completion and inline help

GPU callable libraries now possible with GPU Library Object Linking

  • Compile independent sources to GPU object files and link together into a larger application
  • Design plug-in APIs that allow developers to extend the functionality of your kernels
  • Efficient and familiar process for developing large GPU applications
  • Enables 3rd party ecosystem for GPU callable libraries

GPUDirect RDMA provides fastest possible communication between GPUs and other PCI-E devices

  • Direct memory access (DMA) supported between NIC and GPU without the need for CPU-side data buffering
  • Significantly improved MPISendRecv efficiency between GPU and other nodes in a network
  • Eliminates CPU bandwidth and latency bottlenecks
  • Works with variety of 3rd party network and storage devices

Dynamic Parallelism enables programmers to easily accelerate parallel nested loops on the new Kepler GK110 GPUs

  • Developers can easily spawn new parallel work from within GPU code
  • Minimizes the back and forth between the CPU and GPU
  • Enables GPU acceleration for a broader set of popular algorithms, including adaptive mesh refinement used in aerospace and automotive computational fluid dynamics (CFD) simulations
  • Supported natively on Kepler II architecture GPUs, preview programming guide and whitepaper available today

更完整的新功能列表,請參考 release note


其中,第一項的部分,是 Mac OS 和 Linux 上的 Nisight,這點對於非 Windows 平台的 CUDA 開發者來說,應該是一件相當值得高興的事。(官方網站

「Parallel Nsight」是 nVIDIA 針對 GPU 程式開發者所推出的一個偵錯、最佳化的工具;他最早是針對微軟的 Visual Studio 做整合,讓 Windows 上的開發者,可以在單一環境內來進行 GPU 相關程式的開發、除錯(最初的介紹)。而隨著 nVIDIA CUDA 的版本演進,Nsight 也有一直在進行改版;今年初也已經隨著 CUDA 4.1 的推出、而發布了 2.1 版(參考)。

而現在,nVIDIA 終於不再只支援 MSVC 了!他現在不但把本來針對 Visual Studio 開發的「Parallel Nsight」改名為「Nsight Visual Studio Edition」,而且也推出 Eclipse 用的「Nsight Eclipse Edition」,讓 Linux 和 Mac OS 上的開發者,也可以使用 Nsight 來做 GPU 程式的開發以及偵錯了~

而除了新的 Nsight Eclipse Edition,目前 Nsight Visual Studio Edition(官網)也推出到了 2.2 的正式版,除了支援 CUDA 4.2、以及 Kepler 架構的 GPU 外,也還加入了一些新功能(參考),像是可以在單 GPU 的系統上、針對 CUDA 做 debug 就是一個相當好的改進~而同時,好像還有支援微軟的 C++AMP參考)!?不過很可惜的,對於 graphics 的部分,主要還是以 Direct3D 為主,對於 OpenGL 的支援看來一樣不是很好(功能列表)。


第四項的部分,主要是針對一直還沒出現,理論上真正的高階 Kepler、GK110 了!目前採用 Kepler 架構的 GPU,都是使用 GK104 的晶片,在 nVIDIA 以往的命名規則裡,他應該不是高階/完整版的 GPU;所以在發表後,其實就一直有理論上的高階晶片、也就是 GK110 的謠言~

而現在,nVIDIA 算是正式發布 GK110 了!目前 nVIDIA 應該是計畫以 GPGPU 專用卡、也就是 Tesla(官網)的形式來推出採用 GK110 的產品;目前看到的資料,第一顆採用 GK110 的 Tesla,會是在今年第四季推出的「Tesla K20」;目前已經發表的新一代 Tesla K10 則還是採用類似 GeForce GTX 690、使用兩顆 GK104 的方案。

關於 Kepler 架構的 Tesla 的資料,可以參考官方的 PDF 文件。其中,採用兩顆 GK104 的 Tesla K10 雖然在單精度浮點樹上的計算效能上能達到上一代產品(Tesla M2090)的 3-4 倍,但是由於內部對雙精度浮點數計算單元的閹割,所以在這部分的效能甚至不到前一代產品的 1/3…所以,其實 Tesla K10 應該不適合要做精確計算的使用者。

而雖然採用 GK110 的 K20 在規格裡面還有很多都是「To be announced」,但是在文件中來是有提到,他的理論雙精度浮點數計算能力,會是 M2090 的三倍!也就是將近 2 teraflops 了~這算是一個相當大的進步呢!

而 CUDA Compute Capability 的部分,之前最新的一直是 Fermi 架構 GPU 的 2.0;而這次在 CUDA 5.0 裡,則是一次加入了對應 Kepler 的 3.x~包括了 3.0 和 3.5 兩種,3.0 應該是對應目前市面上的 GK104(官方列表),3.5 或許就是對應 GK110、也就是 Tesla K20 吧~至於不同版本間的差異,就請參考 Programming Guide 裡的《Appendix F. COMPUTE CAPABILITIES》一節吧。


nVIDIA 在 CUDA 4.1 的時候,把編譯器的核心改成以 LLVM 為基礎的架構(參考);而現在,nVIDIA 似乎是把這個版本的 CUDA 編譯器貢獻出來給開放原始碼的社群了~原始新聞是《NVIDIA Contributes CUDA Compiler to Open Source Community》。

另外,隨著 CUDA 5 Preview 的發布,nVIDIA 也放出了「CUDA Compiler SDK Preview」(名稱應該是「libNVVM」,網頁),讓有興趣的開發者可以來使用。

看來以後能使用 CUDA 的方案,應該會越來越多吧!不過,不知道有沒有哪天,gcc 或 MSVC 會不會直接整合呢? :p


nVidia CUDA 相關文章目錄

對「nVIDIA 發表 CUDA 5 預覽版、Eclipse 版 Nsight、以及 Kepler 架構 Tesla!」的想法

  1. 想請問一下Heresy是在Linux上開發的嗎?
    我想試用Nsight eclipse來做gpu debugger可是卻連SDK裡的Sample都build不起來。
    用make是可以成功編譯,可是用Nsight eclipse就會找不到那些include file
    以前一直用msvc開發最近才跳來linux,也找不到Nsight eclipse的include directory要再哪邊設
    雖然Nsight的網頁說他有對SDK作深度整合,可是我卻連個專案檔都找不到orz

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.