バイトコードからOpenCL生成

http://www.infoq.com/jp/news/2010/10/aparapi-java-and-gpus

ソースコードからではなく、バイトコードからってのがいいですね。Java言語以外からも利用できるということですから。

対象とする処理を考えるとプリミティブのみ扱えるという制限は問題ないでしょう。ガリガリコードを書いてるときは数値のみを扱いますから。もう言語とか関係ない。

ただ、こういった画像とかストリーム処理をやるとJavaの問題点がでてきます。そう、符号なしの型がないんですね。Javaのver1.0がでてからずっとおいらは符号なし我ほしいといい続けていますがいまだに拡張されません。これが原因で組み込み系で扱いにくくなっているというのにsunは気づいていないんですかね。言語拡張で今でも最も優先度の高い部分だと思います。せめて符号なしbyteだけでも。


OpenGLと違い、OpenCLだけだとどうしても演算だけで、速度の違いはあれどもCPUで行うことができます。となるとなかなかそういったチューニングはしにくいものです。MMXとかSSEとかも結局アセンブラという別の言語を併用することになるので、それらを意識することなく利用できるラップしたこういったものはやはり必要ですね。