Skip to content

Instantly share code, notes, and snippets.

@takagi
Created March 4, 2016 04:08
Show Gist options
  • Save takagi/3e4f3a8678a8f74e852e to your computer and use it in GitHub Desktop.
Save takagi/3e4f3a8678a8f74e852e to your computer and use it in GitHub Desktop.
sph
https://github.com/takagi/cl-cuda/tree/issue/49.symbol-macro
・時間を食う処理は、update-density と update-force で、全体の 90% 以上
・アルゴリズムは所与としたとき、GPU の使い方のレベルで高速化する余地はあるか?
 →メモリアクセスにあまり局所性がなさそう
 →グローバルメモリへのアクセスが律速なので、それ以上はもうやりようがない?
・グリッドやブロックの割当てはどのようにやるもの?
 →影響するパラメータを変えるたびに手計算してハードコードしているがそういうもの?
・粒子インデックスの計算はどのようにやるもの?
 →グリッドやブロックの割当て方に影響を受けるがそういうもの?
 →[0,n) でディスパッチしてくれたらいいのに
@takagi
Copy link
Author

takagi commented Mar 11, 2016

defglobal は毎回ロードが発生しますが、constant にするとキャッシュが効くので構文を追加した方が良いです。
(デバイスメモリがキャッシュされるアーキテクチャだと速度差はないかも)

takagi/cl-cuda@be9f065

浮動小数点の即値が無印でdoubleのまま出ており、Common Lisp側でsingle floatを指定したら、出力側の即値にfが付くように構文を変更した方が良いです。

takagi/cl-cuda@60afc2e

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment