HPG 2014 report

今や猫も杓子もレイトレという世の中, レイトレの国際学会といってもおかしくないであろう HPG 2014 に参加してきました. http://www.highperformancegraphics.org/2014/   今年の HPG 2014 は EGSR 2014 と共催で, フランスはリヨンの University of Lyon で開催されました. 講堂がヨーロッパらしくてここで学問を極めることができるとは, リヨン大のひとはなんと恵まれているのでしょう. そしてローヌ川もすぐ近くにあってサイクリングや運動するのに最適です. 感動です. Arnold レンダラの Marcos が「レイトレはどうやって VFX 映画界を制覇したのか!」という内容のキーノートスピーチを行いました. 論文発表では皆さんレイトレ研究だったりハイパフォーマンスグラフィックスの成果を切磋琢磨して発表していました. 素晴らしい. 今年はスマホ時代のグラフィックス処理をどうするか? もトレンドとして見えてきたりしました. コーヒーブレイクなどでは, 何人かの海外のレイトレの知り合いにも会う事ができて感動ひとしお. 新しいレイトレ研究アイデアも生まれました. CERN また, 知り合いのフランス在住レイトレ野郎を通じて, リヨンから車で 2 時間ほどで行ける, スイスはジュネーブにある CERN に行くことができました. CERN では観測器(?)からのデータが 20 PB/year くらいの規模であるそうです. ビックデータと行っても過言ではないかもしれませんね. 「PB 規模のデータの可視化にもレイトレが有効ですよ」, と CERNContinue reading “HPG 2014 report”

エクサバイトまで対応可能なバイナリシリアライズライブラリ ESON

コンピュータグラフィックスでは, 静的で, リードの比率が高く, 大量で1つのデータサイズが大きいバイナリデータを扱うのが多いので, そのためのシリアライズライブラリ ESON を作りました. https://github.com/syoyo/eson/   実際には 1 年くらい前からありましたが, それなりに使うプロジェクトも増えてきたのでもう少し詳細を書いて普及してみようと思いました. たとえば https://github.com/lighttransport/obj2eson など. 特徴は, single header, single source でポータブル C++ API は STL のみに依存 シリアライズ後のデータは linear になるので, リード時に mmap でより扱いやすい(予定). たとえば必要な部分領域だけをアクセスがあったときのみリードするなど. バイナリデータのシリアライズについては, たとえば以下のような例がありますが, どれもしっくり来ませんでした. redis : GB 単位のファイルを扱うのが難しい bson(mongodb) : GB 単位のファイルを扱うのが難しい.  32bit のデータタイプしかサポートしていない. Alembic : boost とか HDF5 とか依存関係が多すぎて扱いづらい. protocol bufferContinue reading “エクサバイトまで対応可能なバイナリシリアライズライブラリ ESON”

Towards implementing ray tracing on FPGA at 2014.

While Imagination released a GPU IP with dedicated raytracing logic, still it would be meaningful to implement our own ray tracing on FPGA. Here’s notes on ray tracing on FPGA nowdays(2014).   – Zynq http://www.xilinx.com/products/silicon-devices/soc/zynq-7000/ ARM + FPGA logic.   Zynq-based FPGA dev board can be purchased from $200 for example ZYBO http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,719,1197&Prod=ZYBO   – SGRT: AContinue reading “Towards implementing ray tracing on FPGA at 2014.”

PS4Eye をハイフレームレートステレオカメラとして使う(試み)

PS4Eye は最大 240fps を出力できるステレオカメラとして魅力です. https://github.com/ps4eye/ps4eye カスタムファームウェアを利用すれば Linux などでも USB カメラとして利用することができます. ただし, PS4Eye はコネクタが独自なので, まずはケーブルを改造(?)して, USB3.0 ケーブルとうまく結線してあげる必要があります.   USB3.0 ケーブルから出ている白と緑の線は UBS2.0 互換のための線のようなので, 結線する必要はありません(PS4Eye 側にそもそも対応する線が無い) また, USB3.0 対応 PC でも初期のころのものは対応していない? ようです. 実際に繋がるかどうかは USB3.0 対応機器に刺してみて確認してみる必要があります 参考までに, Samsung’s ARM Chromebook では認識されましたが, Thinkpad T420s では認識されませんでした. Chromebook の Ubuntu Linux で, Chrome を使って webcamera として使ってみた図. 傍のピクセルがおかしいですが, もともと横 1000 ピクセルほどが無駄に reserve されているようなので,Continue reading “PS4Eye をハイフレームレートステレオカメラとして使う(試み)”

On ETTR(Exposure to the right)

最近の Magic Lantern では (Auto) ETTR という機能が付いていて, dynamic range の変化の大きい日の入り, 日の出の time lapse 撮影がやりやすくなっています. たとえばこちら. さて, ところで ETTR(Exposure to the right) とはなんでしょう? 日本語に訳すと “右側に露出” になりますが, この用語は日本では普及していないようで適切な訳がありません. ETTR は, ヒストグラムを表示したときに, なるべくヒストグラムが右側に寄るように露出を調整する, という撮影テクニックになります. ETTR によりセンサー値の範囲を活用することで, よりノイズの少ない撮影を行うことが可能になります. 撮像センサー(CCD, CMOS)は物理的な光量を記録するので, 入射した光の量と RAW の値はリニアになっています. ただし人間の目はリニアには反応しないため, ライブビューでの表示や JPEG 画像に記録されるときには非線形の変換がかかります. ただ, ETTR にも気をつけるべき問題があります. time lapse や RAW 動画で動画を撮るときは露出オーバーにならないように気をつける必要があります. ライブビューで撮影した画像を見たときは白飛びしているように見えるかもしれません(ライブビューで見るときにはトーンマップがかかっているので). 現像処理をするときも RAW(Linear) を基準として考える必要があります.

SDE + gcc 4.9 で AVX512 命令を試す

2014 年に Knights Landing が市場に投入されて AVX512 命令も一般的に使えるようになりそうですね. Intel SDE(シミュレータ) と AVX512 対応 gcc を使って一足先に AVX512 命令を試してみましょう. http://software.intel.com/en-us/articles/intel-software-development-emulator から – SDE – GCC – binutils を落としましょう. 以下のようなコードを用意します. #include <immintrin.h> #include <stdio.h> void fa(__m512* c, __m512* a, __m512* b) { (*c) = _mm512_add_ps(*a, *b); } int main( int argc, char** argv) { __m512 a, b, c; aContinue reading “SDE + gcc 4.9 で AVX512 命令を試す”