最終更新:2011-04-11 (月) 08:47:36 (4761d)  

CUDA SDK
Top / CUDA SDK

release 2.3からNVIDIA GPU Computing SDKに改称。

概要

  • CUDA開発者SDKは、CUDAを利用してソフトウェアを書き始めるのに役立つソースコードユーティリティ?ホワイトペーパー?とあわせて実例を提供します。

導入

コンパイル前のサンプルを起動したりサンプルソースコードをコンパイルしたりする前に

をインストールする必要があります。

http://www.nvidia.co.jp/object/cuda_sdks_jp.html

http://www.nvidia.co.jp/object/cuda_get_samples_jp.html

目次

サンプル

金融工学?

  • マルチGPUサポートによるモンテカルロ・オプション価格付け
  • モンテカルロ・オプション価格付け
  • ブラック‐ショールズ・オプション価格付け
  • 2項式オプション価格付け

CUDA基本トピック

  • 可分コンボリューション
  • テクスチャに基づいた可分コンボリューション
  • ブラック‐ショールズ・オプション価格付け
  • バイトニックソート
  • スカラー積?
  • クロック
  • マルチGPU
  • 整列タイプ
  • 非同期API
  • cudaOpenMP
  • シンプル・ストリーム
  • シンプル・アトミックス
  • デバイス・クエリ
  • シンプル・テンプレート
  • 帯域幅テスト
  • シンプル・テクスチャ(ドライババージョン)
  • シンプル・テクスチャ
  • 行列乗算(ドライババージョン)
  • 行列乗算
  • テンプレート
  • シンプルCUFFT
  • シンプルDirect3D
  • シンプルOpenGL
  • シンプルCUBLAS
  • C++統合

CUDA上級トピック

  • マルチGPUサポートによるモンテカルロ・オプション価格付け
  • FFT海洋シミュレーション
  • 256ビン‐ヒストグラム
  • 64ビン‐ヒストグラム
  • FFTに基づく2Dコンボリューション
  • メルセンヌ・ツイスター
  • モンテカルロ・オプション価格付け
  • 2項式オプション価格付け
  • 画像のノイズ除去
  • DirectXテクスチャ圧縮(DXTC)
  • N‐ボディシミュレーション
  • 並列約分
  • 高速ウォルシュ変換?
  • 固有値?
  • ソーベルフィルタ?
  • スキャン
  • 大規模配列のスキャン
  • 流体(OpenGLバージョン)
  • 流体(Direct3Dバージョン)
  • 1D離散ハール・ウェーブレット分解

CUDAシステム統合

  • マルチGPUサポートによるモンテカルロ・オプション価格付け

データ並列アルゴリズム

  • 256ビン‐ヒストグラム
  • 64ビン‐ヒストグラム
  • 可分コンボリューション
  • テクスチャに基づいた可分コンボリューション
  • バイトニックソート
  • N‐ボディシミュレーション
  • 並列約分
  • 高速ウォルシュ変換?
  • マンデルブロ?
  • スキャン
  • 大規模配列のスキャン

グラフィックス相互運用

  • FFT海洋シミュレーション
  • OpenGLでの後処理
  • ボックスフィルタ
  • N‐ボディシミュレーション
  • マンデルブロ
  • 粒子
  • ソーベルフィルタ
  • 流体(OpenGLバージョン)
  • 流体(Direct3Dバージョン)
  • シンプルDirect3D
  • シンプルOpenGL

画像/映像処理およびデータ圧縮

  • 256ビン‐ヒストグラム
  • 64ビン‐ヒストグラム
  • 可分コンボリューション
  • テクスチャに基づいた可分コンボリューション
  • FFTに基づく2Dコンボリューション
  • 画像のノイズ除去
  • DirectXテクスチャ圧縮(DXTC)
  • OpenGLでの後処理
  • ボックスフィルタ
  • 高速ウォルシュ変換
  • ソーベルフィルタ
  • シンプル・テクスチャ(ドライババージョン)
  • シンプル・テクスチャ
  • シンプルCUFFT
  • 1D離散ハール・ウェーブレット分解

線形代数

  • FFT海洋シミュレーション
  • 可分コンボリューション
  • テクスチャに基づいた可分コンボリューション
  • FFTに基づく2Dコンボリューション
  • 行列転置
  • スカラー積?
  • 高速ウォルシュ変換
  • 固有値?
  • 行列乗算(ドライババージョン)
  • シンプルCUBLAS
  • 行列乗算

パフォーマンス戦略

  • マルチGPUサポートによるモンテカルロ・オプション価格付け
  • 行列転置
  • クロック
  • 整列タイプ
  • 並列約分
  • 非同期API
  • シンプル・ストリーム
  • 帯域幅テスト
  • スキャン
  • 大規模配列のスキャン

物理学に基づくシミュレーション

  • FFT海洋シミュレーション
  • N‐ボディシミュレーション
  • 粒子
  • 流体(OpenGLバージョン)
  • 流体(Direct3Dバージョン)

テクスチャ

  • シンプルDirect3Dテクスチャ

Change Log

Release 2.3

  • Changing the name NVIDIA CUDA SDK -> NVIDIA GPU Computing SDK
  • Added PTXJIT
    • New SDK sample that illustrates how to use cuModuleLoadDataEx?
    • Loads a PTX source file from memory instead of file.
  • Added cudaDecodeD3D9 and cudaDecodeGL
    • NVCUVID now support for OpenGL interop, these two new SDK samples illustrates how to use NVCUVID to decode MPEG-2, VC-1, or H.264 content.
    • The samples show how to decode video and pass to D3D9? or OpenGL, however these samples do not display the decoded video frames.

Release 2.2.1

  • Updated Cuda.Rules files (no long uses -m32) to generate CUBIN/PTX output,
  • Cuda.rules option to generate PTX and to inline CUDA source with PTX generated assembly
  • CUDA Driver API samples: simpleTextureDrv?, matrixMulDrv?, and threadMigration have been updated to reflect changes:
    • Previously when compiling these CUDA SDK samples, GCC would generate a compilation error when building on a 64-bit Linux OS if the 32-bit glibc compatibility libraries were not previously installed. This SDK release addresses this problem. The CUDA Driver API samples have been modified and solve this problem by casting device pointers correctly before being passed to CUDA kernels.
    • When setting parameters for CUDA kernel functions, the address offset calculation is now properly aligned so that CUDA code and applications will be compatible on 32-bit and 64-bit Linux platforms.
    • The new CUDA Driver API? samples by default build CUDA kernels with the output as PTX instead of CUBIN. The CUDA Driver API samples now use PTXJIT to load the CUDA kernels and launch them.
  • Added sample pitchLinearTexture? that shows how to texture from pitch linear memory

Release 2.2 Final

  • Added Mandelbrot (Julia Set), deviceQueryDrv?, radixSort, SobolQRNG, threadFenceReduction?
  • Supports CUDA Event Blocking Stream Synchronization (CU_CTX_BLOCKING_SYNC) on Linux and Windows
  • New CUDA 2.2 capabilities:
    • supports zero-mem copy (GT200, MCP79)
    • supports OS allocated pinned memory

Release 2.1

  • CUDA samples that use OpenGL interop now call cudaGLSetGLDevice after the GL context is created. This ensures that OpenGL/CUDA interop gets the best possible performance possible.
  • Projects that depend on paramGL now build the paramGL source files instead of statically linking with paramGL*.lib.
  • Bug fixes

Release 2.1 Beta

  • Now supports Visual Studio 2008 projects, all samples also include VS2008
  • Removed Visual Studio 2003.NET? projects
  • Added Visual Studio CUDA.rules to support *.cu files.--Most projects now use this rule with VS2005 and VS2008 projects.
  • Added CUDA smokeParticles (volumetric particle shadows samples)
  • Note: added cutil_inline.h for CUDA functions as an alternative to using the cutil.h macro definitions
  • Default CUDA SDK installation folder is under "All Users" or "Current User" in a sub-folder "Application Data\NVIDIA Corporation\NVIDIA CUDA SDK".--See section "III. Known issues" for more details.

Release 2.0 Beta2

  • 2 new code samples: cudaVideoDecode? and simpleVoteIntrinsics?

Release 2.0 Beta

  • Updated to the 2.0 CUDA Toolkit
  • CUT_DEVICE_INIT macro modified to take command line arguments. All samples now support specifying the CUDA device to run on from the command line (-device=n).
  • deviceQuery sample: Updated to query number of multiprocessors and overlapRflag.
  • fluidsD3D sample: Renamed to fluidsD3D9 and updated to the new Direct3D interoperability API.
  • multiGPU sample: Renamed to simpleMultiGPU.
  • reduction, MonteCarlo?, and binomialOptions samples: updated with optional double precision support for upcoming hardware.
  • simpleAtomics sample: Renamed to simpleAtomicIntrinsics?.
  • simpleD3D sample: Renamed to simpleD3D9 and updated to the new Direct3D interoperability API.
  • 7 new code samples: dct8x8, quasirandomGenerator, recursiveGaussian, simpleD3D9Texture, simpleTexture3D, threadMigration, and volumeRender

Release 1.1

  • Updated to the 1.1 CUDA Toolkit
  • Removed isInteropSupported?() from cutil: graphics interoperability now works on multi-GPU systems
  • MonteCarlo? sample: Improved performance.--Previously it was very fast for large numbers of paths and options, now it is also very fast for small- and medium-sized runs.
  • Transpose sample: updated kernel to use a 2D shared memory array for clarity, and optimized bank conflicts.
  • 15 new code samples: asyncAPI, cudaOpenMP, eigenvalues, fastWalshTransform?, histogram256, lineOfSight?, Mandelbrot, marchingCubes, MonteCarloMultiGPU, nbody, oceanFFT, particles, reduction, simpleAtomics, and simpleStreams

Release 1.0

  • Updated to the 1.0 CUDA Toolkit.
  • Added 4 new code samples: convolutionTexture, convolutionFFT2D, histogram64, and SobelFilter?.
  • All graphics interop samples now call the cutil library function isInteropSupported?(), which returns false on machines with multiple CUDA GPUs, currently (see above).
  • When compiling in DEBUG mode, CU_SAFE_CALL() now calls cuCtxSynchronize?() and CUDA_SAFE_CALL() and CUDA_CHECK_ERROR() now call cudaThreadSynchronize?() in order to return meaningful errors. This means that performance might suffer in DEBUG mode.

Release 0.9

  • Updated to the 0.9 CUDA Toolkit.
  • Added 6 new code samples: MersenneTwister?, MonteCarlo?, imageDenoising, simpleTemplates, deviceQuery, alignedTypes, and convolutionSeparable.
  • Removed 3 old code samples: - vectorLoads and loadUByte replaced by alignedTypes; - convolution replaced by convolutionSeparable.

Release 0.8.1 beta

  • Standardized project and file naming conventions. Several project names changed as a result.
  • cppIntegration output now matches the other samples ("Test PASSED").
  • Modified transpose16 sample to transpose arbitrary matrices efficiently, and renamed it to transpose.
  • Added 11 new code samples: bandwidthTest, binomialOptions, BlackScholes?, boxFilter, convolution, dxtc, fluidsGL, multiGPU, postProcessGL, simpleTextureDrv?, and vectorLoads.

Release 0.8 beta

  • First public release.