パーリンノイズは擬似テクスチャを生成するのに使われる一般的なアルゴリズムである.次はノイズ関数の教科書どおりの実装である:

関数をロードする:
ノイズアルゴリズムで使われる置換表を生成する:
幅と高さを設定する.出力メモリも割り当てる:
パーリンノイズのパラメータを設定する:
パーリンノイズ関数を呼び出す.出力は
CUDAMemoryハンドルである:
メモリがGPUから取り出され,画像として表示される:
結果に
Manipulateを使うと,パラメータを変化させて出力を見ることができる:
パーリンノイズで手続き型の地形を作成することができる.幅高さを定義し,地形のためのメモリを割り当てる:
地形を定義するのに使われるパラメータ:
データを取り出し,標高マップを平坦にするのに画像処理関数を適用する:
結果は山脈のようである:
メモリの割当てを解放する:
ノイズのパラメータを変化させると,異なるパターンになる.木のテクスチャを作る:
以下は木についての既知のパラメータである:
グレースケールに再び色を付けるヘルパー関数を定義する:
木のテクスチャを生成する:
前と同様に,結果の面をプロットする:
もとのソースコードはより多くのノイズ関数を定義している.関数をロードする:
Manipulateを使って別のノイズ関数を示す:
割り当てたメモリを解放する:
ヒストグラムアルゴリズムは値によって要素を別々のビンのリストに分ける.次の例は0から255までの値を別々のビンに分けるヒストグラムを実装する:
2つのCUDAカーネル関数をロードする:
サンプルデータを取得する.この場合は画像が選ばれ,
ImageDataを平坦化する:
アルゴリズムには中間ヒストグラムに使われる一時データが必要である:
部分ヒストグラムを計算し,それを前に生成した中間リストに置く:
一時ヒストグラムを結合する:
出力ヒストグラムを得る:
一時メモリをアンロードする.これを行わないと,メモリリークが起こる:
出力ヒストグラムをプロットする:
走査,つまりプレフィックス和は
FoldListに似ており,さまざまな状況で使える非常に便利なプリミティブである.CUDAの実装は以下にある:
計算に使用する3つのカーネルをロードする:
ランダム入力データを生成する:
出力バッファを割り当てる:
ブロックとグリッドの次元を計算する:
一時バッファが計算に必要である:
走査を行う:
出力バッファを取り出す:
リダクションカーネルは指定のバイナリ操作によるリストのリダクションという意味で,
Mathematica の
Foldに似ている.操作が計算で前の要素を維持するのに対し,リダクションはそれを削除する.
リダクション
CUDAFunctionをロードする:
入出力バッファを設定する:
計算を行う:
各ブロックはリストの512要素のリダクションを行う.つまり,512要素より大きいリストのリダクションには複数回の呼出しが必要となる.次のリストは小さく,ループが必要ない.前のステップから出力メモリを取得し,

のメモリを

に割当て,

を解放する:
新しい出力バッファを割り当てる:
2回目のリダクションを行う:
出力を取り出し,出力バッファをアンロードする:
結果は Mathematica のものと一致する:
次の例はRGB色空間からHSBへの色の変換を実装する.CUDAによる実装は以下のファイルにある:
ソースファイルから

をロードする:
入力画像と入力パラメータを設定する:
出力のためのメモリを割り当てる:
画像をHSB色空間に変換する:
デフォルトでは,
ImageはRGB色空間のデータを見る.結果は間違った出力となる:
適切な出力を得るために
ColorSpace
を使う:
次のコードはシーザー暗号を実装する.シーザー暗号はテキストの各文字に3を足す簡単な暗号法である.以下がCUDAの実装である:
例に使うテキストをロードする.この場合はアメリカ独立宣言書がロードされる:
コード文字列から関数をロードする:
CUDA関数を呼出し,出力の最初の100を表示する:
移動平均を実装する:
マクロ

を

として定義する
CUDAFunctionをロードする:
入力パラメータを定義し,出力用のメモリを割り当てる:
出力メモリを取得する:
メモリをアンロードする:
ブラック-ショールズ方程式はよく金融の計算で使われる.
CUDALink には
CUDAFinancialDerivativeがあり,これは金融オプションの計算ができる.これがどのように書かれているかを例示するために,簡単なバージョンを実装する:
CUDAFunctionをロードする.

が

として解釈されるように

を

に設定する:
入力パラメータを割り当てる:
関数を呼び出す:
出力メモリを取得する:
割り当てられたメモリをアンロードする: