Barracudaをつかってみる。
最近興味のあるOpenCL。
そんなOpenCLを使ってみましょう言うことで。
またまた最近興味のあるRubyからOpenCLを使える
そんなラッパーの一つに"Barracuda"というものがあるそうで。
今回はこちらを使ってみましたので、その際の環境構築等備忘録を。
環境
- Mac OSX 10.6.8
- Ruby 1.8.7
- gem 1.8.24
gemのインストール
Macでは初めからRubyが使えますので、そこは置いておいて。
gemを利用してBarracudaをインストールしていきたいと思います。
といっても、まずはgemのインストールからですね。
こちらは、便利なものがよくわからなかったので最新版をソースから入れたいと思います。
ダウンロードしたものを、
$ unzip rubygems-1.8.24.zip
と解凍して
$ cd rubygems-1.8.24
フォルダ内に移動。
続けて、
$ ruby setup.rb
とコマンドを入力してgemのインストールが完了します。
試しに実行してみると、
$ gem -v
1.8.24
という感じに表示されるのではないでしょうか?
Barracudaのインストール
gemが使えるようになっていると思いますので、あとはサクっと。
# gem install barracuda
Building native extensions. This could take a while...
Successfully installed barracuda-1.3
1 gem installed
Installing ri documentation for barracuda-1.3...<省略>
Installing RDoc documentation for barracuda-1.3...<省略>
こんな感じで、問題なくインストール出来るかと思います。
ただし!
私同様、事前にXcodeをインストールしていない環境で、
gemからでも、ソースコードからでも、インストールしようとすると
sudo gem install pkg/barracuda-1.3.gem --local
Building native extensions. This could take a while...
ERROR: Error installing pkg/barracuda-1.3.gem:
ERROR: Failed to build gem native extension./System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/barracuda-1.3 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/barracuda-1.3/ext/gem_make.out
rake aborted!
Command failed with status (1): [sudo gem install pkg/barracuda-1.3.gem --l...]
/Users/nk87/Desktop/var/barracuda/Rakefile:27
(See full trace by running task with --trace)
このようなエラーが表示されますので、同様の症状の場合には今一度確認してみてください。
Xcodeを入れていないために、"makeコマンド"が無いよー"という理由で起こっているエラーのようです。
動かしてみる。
最後に、gistに上がっているソースコードを利用させていただいて実際に動かしてみましょう。
gitの使い方はまた別のお話ということで、ここはさくっとログだけで省略させて下さい。w
https://gist.github.com/953378 - r7kamura
$ git clone git://gist.github.com/953378
Cloning into '953378'...
remote: Counting objects: 13, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 13 (delta 5), reused 0 (delta 0)
Receiving objects: 100% (13/13), done.
Resolving deltas: 100% (5/5), done.
$ cd 953378/
$ ruby openCLwithBarracuda.rb
Rehearsal ---------------------------------------
cpu 39.950000 0.310000 40.260000 ( 51.416458)
gpu 0.260000 0.500000 0.760000 ( 4.652000)
- total: 41.020000sec
user system total real
cpu 40.000000 0.300000 40.300000 ( 50.067372)
gpu 0.250000 0.500000 0.750000 ( 4.479616)
異様にスコアが悪いのは、裏でいろいろ立ち上げてるだけなんだからね。><
っていう言い訳も置いておいて、私のMacBookPro(Mid 2010)で実際に実行した結果になります。
おわりに
こんな感じに使えるようですが、具体的にどのようにプログラムを書くのとか
まったく理解できていないので、今後の課題ですね。。。
OpenCL、WebCL…この辺りついてもう少し詳しく調べていきたい今日この頃です。