C/C++ JIT shader on ARM

I’ve coded (World’s first) C/C++ JIT shader on ARM processor.

The JIT shader is connected with NEON-optimized interactive ray tracer, so you can edit shader and view its rendering result interactively.

You need MCJIT on ARM target, since old JIT engine is not supported on ARM processor.

rspreload

rspreload is a DLL replacement for socket() functions  taking a leverage of RDMA transport layer without any application modification.

rspreload is built on top of rsockets feature. See details here for rsockets:

https://www.openfabrics.org/ofa-documents/presentations/doc_download/495-rsockets.html

Recent advances of rspreload/rsocket finalIy enables  accelerating existing TCP/IP socket application such like iperf.

(At least it iperf with rspreload didn’t work a years ago).

$ LD_PRELOAD=/usr/local/lib/rsocket/librspreload.so iperf -c 172.24.0.8

————————————————————
Client connecting to 172.24.0.8, TCP port 5001
TCP window size: 128 KByte (default)
————————————————————
[ 3] local 172.24.0.16 port 51626 connected with 172.24.0.8 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 22.9 GBytes 19.7 Gbits/sec

It can achieve 19.7 Gbits/s in my IB QDR configuration.

This is 2/3 of theoretical peak 32 Gbits/s!  Simply super.

More details here:

https://github.com/syoyo/node.rdma/blob/master/measures/rsocket_preload_performance.txt

550D + Magic Lantern Dual ISO finally works!

550D + Magic Lantern Dual ISO finally comes!

http://www.magiclantern.fm/forum/index.php?topic=5582.msg69859#msg69859

Here’s my initial test.

 

Zoom-up of dual iso RAW image. You can see different exposure(ISO) for each alternate lines.
Zoom-up of original RAW image shoot with Dual ISO. You can see different exposure(ISO) for each alternate lines.

Dual ISO records RAW image with different exposure(ISO) for each alternate lines, so we need a processing after shooting(using cr2hdr tool given at Dual ISO page)

No Dual ISO image. You can see color noise in dark region.
Dual ISO
Processed Dual ISO image. You can see less color noise in dark region!

Cool!

I’ve confirmed Dual ISO also works well for RAW video. The problem is processing Dual ISO image with cr2hdr requires a lot of processing time.

I am considering GPGPU optimization for faster Dual ISO movie processing. Stay tuned 😉

 

I am investigating “DSLR as an illuminance meter”.

Dual ISO will definitely improve the accuracy of “DSLR as an illuminance meter”, which will be valuable for physically-accurate IBL and HDRI  footage used in CG/VFX.

Supercomputing Conference 2011

IMG_0354

SC とは

SC とは, 「スーパーコンピューティングカンファレンス」の略で, スパコンの学会です.

2011 年は「京」コンピュータがみごと Top500 で一位となり, 世間の注目となっていると思いますが, SC でも「京」関係のセッションがホットなトピックとなっていたように思います.

機会がありまして, 2011 年にこの SC に, 初めて参加してきました.

SC11 はシアトルで開催されました.

ここでは, グラフィックス野郎から見た SC11 の感想を記載していきます.

SC は毎年参加者が増え, 今では SIGGRAPH と同じかそれくらい大きい国際学会になっています.

SIGGRAPH は世界最大の国際学会と言われていますから,

SIGGRAPH と SC で国際学会の規模 1, 2 位を占めるわけですね.

SC は初めてということもあり, また知り合いがほとんど居ない事から SIGGRAPH などのグラフィックスの会議とはアウェー感がバリバリです…

グラフィックス系では可視化(ビジュアリゼーション)関連が多少 CG と関連がありつつも,

プレイヤー(論文発表者など)はアルゴンヌ国立研究所などの研究所だったり大学だったりと,

CG 系のような VFX スタジオやアニメーションスタジオ関連のプレイヤーとは全く違う分野になっていました.

(追記: 翌年の SC12 では GreenButton + Pixar によるクラウドレンダリングのセッションがありました)

もちろん, GPGPU などのグラフィックスチップの汎用計算は多く取り上げられていましたが,

スパコン野郎は主にそれを如何に計算やシミュレーションの高速化に使うか? というところに注目していて,

これもまた SIGGRAPH 関連のプレイヤーとは分野が異なっていました.

SIGGRAPH との違い

個人的に感じた, SIGGRAPH と違うところは大きく 4 点です.

1 つ目は, (昨今の) SIGGRAPH と違って企業や大学の展示がたくさんあります.

スペースとしても, セッションなどよりも展示スペースのほうが大きい感じです.

# かつての繁栄を極めたころの SIGGRAPH でも展示が大きかったと伝説に聞きます.

2 つ目は, 論文発表などの学術系のセッションでは, 休憩時間に飲み物やお菓子が無償で振る舞われていました.

また, 展示も初日は Opening Gala と言って, (無償の)アルコールやケータリングの食べ物を摂取しつつ展示を見て回るイベントがあったり, 夜には企業がスポンサーのパーティが開かれたりと, なんとも食には困らない学会です.

3 つ目は, 参加は皆 Ph.D Candidate だったり Ph.D ホルダークラスが標準レベルという感じで学のレベルが高いため,

皆さん英語が話せて当然, というレベルです.

SIGGRAPH のように英語が話せなくてもなんとか… というわけには行きません.

SC に参加するなら英語は出来て当然と考えておいたほうがいいでしょう.

4 つ目は, スパコンの学会というだけあってひたすら計算機環境の規模が大きい. 「計算機を数千ノード動かして計測しました」, 「CPU は全部で 1 万個使いました」. 「ストレージはペタバイトで…」 などなど.

なんともうらやましい環境で皆さん成果を出し合っています.

とはいえ, SC では発表スライドは背景を十分に説明していなかったり, 文字ばっかりだったりベンチマークの数値結果だけだったり,

「とりあえずいいハードウェアが手にはいったので Hadoop の性能を評価してみました」という内容の論文だったりと,

SIGGRAPH に比べると論文やプレゼンテーションのクオリティには残念と感じざるを得ないものもいくつかありました.

展示の勢力(?)が大きいため, SC では 企業や大学が, 毎日昼や夜に(食事無料の)パーティを開いています.

パーティへの参加状は水面下で取引されているようです.

SC 参加者から, 「毎夜企業主催のパーティがあるんだよ」とは聞かされていましたが,

私のような初参加者にはその存在が全く判りませんでした…

このあたりは参加経験を積んでコネを作っておくのが重要になるでしょうか 🙂

幸いにも, 私も KAUST(サウジアラビアの研究機関) のパーティ券をゲットできたので, KAUST のパーティに参加してきました

IMG_0361

パーティでは KAUST という研究機関のプレゼンテーションも含めつつも(サウジアラビアであるため, 石油が枯渇したあとのことをどうするか? いろいろ考えているようです), パーティには数百人が参加していて, 学会らしくなく皆飲食を楽しんでいてなんとも華やかな気分を味わうことができました.

まとめ

SC は展示の規模が大きい. SIGGRAPH も学会らしくないですが, 展示が大きかったり, 夜に企業がスポンサーのパーティがあったりと, SC は良い意味でより学会らしくない華やかなイベントと言えるでしょう.

SIGGRAPH のように, 何度か来たくなるような学会ですね.

おまけ

IMG_0362

Intel の展示ブースで aobench が動いていました.

Mandelbrot よりも有名なベンチマークになったと言えるかもしれませんね.

Camera RAW pipeline

I’ve implement my own Camera RAW decoder + debayer + color correction.

Image

(left: decoded and ACES RRT + sRGB ODT color graded RAW image. You can see filmic-look of image because of ACES RRT. right: mostly RAW value. You can see greenish image, this is correct as RAW value)

Recent custom firmware development(Magic Lantern) enables shooting 14bit DNG RAW video http://www.eoshd.com/content/10324/big-news-hands-on-with-continuous-raw-recording-on-canon-5d-mark-iii

So this will realise high-quality physical luminance video capture with mass-market DSLRs!

Physical capture of live world is very important for Live VFX and physically-based rendering as you know 😉

Unfortunately I haven’t 5D3, but have 550D. 550D also can capture 14bit DNG RAW, but limited to 0.5 ~ 1 fps shooting at this time(Magic Lantern team will improve this situation soon). Still, it is enough to test my own Camera RAW decoder implementation.

There are already good (open source) RAW decoder, called dcraw

Why I re-invented RAW decoder? The answer is for speed.

RAW decoding and (noise) filtering is very slow in general on CPU.

I am planning to accelerate RAW decoding(and filtering) on OpenGL compute shader utilizing GPU power.

I already got success to implement each component of RAW pipeline(decode, debayer, filter, ACES color grading, etc) into OpenGL compute shader.

So next phase is to implement all Camera RAW pipeline in OpenGL compute shader and performance tuning.

Stay tuned!

[References]

The world’s first interactive path tracing on ARM

I’ve coded possibly world’s first fast progressive ray tracing engine on ARM.

ARM NEON Optimization is used for QBVH traverser and ray-triangle intersection.
NEON-optimized QBVH spatial data acceleration builder will be soon.

Enjoy!

 

Interactive path tracing on ARM processor from Syoyo Fujita on Vimeo.

FYI, I’ve also integrated LLVM/clang to this raytracing engine for JIT-compiled shader, but LLVM ARM backend is not yet enough to do it(assertion happens after JIT codegen). Time will be solve the problem.

Mallie Monochrome

cornellbox_monochrome

Mallie Monochrome is World’s first physically based monochrome renderer.

http://mallie-monochro.me/

This renderer is contributed to Prof. Nishita who tremendously contributed to CG research field.

 

The last lecture of Prof. Nishita.

lastlecture

A pic from the laste lecture.His presentation ends with physically-based photo realistic rendering of sky and atomosphere 😉

 

Today(Feb 15, 2013) was the day Prof. Nishita gave the last lecture in Tokyo University.

http://nis-lab.is.s.u-tokyo.ac.jp/nis/

Prof. Nishita is well known computer graphics researcher, as you know.

Probably you know “Radiosity” or “Bezier clipping“, both was originally developed by him.

He has been tremendously contributed & explored CG research area over 40 years, resulting 17 papers was accepted to SIGGRAPH. That is great achievement.

http://nis-lab.is.s.u-tokyo.ac.jp/nis/sampl_img.html

 

Monochrome renderer, a new frontier

Then, why monochrome renderer?

When I was young student, I studied a lot of CG things from Prof. Nishita’s work, especially global illumination rendering.

Absolutely I attended to his last lecture.

He said in his last lecture, “Research of CG is the crossing of Technology and Art. Its hard, but also fun to generate beautiful images.”

He also said, “I’ve explored many frontiers of CG, but there’s still many frontiers, CG is only 50 years”

I was moved. And I wanted to start to explore new frontier. After some thoughtful time, I think developing monochrome rendering is one good direction to explore, no one currently doing it cafefully, so I decided.

Currently, its mostly only “Concept“, but soon you’ll see many interesting features in Mallie.

The art of light and shadow, filmic tone simulation, a simulation of chemical response of monochrome film, good noise generation for monochrome using mathematical model, share your rendering images with your family/friends, and so on.