ようやくPCが直ったので、先日作ったVoxelizeのテストプログラムを計測しなおしてみました。
新しいPCは以下の構成になってます。
- Intel-Z77
- Core-i7 3770
- GTX680
- Windows8 64bit
voxel解像度 | 643 | 1283 | 2563 | 5123 |
処理時間 | 0.70ms | 0.68ms | 0.73ms | 0.94ms |
処理時間(クリア時間含む) | 0.71ms | 0.74ms | 1.2ms | 4.6ms |
計算時間を見る限り2563以下はGeometryShaderがボトルネックとなっているようです。5123でようやく解像度による処理時間の差が計測できるようになりました。また、5123という非常に高解像度なVoxelizeでも1ms以下で処理を行うことができます。一方でRenderTargetのクリア時間は解像度に応じて順当に増加しています。
せっかくなので、5123におけるGTX480とGTX680の処理時間を比較してみます。
GPU | GTX480 | GTX680 |
処理時間 | 1.98ms | 0.94ms |
処理時間(クリア時間含む) | 8.7ms | 4.6ms |
Voxelizeの処理速度は200%以上の伸び率になりました。この辺りは単純なFLOPSの差だけではなく、UAVの処理等でも差が出ているものと思われます。また、計算時間もさることながら、RenderTargetのクリア時間も相当短縮されました。約180%の伸び率です。ただし、GTX480とGTX680は共にGDDR5を採用しており、動作周波数とバス幅に違いがありますが、メモリ帯域にこれほどの違いはありません。RenderTargetのクリア処理に、なんらかの最適化が施されているようです。