リベンジといっても最適化したんじゃなくてただ実行するマシンを変えてみただけ。
マシンは
CPU: Xeon L3406
GPU: Geforce GTX 460
OS: Ubuntu 13.04
メモリ: 4GB
ちなみに前回は
CPU: Core 2 Duo 2GHz
GPU: Geforce 9400M
OS: Mac OS X 10.8.4
メモリ: 8GB
処理内容は前回と同じく約100万(1024 * 1024)要素のunsigned intのソート。
ソースは前回載せたので今回はなし。
ヤバイ!自分で適当に書いたバイトニックソートがthrust::sortと同じ速さ!
というかGTX 460の懐の深さすごい。
std::sortも全コア(2コア)使い切るようにしたらもう少し速くなると思う。
ただ、std::sort(クイックソート)を普通に使ってるだけでは完全並列に実行するのは不可能だと思うので2倍とかにはならないと思うけど、
CPUにおける並列処理に適したソート方法(並列クイックソートとか?マージソートと組み合わせるとか?)を使えば結構速くなりそうな気はする。
自分のバイトニックソートの書き方は最近のGPU向けとしては間違ってなかったんや!と思ったけど、特に深く考えて実装したワケじゃないのでアレです。
今回thrust::sortは、てきとーバイトニックソートに追いつかれてしまったけど、前回もGeforce 9400Mで同じぐらいの速度(約0.05秒)が出てた事を考えるとやはりすごい。
ちなみに、バイトニックソートの方は値の交換範囲がブロックごとのスレッド数以下のときに共有メモリ上で値を交換するように実装してみたけど、逆に微妙に遅くなってしまったので元に戻した。
これは、Geforce 9400MでもGTX 460でも同じだった。
コアレッシング能力が高いGTX 460で変わらないのは分かるけど、9400Mでもそうなのが解せない。
自分で書いたカーネルなのに、まだグローバルメモリへのアクセスパターンが良くわかってないぽい。
最近のコメント
名前
しゅごい
Jane Doe
FYI Avoid Annoying Unexpe…
Jane Doe
ご存じとは思いますが、whileには、”~の間”と…
peta_okechan
針金みたいなパーツを引っ張ると外れます。 他の方の…
虎徹ファン交換
虎徹の標準ファンを外す際に、どのようにして外されま…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…