1/27/2014

Ubuntu12.04でCUDA5.5開発環境

Ubuntu12.04でCUDAの開発環境を整えてみるメモ


CUDA5.5のTookKitを以下からダウンロード
https://developer.nvidia.com/cuda-downloads

うちのマシンはUbuntu12.04 64bitなので、それようのdebパッケージをもらってくる。これはレポジトリ追加するだけのもののようだ。
で、これを普通にパッケージマネージャでインストールして
$ sudo apt-get install cudaとかやると依存関係のエラーが出てきて、にんともかんともな感じに突入。


仕切り直し。

まず、nvidia関連のパッケージを削除しまくる。
$ sudo dpkg -l | grep nvidia | grep '^ii'

とかで出てきたやつをapt-get removeで片っ端から削除。

$ sudo gdebi cuda-repo-ubuntu1204_5.5-0_amd64.deb

でリポジトリを追加して、

$ sudo apt-get update
$ sudo apt-get install cuda

でインストールできた。

/usr/local/cuda-5.5に一式インストールされる。このままだとパスが通ってなくて不便なので
.bashrcの末尾に以下を追加

export PATH=/usr/local/cuda-5.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-5.5/lib64:$LD_LIBRARY_PATH

64bit版じゃない場合はlib64じゃなくて単にlib

で、eclipseベースのIDE環境でnsightというのが、もれなくインストールされるらしいので試す。/usr/local/cuda-5.5/binにインストールされているので、パスが通ってれば適当にターミナルから以下のコマンドで起動。

$ nsight


















/usr/loca/cuda-5.5/samplesに諸々サンプルがあるので、homeにコピーする。
適当なやつをeclipse(nsight)にインポートしてビルドしてみる。

いくつかサンプルをビルドしてみたが問題なく通る。が、Runしようとするとバイナリがないとか言われる。ターミナルから直接バイナリを実行するとできるので、インポートの方法がまずいのかなー。
eclipseのプロジェクトのプロパティからRun/Debug Settingで直接バイナリを指定したらEclipse側でRunできた。


2_Graphics/simpleTexture3D を実行



















Runができたところで、EclipseのパースペクティブをProfileに切り替えて、試しにプロファイルをとってみた。

















へー。真面目にパフォーマンスを分析するには有用かも。

そんなこんなで、今日は終了。


1/15/2014

LinuxでOpenGL

今日も寒いなー。金沢に活動拠点を移して早3ヶ月。転職して、キャリアや趣向にも変化があり、x86や組み込みという路線から、VRを軸に画処理、射影変換や3D/2Dグラフィックス路線に以降ぎみであります。気づいたらkinectやOculusとか、レンズやら、へんな3D眼鏡でいっぱいになってる。

そんなこんなで、気づいたら去年はほとんどブログ書いてないと気づく。(下書きはちょいちょいあるんだが)
で、なんとなく久々にブログ書いてみる。というか、ほぼメモ


LinuxでOpenGLプログラミングをするメモ。現在、Ubuntu12.04を使用。まあディストリ変わってもパッケージマネージャの違いだけで、やることは大差ないと思われる。

glutを使います。OpenGLプログラミングでウインドウ周りの描画の面倒を見てくれる、よく使われるライブラリ。結構枯れたライブラリでWindowsでもよく使われるので、サンプルコードはググればいろいろ出てきます。


さしあたって以下をインストール

$ sudo apt-get install freeglut3-dev libglew1.6-dev

ほかにも以前に入れたものでいるものがあったかも。

コンパイラ一式の導入がまだなら以下でがっぽり入ります。

$ sudo apt-get install build-essential


で、テストコード
test.c

#include <GL/glut.h>

int main(int argc, char *argv[])
{
  glutInit(&argc, argv);
  glutCreateWindow(argv[0]);
  glutMainLoop();
  return 0;
}


コンパイル

$ gcc test.c -lglut


実行

$ ./a.out

でコンパイルが成功してればウインドウが出る。



続いてEclipseでやる方法

Eclipseの導入とCDTのインストールは、端折りまして
普通にコード書いてもコンパイル通らないはず。
プロジェクトのプロパティで「GCC C++ Linker」の「Libraries」に「glut」を追加。
でRunできる。


そんなところ。

今日は、ライトな内容ですが以上っす。