« 第4回OoOO is over | メイン | CUDAプログラミングの愚痴 »

2008年10月02日

リアル引越し準備中。kioku未来のことを語る

blogはこのままだけど、リアルワールドの引越し準備中です。
秋葉から遠ざかる方向だけど、まぁ関東圏だし、問題ないでしょう(なにがぉ
最近はコーディングするより、次世代のアーキテクチャとかについて考えたりしてます。
CUDAとかのプログラミングマニュアルよんだりとか

デモシステムも考えないといけないんだけどなー
あ、某サイト構築もやらないと・・・・
あっ 10月からの新しいアニメをチェックしないと!?

なにげに忙しいな。

てか気がついたら、新しい時代がきてました・・・。

16SIMDのデバイスとかスレッドビルディングブロックとか・・・
OoOOでも少しいいましたが、今確実に新しいプログラミングのパラダイムがやってきてます。
ずばりそれは「CUDAみたいなプログラミングパラダイム」です。
まだ世の中の多くの人はCUDAなんてカリカリに最適化しないとまったくパフォーマンスでない
クソなんだから、どうせ使えないだろみたいな目で見てるかと思いますが、
私は思うに、おそらく最適化しないといけない時代になります。
もちろん、それは時がたてばコンパイラがやってくれる可能性もあります。
しかし、そもそもがパラレル16SIMDのような挙動をするプログラムをシリアルな考えだけで書いて、
コンパイラで100%近くのパフォーマンスがでるとは到底思えません。
ここ数年でいえば、コンパイラが完成するより先に人間が手で最適化をしなけば行けない時代に
なると思います。この話はnVidiaのCUDAだけではなくIntelのLarrabeeのプログラミングに
おいてもおそらく同様の問題があると思います。
もちろんハードウェアベンダーは移行しやすいようにシリアルのプログラムをかけば、自動で最適化して
アーキテクチャにあわせてくれるとうたい文句を並べるかもしれませんが、そんなものは
初心者をとりこむための口実でしかないでしょう。本当にパフォーマンスをだしたいのならば
プログラムの考え方からかえる必要があると思います。
私は、この変革はかなり大きいものだと予想しており、かつて手続き型言語全盛の時代に
オブジェクト指向とかいう機能をもった言語が幾人のプログラマーを悩ませ、
そして多くの思考がついていけない人たちがオブジェクト指向を学習することをあきらめていったのだろう。
しかし、気がつけば日常当たり前のごとくオブジェクト思考が使われているプログラムの現場。
(もちろん業界によってはついていけてない(ついていく必要がない?)業界もあるけどねー)
まぁこれと同様のことが少なからず起きると私は見ています。
これを読んでるあなたも、コンピュータのパフォーマンスをどんどん引き出す必要がある
プログラムを書く必要があるのなら、今のうちに勉強しておいて損をする内容ではないとおもいます。
まとめると、Larrabee, GeForce, Cell, ....などなど、いまだ各社独自の道を進むかのような
アーキテクチャを採用してますが、それぞれのアーキテクチャを設計した人たちの考えの根底は
みな同じはずです。多数のスレッド処理による処理能力向上をはかる並列処理アーキテクチャです。
そして、今それらのアーキテクチャの上でのもっとも最適なプログラムの考え方が定着しはじめたのです。
そして今現在その完成系に一番近いのがCUDAだと私はにらんでいます。
いちIT技術者としてくいっぱぐれないためにもこれはやらねば!?

投稿者 kioku : 2008年10月02日 01:35