Ubuntu Linux の OpenGLの速度の問題 その2(Linux vs Windows)

今回はベンチマークテスト用の環境を作ってもう少し詳しく調べてみました。

特に Linux vs Windows でベンチマークテストを行って速度を比較しました。

それでいくつか分かったことがありますので、以下にその結果をまとめます。

【LinuxのOpenGLの問題】
いろいろ田中ゼミで検証した結果、

 (1) LinuxでnvidiaのGPU+メーカー製ドライバを使った場合、
  ポリゴン数が多くなるとOpenGLのレンダリング速度が急激に低下する。
  ※他のGPUやドライバ環境については調査していない

 (2)当初はUbuntuだけの問題と考えていたが、Ubuntu 以外のディストリビューションでも
  速度低下が確認された。
  ※以下のディストリビューションについて検証したが、他のディストリビューションについては未確認
  <速度低下が確認されたディストリビューション>
   Cent OS 6.1 ,Scientific Linux 6.1,Fedora 15

 (3) 速度の低下の問題は、nvidia のドライバのバージョンに依存しない。
  ※複数のドライババージョンで動作を確認

 (4) 3D Desktop環境(Compiz)の有無による影響を調べたが、有意な差異は見られなかった。
  ※ただし、検証時はCompizは常時無効にして、3D Desktop環境による影響を
    受けないように配慮した。

 (5)FreeBSDやWindowsではこういった速度低下の問題は発生しない。

ということが分かりました。


【計測方法】
上記の問題を検証するための実験を行いました。

問題を単純化するために専用のベンチマークテスト用プログラムを作りました。このプログラムではOpenGLの glut で用意されている球物体を使ってレンダリングの速度を検証しています。
球物体をポリゴン分割し、その分割数に対応するフレームレートを計測します。

glutでは、ティーポットや球などの形状情報が予め用意されていますが、これらは全てポリゴンで構成されています。
球物体では以下のように球をポリゴンで分割して描画します。

glutSolidSphere( 半径, 経度分割数, 緯度分割数);

【計測に使用したソフトウェア】
今回の実験用に田中ゼミで開発したベンチーマークソフトウェアを公開しますので、追試をしたい方はこちらのソフトウェアを使用してください。
※今回のソフトウェアではFPSの計算部分についてはこちらのページを参考にさせていただいております。

<<ビルド方法>>
ダウンロードしたntlab-oglbench.tgz を展開して make でビルドしてください。
なお、必要なライブラリは各自でインストールしてください。

<<実行方法>>
実行は簡単です。実行時に引数で分割数を与えるだけです。

例) たとえば、分割数 1000 にしたければ、

./ogl-bench  1000

とします。


【計測結果】
計測の結果を図1に示します。図1のグラフの縦軸は「毎秒何フレーム描画できるのか」を示すフレームレート(FPS)となります。FPSの数値が大きいほど高速に描画していることを示しています。
横軸は球物体のポリゴンの分割数になります。経度・緯度方向それぞれに分割しますので、分割数の2乗でポリゴン数が増加します。

図1の結果からみるとポリゴンの分割数を増やしていくとLinux側の方がWindowsと比較して速度の低下割合が大きいことが分かります。
また、今回の計測環境では、Linux側は分割数が1000を超えると速度が遅くなりすぎて計測不能になりました。

それに対してWindows側は分割数を増やしていっても 360fpsあたりで速度低下が止まります。(FreeBSDでもWindowsとほぼ同様な結果になります



111230bench-log.jpg



















図1.球物体の分割数による LinuxとWindowsのOpenGLの描画速度の比較



【計測結果からわかったこと】
実験の結果から、Linuxは他のOS(今回はWindwos)と比較して、ポリゴン数の増加に対して処理速度の低下が大きいことが分かります。
先の記事でお示ししたLinuxのレンダリング速度が遅いという問題の原因はポリゴン数にありました。

田中ゼミが「次世代3DCGプロジェクト」で開発しているソフトウェアで描画しているCG物体は、美術品や人の肌等を精密意計測したものなので、ポリゴン数が極めて多いためLinuxで速度低下が顕著に表れたと考えられます。



【計測の条件】
111230bench-pc.JPG























※ベンチーマークプログラムを動作させて速度を検証している様子

<ハードウェア>
 ドスパラ Prime Note PC Galleria MR6 
 CPU: Intel Core i7 2720QM
 GPU: nvidia GeForce 540M (2GB)
 メモリ: 8GB

<OS>
 Linux :Ubuntu Linux 11.10 64bit
 Windows: Windows 7 Professional 64bit SP1 

<ドライババージョン>
 Linux: nvidia driver  290.10
 Windows: nvidia driver 285.62(ノート用最新版)

<特に設定したこと>
 Linux:
 (1) デスクトップ環境を LXDEに変更(余計な負荷を減らすため)
 (2) 3D Desktop 環境 (Compiz)がOFFになっていることを確認

 Windows:
 (1) 垂直同期:強制オフ (これをしないと 60fps固定になる)


【2012年1月4日 追記、この記事の続編はこちら】

今回の記事が面白いと思った方は以下のボタンをクリックして下さい.

 人気ブログランキングへ にほんブログ村 大学生日記ブログ ゼミ・サークルへ



このブログ記事について

このページは、田中法博ゼミナールが2011年12月30日 21:27に書いたブログ記事です。

ひとつ前のブログ記事は「デザインプロジェクトのページ」です。

次のブログ記事は「Ubuntu Linux の OpenGLの速度の問題 その3(FreeBSD vs Linux)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

長野大学公式サイトへ