なんだかすごく質問しにくい流れなんですがいいですか?
バイトニックソートのプログラムを作ってみまして、
要素数512を境にGPUの方が速くなったのは良かったんですが、
要素数8192くらいからGPUの時間増加の傾きがCPUより悪化してしまって、
1048576ともなるとほとんど大差ないくらいになってしまいました。
これが普通なのか、おかしいのか、
おかしいなら原因として何がありそうか教えてほしいです。
一応可能なところはshared memory使ってますが、要素数256以降は
比較の組がとびとびになるはずなのでglobal memoryを直接読んでます。
以下、ソートを10000回繰り返した際の1回あたりの所要時間です。
要素数 CPU[s] GPU[s] CPU/GPU
2 0.00000 0.00004 0.004
4 0.00000 0.00005 0.008
8 0.00000 0.00005 0.011
16 0.00000 0.00006 0.020
32 0.00000 0.00007 0.036
64 0.00001 0.00008 0.099
128 0.00002 0.00009 0.229
256 0.00005 0.00010 0.522
512 0.00013 0.00013 1.027
1024 0.00031 0.00016 1.909
2048 0.00076 0.00025 2.975
4096 0.00179 0.00036 4.919
8192 0.00423 0.00068 6.248
16384 0.00933 0.00202 4.627
32768 0.02142 0.00637 3.363
65536 0.04903 0.01776 2.761
131072 0.10829 0.05003 2.165
262144 0.24928 0.13078 1.906
524288 0.54765 0.32437 1.688
1048576 1.22586 0.77101 1.590