顯示具有 cuda 標籤的文章。 顯示所有文章
顯示具有 cuda 標籤的文章。 顯示所有文章

2010年11月17日 星期三

NVIDIA 推出 CUDA Toolkit 3.2 正式版

NVIDIA 推出了 CUDA Toolkit 3.2 正式版。重要的新功能包括新的 CUDA 程式庫(包括稀疏矩陣程式庫 CUSPARSE、亂數產生器 CURAND、以及 H.264 壓縮/解壓縮程式庫),新的硬體支援(如 6GB Tesla 以及 TCC 模式),並支援 Intel ICC 11.1 編譯器(64 bits Linux 版本)。其它功能包括在 kernel 中支援記憶體管理功能(malloc 及 free)以及 NVIDIA SMI 介面可用於存取各種 GPU 相關效能數據。

不幸的是,CUDA Toolkit 3.2 的 OpenCL 仍為 1.0 版。

2010年7月21日 星期三

NVIDIA 推出 Parallel Nsight 1.0

NVIDIA 推出 Parallel Nsight 1.0 GPU 發展工具。Parallel Nsight 可以和 Microsoft Visual Studio 配合,提供直接在 GPU 上進行 debug、觀察 GPU 記憶體內容、設定中斷點、以及檢測是否有不良記憶體存取動作等。Parallel Nsight 專業版則另外提供了進一步的分析工具,可以分析 CUDA 程式的事件(包括 API 呼叫、記憶體傳輸等),並透過 GPU 內建之效能計數器分析 CUDA 程式的效率。在繪圖方面,Parallel Nsight 1.0 也可針對 HLSL shader 進行 debug 與效率分析的動作。

Parallel Nsight 1.0 標準版為免費提供,而專業版則有限時免費試用版。

2010年6月26日 星期六

NVIDIA 推出 CUDA 3.1 Toolkit

NVIDIA 推出了 CUDA 3.1 Toolkit。CUDA 3.1 主要的新功能包括:
  • GPUDirect(tm) 技術,讓三方裝置可以直接存取 CUDA 記憶體
  • 在 Fermi GPU 上支援最多同時執行 16 個不同 kernel 的功能
  • 讓 CUDA Driver API、Runtime API、及數學程式庫可以共用資料
  • 新的程式語言功能,包括:支援 printf()、函式指標、及遞迴
  • 新的 Visual Profiler 同時支援 CUDA 及 OpenCL
  • 數學程式庫的加強
  • 更多的 SDK 程式範例

2010年3月20日 星期六

2010年2月19日 星期五

NVIDIA 發表新的 CUDA 3.0 Programming Guide

NVIDIA 發表了新的 CUDA 3.0 Programming Guide 以及針對 Fermi 的相關文件,包括:

在 Fermi Tuning Guide 中有提到一些關於 Fermi 架構上的相關資訊。

2009年5月7日 星期四

NVIDIA 推出 CUDA 2.2

NVIDIA 正式推出了 CUDA 2.2。比較特別的新功能包括:

  • Zero-copy 模式:在 GT200 及 MCP79 系統上,GPU 可以直接讀取主記憶體上特定位置的資料,節省一個 copy 的動作。
  • 在 Vista/Windows 7/Server 2008 上支援非同步記憶體操作。
  • 支援 GT200 上的更多 profiling 功能。
  • 支援 blocking sync(代替 spinning lock)。
  • __threadfence() 功能(memory fence)。

2009年4月10日 星期五

OpenCL Jumpstart Guide

NVIDIA 發表了一篇 OpenCL Jumpstart Guide,主要內容是比較 CUDA 和 OpenCL 的差別,並提出一些從 CUDA 轉換到 OpenCL 時需要注意的一些事項。

2008年12月1日 星期一

NVIDIA 推出 CUDA 2.1 beta 版 SDK

NVIDIA 推出了 2.1 beta 版的 CUDA SDK,主要的新功能包括支援 Windows Vista 下使用 Tesla、支援 Microsoft Visual C++ 9(即 Visual C++ 2008),同時移除對 Visual C++ 7(即 2003)的支援,同時也開始提供對 Direct3D 10 的支援。

2008年9月10日 星期三

Real World Tech 的 NVIDIA GT200 文章

Real World Technologies 的 David Kanter 寫了一篇從 GPGPU 角度介紹 NVIDIA GT200 的文章。裡面對 GT200 及 G80 的架構有相當詳盡的分析,相當值得參考。

NVIDIA's GT200: Inside a Parallel Processor

2008年8月21日 星期四

NVIDIA 發表 CUDA 2.0 正式版

NVIDIA 發表了 CUDA 2.0 的正式版及配合的 driver,可以在這裡下載。

2008年6月19日 星期四

NVIDIA 發表配合 GT200 顯示晶片的 CUDA 2.0 beta 版

NVIDIA 發表了配合新的 GT200 顯示晶片的 CUDA 2.0 beta 版,可以在這裡取得。
GT200 顯示晶片是屬於 CUDA compute 1.3(之前 G80 系列是 1.0,而 G84/86/92 則是 1.1)。目前不清楚哪些顯示晶片會是 1.2。根據最新的 programming guide,1.2 新增的功能包括:
  • Shared memory 有 atomic 操作功能
  • Global memory 的 atomic 操作,增加 64 bits 運算(1.1 只有 32 bits)
  • 支援 warp vote
  • 每個 MP 暫存器數目加倍至 16,384 個
  • 每個 MP 同時可以進行的 warp 數目增加到 32 個(原為 24 個)
  • 每個 MP 同時可以進行的 thread 數目增加到 1024 個(原為 768 個)
1.3 新增的功能則很簡單,只有一樣:
  • 增加 double precision 的支援
在 shared memory 中的 atomic 操作,在某些應用是相當有用的。例如,在計算 histogram 的時候,如果每個 thread 要負責進行一個區塊的 histogram 計算,則因為在之前的 GPU 中,shared memory 並沒有 atomic 操作,所以會使得每個 thread 都需要有自己的 histogram 才行。但是這樣需要的記憶體量又太多,使得 thread 數目受限。NVIDIA 的 sample 中,是利用一些 trick(即每個 MP 同時只有 32 個 thread 在跑的這一點)來避免這個問題,但這樣的 trick 太過依賴裝置特性,並不是好的做法。而現在有了 shared memory 的 atomic 操作,就可以不需要使用這種 trick 了。
Warp vote 則是用來減少同一個 warp 中,因為不同的分支而造成 serialization 的問題。這是因為在 CUDA 中,同一個 warp 的各個 thread 如果有不同的條件分支結果,就會需要 serialize,造成速度上變慢。利用 warp vote,就可以強迫一個 warp 只有一種條件分支結果,以避免 serialization 出現。
另一個值得注意的就是 GT200 的 double precision 運算。根據 Programming Guide 的資料,double precision 的四則運算和平方根,完全符合 IEEE 754 的規範(single precision 的除法和平方根無法符合 754 規範的精確度,因為它是用乘上倒數的方式做的)。這對一些科學計算的應用會比較方便。Double precision 的加法、乘法、和 FMA 也支援 IEEE 754 規定的各種不同的 rounding mode(single precision 只支援 round-to-zero 和 round-to-nearest)。

2008年4月17日 星期四

NVIDIA 發表 CUDA 2.0 beta 版

NVIDIA 發表了 CUDA 2.0 beta 版的 Toolkit 和 SDK。這一版主要新增的功能,是對 Windows Vista 的支援(包括 32 bits 和 64 bits 版本)。NVIDIA 目前沒有提到其它 2.0 版新增的功能包括哪些,但大致上看起來,2.0 版包括了新的文件檔(其中包括一個使用 chm 格式、較容易查詢的 CUDA Reference Manual),以及新的 sample。比較細節上的新功能,目前看起來包括 3D 貼圖的支援,以及 cudaGetDeviceProperties 增加了 multiprocessor 數目以及 device 是否支援重疊操作的欄位。

CUDA 2.0 beta 可以在這裡下載