先日の記事で、田中ゼミで開発しているソフトウェアをNVIDIA社のCUDAに移植していかなければならないという話をしました。
この画像は後述するLinuxシステム上でCUDAのデモを実行している様子をキャプチャしたものです。
煙のオブジェクトがリアルタイムに動いています。
田中ゼミで開発しているシステムを改良して、より高速に高精細な3DCGを生成するためには、このCUDAは非常に強力なツールになりそうです。
このとき問題となるのが、開発環境をどうやって構築していくのか、ということです。
田中ゼミでは主たる開発環境として、OSはFreeBSDを使っていますが、CUDAの開発環境を構築するにはOSをWindowsかLinuxに移行する必要が出てきます。
開発環境の移行というものは、単に新しいOSをインストールして終わり、とか、新しいOS上で今開発しているソフトウェアを移植して終わり、というわけにはいかず実は大変な労力が伴います。
開発環境を移行することで発生するであろう大きな問題点は、以下のようにたくさんあります。
特に田中ゼミでは長年かけて開発環境を熟成させてきているので、新しい環境への移行にはいろいろと問題が発生する可能性があります。
まぁ、ゴチャゴチャ考えていても仕方ないので、とりあえず試験的に Ubuntu Linux を田中ゼミのPCにインストールしてみました。
インストールしたバージョンは、10.04LTS 64bit版です。
通常の使用であれば、32bit版をインストールすべきなのですが、田中ゼミではギガバイト単位の巨大な高精細画像データや形状データを扱うため、32bitのOSだとアドレス空間が足りません。
そのため、本年度田中ゼミでは、全てのOSを64bitに移行しました。
そういうことですので、Ubuntu も64bit版です。
ただ、そうすると日本語の設定やFlash等通常使うソフトウェアの設定が面倒になりますが、今回は仕方ありません。とりあえず、頑張ってみます。
Ubuntu Linuxは現在のLinuxのディストリビューションの中でもっとも人気のあるものです。Ubuntuを選択した理由としては、環境構築が簡単だということと、ユーザ数が多いということです。
特にユーザ数が多いということは、いろいろな不具合も解決されている可能性が高く、いろいろと利点が多いだろうと考えたからです。
とりあえず、Ubuntuを田中ゼミ仕様に設定していきます。
インストールと各種設定が終わったLinuxシステムに田中ゼミが開発しているレイトレーシングシステムを移植してみました。
このシステムはOpenGL+GLSLで記述しています。とりあえず、問題なく動いているようです。
さらにデジタルコスメ班が開発している人間の肌の3DCG生成システムを移植して実行してみました。
こちらも問題なく動いているようです。
※2010年9月5日追記(実は、後で速度面に問題があることが分かりました。)
以下の画像が、その結果です。人間の3DCG(肌の3DCG)が綺麗に生成されているのがわかるでしょうか。
と、以上のようにUbuntu Linuxの試験導入はほぼ問題なくできました。
とは言っても、細かい部分ではトラブったのですが、そういう部分は次回以降機会があれば、ご紹介いたします。
この画像は後述するLinuxシステム上でCUDAのデモを実行している様子をキャプチャしたものです。
煙のオブジェクトがリアルタイムに動いています。
田中ゼミで開発しているシステムを改良して、より高速に高精細な3DCGを生成するためには、このCUDAは非常に強力なツールになりそうです。
このとき問題となるのが、開発環境をどうやって構築していくのか、ということです。
田中ゼミでは主たる開発環境として、OSはFreeBSDを使っていますが、CUDAの開発環境を構築するにはOSをWindowsかLinuxに移行する必要が出てきます。
開発環境の移行というものは、単に新しいOSをインストールして終わり、とか、新しいOS上で今開発しているソフトウェアを移植して終わり、というわけにはいかず実は大変な労力が伴います。
開発環境を移行することで発生するであろう大きな問題点は、以下のようにたくさんあります。
特に田中ゼミでは長年かけて開発環境を熟成させてきているので、新しい環境への移行にはいろいろと問題が発生する可能性があります。
- 今まで開発してきたソフトウェアが問題なく動くかどうか?
- 今まで使っていた開発ツールが新しい環境でも全て揃うかどうか?、また、同じ動作をするのか?
- ソフトウェア作成時にAPI(Application Program Interface)と呼ばれるOS側の機能呼び出しが同様なものを持っているのか?、あるいは同様な動作をしてくれるのか?
- ソフトウェアやデータが保存される場所がどこに移動するのか?
- 今まで開発してきたソフトウェアが新しい環境で安定して動作してくれるのか?
- トラブルが発生した場合に対処方法はどの程度変わるのか?また、すぐに対処できるのか?
まぁ、ゴチャゴチャ考えていても仕方ないので、とりあえず試験的に Ubuntu Linux を田中ゼミのPCにインストールしてみました。
インストールしたバージョンは、10.04LTS 64bit版です。
通常の使用であれば、32bit版をインストールすべきなのですが、田中ゼミではギガバイト単位の巨大な高精細画像データや形状データを扱うため、32bitのOSだとアドレス空間が足りません。
そのため、本年度田中ゼミでは、全てのOSを64bitに移行しました。
そういうことですので、Ubuntu も64bit版です。
ただ、そうすると日本語の設定やFlash等通常使うソフトウェアの設定が面倒になりますが、今回は仕方ありません。とりあえず、頑張ってみます。
Ubuntu Linuxは現在のLinuxのディストリビューションの中でもっとも人気のあるものです。Ubuntuを選択した理由としては、環境構築が簡単だということと、ユーザ数が多いということです。
特にユーザ数が多いということは、いろいろな不具合も解決されている可能性が高く、いろいろと利点が多いだろうと考えたからです。
とりあえず、Ubuntuを田中ゼミ仕様に設定していきます。
- コマンドシェルを bash から tcsh に変更
- 今まで使っていたシェルスクリプトや設定ファイルをLinux用に書き換える
- デスクトップ環境の外観を好みのものに変更(GNOMEの設定)
- ショートカットやウィンドウ動作、エフェクト等の設定(GNOMEの設定)
- 漢字コードをEUC-JPからUTF-8へ変更(FreeBSDではEUC-JPを使っていたため)
- NVIDIAのCUDA対応ドライバをインストール(256.40)
- 開発に必要なツールのインストール
- ツール類の設定(Linuxだと微妙に修正が必要)
- 田中ゼミで開発しているソフトウェアやライブラリ類をLinuxに移植(Makefileの書き換えと再コンパイル等で対応)
- とりあえず、CUDAの開発環境をインストール(CUDA 3.1)
インストールと各種設定が終わったLinuxシステムに田中ゼミが開発しているレイトレーシングシステムを移植してみました。
このシステムはOpenGL+GLSLで記述しています。とりあえず、問題なく動いているようです。
さらにデジタルコスメ班が開発している人間の肌の3DCG生成システムを移植して実行してみました。
こちらも問題なく動いているようです。
※2010年9月5日追記(実は、後で速度面に問題があることが分かりました。)
以下の画像が、その結果です。人間の3DCG(肌の3DCG)が綺麗に生成されているのがわかるでしょうか。
と、以上のようにUbuntu Linuxの試験導入はほぼ問題なくできました。
とは言っても、細かい部分ではトラブったのですが、そういう部分は次回以降機会があれば、ご紹介いたします。
今回の記事が面白いと思った方は以下のボタンをクリックして下さい.