nVIDIA 推出整合於 VisualStudio 的大量平行化開發工具:Parallel Nsight


header_parallel_nsight_tw 該說終於 release 了嗎?Parallel Nsight 在最初,應該是被叫做「Nexus」(以往新聞稿《NVIDIA針對開發人員推出Nexus》),主要的目的是用來協助 debug GPU 上的程式(CUDA C、HLSL、DirectCompute),並可進行程式碼的追蹤以及效能分析;實際上他也已經測試好一段時間了,Heresy 也有註冊下載,只是由於開發平台不合(Windows XP x64  orz),所以一直沒有真的在用他。

而過了這麼一段時間,Nexus 也終於準備推出了!同時,他的名稱也被修改為「Parallel Nsight」。他的中文官方網站為:http://www.nvidia.com.tw/object/parallel-nsight-tw.html,下載頁面則是http://developer.nvidia.com/object/nsight-downloads.html;不過根據下載頁面的資訊來看,目前應該還不是最後的正式版,還只是 Release Candidate 2。

Parallel Nsight 基本上的用處,主要就是讓使用 Visual Studio 的開發人員,可以更簡單地對在 GPU 上執行的程式進行偵錯、調整,包括了 GPGPU 方面的 CUDA C、OpenCL,以及電腦圖學方面的 Direct3D Shader。

根據官方網站的說法,它針對 GPGPU 的功能包括了:

  • 除錯器
    • 直接利用繪圖處理器,為運算核心進行除錯
    • 利用 Visual Studio 中用戶熟知的區域變數(Locals)、監看式(Watch) 、記憶體(Memory)和中斷點(Breakpoints)等視窗,檢視之上千款平行執行緒
    • 利用 Visual Studio 中的標準記憶體(standard Memory)視窗,直接查看繪圖處理器之記憶體
    • 利用條件式中斷點,在大量平行程式碼中快速地偵測並修正錯誤
    • 利用 CUDA C/C++ 記憶體檢查器(Memory Checker)檢測記憶體存取錯誤(memory access violations)
  • 分析器 (僅針對專業版本提供支援)
    • 擷取CPU和繪圖處理器等級的活動,其中包括:應用程式介面呼叫(API calls)、核心啟動(kernel launches) 、記憶體移轉(memory transfers)和自訂應用程式標註(custom application annotations)等
    • 單一相關時間軸,可顯示所有擷取活動
    • 時間軸檢查工具,檢查工作量之依賴度
    • 利用專門的意見報告,過濾並整理各個活動
    • 利用繪圖處理器效能計數器替CUDA核心完成設定檔

而針對 Graphics 的部分,功能則有:

  • 繪圖除錯器
    • 直接利用繪圖處理器,為所有 HLSL 繪圖著色器進行除錯
    • 利用 Visual Studio 中用戶熟知的區域變數(Locals)、監看式(Watch) 、記憶體(Memory)和中斷點(Breakpoints)等視窗,檢視之上千款平行執行緒
    • 利用所有由應用程式載入的著色器,以原始碼層級進行檢視和互動
    • 利用條件式中斷點,檢測出影響任何原始元素或像素的著色器
    • 即時為所有著色器或繪圖應用程式進行除錯
  • 繪圖檢查器
    • 針對 DirectX 著色工作進行即時檢測
    • 針對繪圖處理器之管線狀態進行互動式檢測,其中包括混合紋理、幾何和計算緩衝器的視覺化工作
    • 像素歷史,顯示所有影響原有像素的作業
    • 畫面檢查器,有效檢測效能瓶頸和繪圖處理器使用率
    • 儲存擷取畫面,以進行離線合作與分析

而目前 Parallel Nsight 是會分成兩種版本,包括了免費的 Parallel Nsight Standard,以及要付費的 Parallel Nsight Professional;兩者在功能上有些許的差異,有興趣的人可以參考官方網站的表格

在 Heresy 來看,Parallel Nsight 有許多功能都是相當實用的!如果可以有效利用的話,的確可以在程式開發上,減少不少開發所需的時間和精力~不過個人覺得比較可惜的是,他對於 OpenGL 和他的 GLSL 似乎沒有支援,所以在 Heresy 這邊的實用性就瞬間降低了不少啊…

而另外比較討厭的還有幾點,其一是他只能用在 Windows Vista SP1 / Windows 7 / Windows Server 2008 R2 + .NET Framework 3.5 SP1 + Visual Studio 2008 SP1 的環境上,也使得對於 Heresy 這邊目前來說還是無法真的拿來使用。

此外,他在使用上還是有不少軟體硬體配置上的限制,這部分詳細的說明,可以參考官方的《NVIDIA Parallel Nsight 1.0.10200 July 2010 Final Release Readme》(PDF 檔)。

簡單地說,要可以完整地使用 Parallel Nsight 的功能(四部分:CUDA C Source Debugger、D3D Shader Debugger、D3D Graphics Inspector、Analyzer)的話,他其實是需要兩台電腦的!其中一台電腦是拿來當作偵錯用的 Host,在這台電腦上必須要有一張 DX10 相容的顯示卡,並安裝 Visual Studio 2008 SP1 以及 Parallel Nsight 的程式;然後這台電腦則是透過網路,連到另一台被用來偵錯 target 電腦,這台電腦則是需要一張 GeForce 9 以上的顯示卡。如此一來,才能用來使用 Parallel Nsight 的四項功能。(另一個方案是單台電腦使用 SLI Multi OS,不過其實這和兩台電腦是一樣的意思)

如果只有一台電腦呢?那基本上 D3D Shader Debugger 是肯定不能用了。不過如果有兩張 GeForce 9 以上的顯示卡的話,CUDA C Source Debugger、D3D Graphics Inspector、Analyzer 這三類功能是還可以使用的。但是如果只有一張 GeForce 9 以上的顯示卡的話,就只剩下 D3D Graphics Inspector 和 Analyzer 的功能了…

在 Heresy 來看,這樣的配置對於一般的人來說,可能還滿難架設出來的吧?不過對於能夠架設成功的人來說,應該還是會有所幫助的。

對「nVIDIA 推出整合於 VisualStudio 的大量平行化開發工具:Parallel Nsight」的想法

發表迴響

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

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.