今回の記事が面白いと思った方は以下のボタンをクリックして下さい.
技術情報の最近のブログ記事
※ 【2012年1月6日追記:】
FreeBSD のドライバのバージョンを290.10に上げて再度試験を
しましたが、FreeBSD側の結果はほとんど変わりませんでした。
今回の記事が面白いと思った方は以下のボタンをクリックして下さい.
※他のGPUやドライバ環境については調査していない
<速度低下が確認されたディストリビューション>
Cent OS 6.1 ,Scientific Linux 6.1,Fedora 15
(3) 速度の低下の問題は、nvidia のドライバのバージョンに依存しない。
(4) 3D Desktop環境(Compiz)の有無による影響を調べたが、有意な差異は見られなかった。
※ただし、検証時はCompizは常時無効にして、3D Desktop環境による影響を
受けないように配慮した。
(5)FreeBSDやWindowsではこういった速度低下の問題は発生しない。
問題を単純化するために専用のベンチマークテスト用プログラムを作りました。このプログラムではOpenGLの glut で用意されている球物体を使ってレンダリングの速度を検証しています。
球物体をポリゴン分割し、その分割数に対応するフレームレートを計測します。
※今回のソフトウェアではFPSの計算部分についてはこちらのページを参考にさせていただいております。
横軸は球物体のポリゴンの分割数になります。経度・緯度方向それぞれに分割しますので、分割数の2乗でポリゴン数が増加します。
図1の結果からみるとポリゴンの分割数を増やしていくとLinux側の方がWindowsと比較して速度の低下割合が大きいことが分かります。
【計測結果からわかったこと】
先の記事でお示ししたLinuxのレンダリング速度が遅いという問題の原因はポリゴン数にありました。
田中ゼミが「次世代3DCGプロジェクト」で開発しているソフトウェアで描画しているCG物体は、美術品や人の肌等を精密意計測したものなので、ポリゴン数が極めて多いためLinuxで速度低下が顕著に表れたと考えられます。
今回の記事が面白いと思った方は以下のボタンをクリックして下さい.
今回の記事が面白いと思った方は以下のボタンをクリックして下さい.
後学期の授業に向けて田中先生の授業の準備を手伝っています。
今回の田中ゼミの学生の仕事は、授業で使う仮想環境を構築することです。
後期のコンピュータビジョン、オブジェクト指向、プログラミング関係の授業では、unix系のOS(FreeBSD) を使って授業を行うらしいです。
と、いうわけで田中ゼミ仕様のグラフィックスソフトウェア開発に特化したシステムを構築してみようと思います。
こちらが今回VirtualBox上に構築した仮想PCが動作している様子です。Windows上でFreeBSDが動作していることがわかります。
【仮想PCの構築】
今回仮想環境を構築するためのソフトウェアとしてVirtualBox 3.2.8 を使用します。
授業で提供する開発環境は以下のようになります。
- Windows上で仮想PCを用意して、その上にFreeBSD 8.1-stable(32bit)をインストールします。
- 仮想PC上のメモリはとりあえず512MB,HDDは20GBで動かすことを目指します。
- 配布時の仮想ディスクイメージは8GB以下に抑える(片面二層のDVD-Rに入れるため)
- デスクトップ環境は軽量化を意識して xfce 4.6.2
- 画像処理ソフトウェアは、ラスター方式はgimp 2.6.10, ベクター方式は inkscape 0.47
- 3DCG作成には Blender
- 開発環境として Eclipse
- コンピュータビジョン用ライブラリ OpenCV 2.1.0 の最新版
- emacs 等のテキストエディタを用意
- グラフ作成にはgnuplot 4.4.0
- 田中ゼミの開発環境(独自のライブラリやコマンド等)をインストール
【VirtualBox上にFreeBSDをインストール】
VirtualBox上にFreeBSDをインストールするのは比較的楽なのですが、その後、ソフトウェアのインストールをしていかなければなりません。
FreeBSDでは通常は ports と呼ばれるシステムを使って、ソースコードからコンパイルしてインストールするのですが、VirtualBox等の仮想環境上では処理速度が遅いので packege と呼ばれるコンパイル済みのアプリをインストールします。
packageを使った場合、ports からインストールするより少しバージョンが古くなってしまう場合があります。
【アプリケーションソフトのインストール・設定】
FreeBSDは普段から使いなれたOSなので、特に設定等で困ることはありませんでした。
OSのインストール作業が終わると、あとはアプリ等のインストール作業に入ります。
(1) 環境変数の設定
研究室から外部のサーバへアクセスする場合、プロキシ経由でないといけないので以下のように環境変数を設定します。
setenv HTTP_PROXY http://プロキシサーバ名:port番号
これを一つ設定しておけば、ftp 等も共通の設定で使用されます。
次にアプリをどこのサイトからインストールするか設定します。
setenv PACKAGESITE インストール元のサーバ名(日本国内の速度の速いところを設定)
(2) packageのインストール
こちらも非常に作業は簡単。以下のように pkg_add コマンドを使えば自動的にネットワークから依存関係も含めてアプリをダウンロードしてインストールしてくれます。
pkg_add -r パッケージ名
(3) 起動画面の設定
FreeBSDは何も設定していなければ起動時が地味で、デバイスの認識状況等が黒画面に次々と表示されていきます。
これだと味気ないので、Linuxのディストリビューションの多くが行っているような起動画面を表示させるようにしたいと思います。
こちらは起動画面を設定した後のFreeBSDの起動時の様子です。
FreeBSDのロゴも表示されてカッコよくなっています。
【起動画面の設定方法】
1024×768サイズのbmpファイル(256色インデックスカラーになっているもの)を用意します。
そのファイル名を bsd.bmp とすると、それを/boot/kernel/にインストールします。
その後、/boot/loader.conf に以下の設定を追加します。
bitmap_load="YES"
bitmap_name="bsd.bmp"
splash_bmp_load="YES"
vesa_load="YES"
(4) ログイン画面の設定
せっかく起動画面まで作ったので、次はログイン画面を設定します。
こちらもグラフィカルにログインできるようにします。
一般にgnome等ではgdmが使われますが、いろいろ余計なソフトウェアもインストールされるという問題があります。
田中ゼミのお気に入りは、slim と呼ばれるシステムでFreeBSDのテーマ(画面のデザイン)を使います。
slimのインストール方法
・pkg_add -r slim
・pkg_add -r slim-themes
slimの設定方法
/usr/local/etc/slim.conf の中の current_theme の値を fbsd にする。
つまり以下のような感じです。
current_theme fbsd
(5) 解像度を変更したり、マウスをシームレスモードにできるようにする(Guest Additions の設定)
(5-1) Guest Additions のインストール
VirtualBoxでは、GuestAdditionsと呼ばれる仮想PC用のドライバのパッケージがあり、これをインストールすると画面の解像度が自由に変更できたり、マウスカーソルをHost OSと Guest OSで自由に行き来できるシームレスモードが使えるようになります。
他のOSと異なりFreeBSDでは、このGuest Additions は、portsまたは、packageで用意されています。
インストール方法は、
pkg_add -r virtualbox-ose-additions
と入力すれば自動的にインストールされます。
次に次回起動時以降も自動的にドライバを認識させるために
/boot/loader.conf に
vboxguest_load="YES"
の一行を追加します。
(5-2) ドライバの有効化
その後、インストールしたドライバを有効にするために以下のようなコマンドを入力します。
Xorg --configure
その後、一度、再起動すれば設定は完了です。
【とりあえず、動作確認している様子】
一通りの設定が終わって動作確認をしている様子です。
それにしても散らかっている研究室です。
今回の記事が面白いと思った方は以下のボタンをクリックして下さい.