SKY NOTE

skymouseが思った事考えた事を記したもの

CPUとGPUを抽象化命令セットで統合するHSAアーキテクチャ

どうやら、CPUとGPUが統合されるようになるらしい、CPUとGPUを統合化する抽象化命令セットアーキテクチャ「HSA」

 ARM、HSAの取り組みについて説明
 http://pc.watch.impress.co.jp/docs/news/20130124_584719.html

HSAではHSAILと呼ばれるCPUとGPUを抽象化する仮想的な命令セットアーキテクチャや、メモリアドレスをCPUとGPUで共有するモデルを作り、プログラマから見ればシステムに複数存在しているCPU/GPUを1つのプロセッサであるかのように見えるという仕組みを導入する。

昔、浮動小数点演算を外部プロセッサでやっていたのがCPUに内蔵されたのと同じように、ARMがCPUとGPUを1つのチップに見せかける命令セットを用いて、GPUもCPUに統合しようとしている。プログラマからは、CPUもGPUのデータも1つのメモリの中にある様にみえるのだという。ARMやAMDは、この抽象化命令を業界標準にしようとしているのだという。

自分的にはOpenCLの標準化が進み、それがJavaにも統合化される状態になりつつあるので、新たなアーキテクチャの登場はどうかと思う。OpenCLで十分ではないかと思う。OpenCLAPIベースだとすると、HSA(Heterogeneous System Architecture)は、プロセッサの仮想命令セットベースの統合化といえる。自分的には、CPUとGPUは、演算の仕方が、右脳と左脳の違いみたいに根本から違うと思うので、OpenCLのような並列処理に最適化した別の命令の方がパフォーマンスが出しやすいと思うのだが、HSAの命令セットが、そういうことまで考慮して作られているかはわからない。無理に同じ枠の中に押し込まなくてもいいと感じる。

既にOpenCLが出来ている段階では、蛇足だと感じる。GPUプログラムの標準化が混乱する要素だと思う。ARMとしては、HSAによって、コンピューティング能力の向上や、電力効率の改善をして行きたいのだという。ハードウェアに近いレベルの命令セットで最適化して、さらなる省電力を目指したいようだ。それならもっと早く提唱して欲しかったと感じる。

このHSAアーキテクチャに参加しているメーカーは

Founder(生産工場)
Qualcomm
Samsung Electronics

Promoters(Founderに次ぐ主要メンバー企業)
・LG Electronics

Supporters/Contributerメンバー
ソニー・モバイル
・他、複数の企業の参加が相次いでいるという。

HSAはOpenCLとは、競合しないというが、OpenCLで異なるプロセッサ、異なるプラットフォームでも使えるのだから、それでいいと思う。どっちにしても、HSA陣営のお手並み拝見といったところだろうか、アーキテクチャ的にも無理矢理感が否めない強引な構成に見えるので、どうなることやらと感じる。ARMは、IntelNVIDIAも参加して欲しいと言っているが、IntelやNVIDAは、OpenCLを支持しているわけだから、そううまく行くとは思えない感がある。Appleは独自路線を貫いているが、OpenCLを策定したメンバーでもあり、Intel.NVIDIA,Appleという主要なメンバーは、既にOpenCL支持であり、ARMの試みは、失敗する可能性が高いと自分は感じる。多分、OpenCLで十分じゃないか、HSAはいらないという話になるんではないかと感じる。