情報は力ではない

UE4 とか Blender とか。

CUDA

Merge Pathは何故うまく動くのかがわからない

1年以上ぶりの更新。少し前からmoderngpuというCUDAライブラリのコードを読んでいます。NVlabs/moderngpugithub.com と言っても全てではなくて、マージソートの部分。そのコードの中でMergePathという関数が出てくる。そのコードは20行も無いくらいのコード…

2.1 NVCC IDENTIFICATION MACRO

最近nvccのドキュメント読んでるので一応記録。 もうそろそろCUDA 6がリリースされそうなので、リリースされたら少し変わるかもしれない。今日は2.1節のみ。nvccでは__NVCC__マクロと__CUDACC__マクロが、あらかじめ定義されている。 __NVCC__ このマクロは…

CUDA プログラミング実践講座 6.8演習

説明が下手ですみません。 6.1 テキストに載ってるコードには無駄があるので改良しなさい、という問題。 まず図6.2のコードを改良したコードを次に示す。 配列のサイズのスレッドでは半分のスレッドが動作をしないので、実行コンフィギュレーションで配列の…

atomicAdd

悩んだこと 今日少し詰まったことがあった。それは次のようなもの。 訪れたことがない顧客を候補としてcandidates配列に格納し、candidatesのサイズを増やすというもの。候補者を探すのをスレッドで並列に行う。 しかし、こうすると上手くいかない。 本当は…

cudaMemcpyでハマったことの覚え書き

題名通り、cudaMemcpyの際にハマったことの覚え書き。 構造体のメンバに構造体 まず次のコードを見てください(プログラムの一部のみです)。 今日ハマったコードはこれではないですが、同様の問題を含んでいます。 problem_create()はsizeof(problem)バイト…

CUDA プログラミング実践講座 5.6演習

4章に引き続き5章の演習。 5.1 行列の和で共有メモリを使って帯域幅を減らせるかどうかという問題。 人にどう説明していいのかわからないけど、結論としては帯域幅は減らせない。 行列の和の計算なので、2つの入力行列の各要素を足してその結果を1つの出…

CUDA プログラミング実践講座 4.7演習

CUDA プログラミング実践講座の紹介 この本の原著は"Programmin Massively Prallel Processors A Hands-on Approarch"。2nd Editionが発売されたということもあるのか、1st EditionはPDFで公開されている。 2010年に出版されたということで本の中で出て来るG…