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 命令を試す”

aobench on ZeroVM

動かすアプリが決まっている場合に有益そうな, 次世代の(アプリケーション?)仮想化プラットフォーム ZeroVM で aobench を動かせるようにして, どこでもセキュアに aobench を実行する可能性を検討してみましょう. (ZeroVM の中身はアプリを NativeClient でビルドして sandbox 実行するのがキモのようです) http://zerovm.org/wiki/The_Cloud_Hypervisor 検証環境 – Ubuntu 12.04.3 LTS インストール Ubuntu 12.04 LTS 用にはプレビルトバイナリがあるのでこれを活用します. http://zerovm.org/wiki/Download を参考に ZeroVM 環境やコンパイラをインストールします. $ sudo apt-get install zerovm-zmq $ sudo apt-get install zerovm-cli $ sudo apt-get install zerovm-zmq-dbg $ sudo apt-get install zerovm-zmq-dev $ sudo apt-get install gcc-4.4.3-zerovmContinue reading “aobench on ZeroVM”

qemu + binfmt + chroot で AARCH64 環境を構築する.

2014 年から ARM 64bit(AARCH64) な環境が普及されるのが見込まれています. qemu を利用してお手軽かついち早く Intel x86 環境で AARCH64 環境を作り体験してみましょう. 検証環境 : Ubuntu 12.04.3 LTS(64bit) qemu と binfmt パッケージをインストールします. $ sudo apt-get install binfmt-support qemu https://wiki.debian.org/Arm64Qemu から debian unstable のプレビルト chroot 環境をダウンロードして展開します. $ sudo mkdir /src/chroots/debian-unstable-arm64 $ sudo tar -zxvf debian-unstable-arm64.tar.gz -C /srv/chroots/ /usr/share/binfmts/qemu-arm64 ファイルを作り以下の記述を行います. package qemu-user-static interpreter /usr/bin/qemu-arm64 flags: OC offset 0Continue reading “qemu + binfmt + chroot で AARCH64 環境を構築する.”