「ソフトウエアの開発者にとってみれば、様々な機器にリーチできることが重要だ。その視点に立って、インテル以外のアーキテクチャにも対応することを決めた」。米インテル デベロッパー製品部門 パフォーマンス・クライアントおよびビジュアル・コンピューティング部長のジェフ・マクベイ氏は、2014年10月30日に都内で開催された「インテル ソフトウェア・カンファレンス 2014」において、同社がクロスプラットフォーム開発ツール「Intel INDE(インディ)」を投入した狙いを語った(写真1)。
マクベイ氏は、クライアント端末のOSとしてWindows、Android、iOSおよびMacOSが中心となっており、それぞれのOSごとに膨大な数のアプリが存在することを指摘。そうした環境では、アプリ開発者には(1)最初から複数のプラットフォームをターゲットにする、(2)CPUやGPUなどのデバイスの性能をきちんと引き出す、(3)アプリ開発の生産性を向上する――の3点が求められるとした。
そのためインテルはクライアントアプリの開発ツールとしてマルチプラットフォーム対応できることを重視した。HTML5で開発することですべてのOS向けにアプリを配布できる「Intel XDK」(写真2)と、任意のホストOSと統合開発環境(IDE)でx86またはARMアーキテクチャ上のAndroidおよびWindowsのアプリを開発できる「Intel INDE(Integrated Native Developer Experience)」(写真3)を提供している。「主にパフォーマンス重視のアプリ開発にはINDEを利用してもらい、主に表示層がメインのアプリ開発にXDKを利用してもらう」(マクベイ氏)。
このうちINDEは、2014年10月中旬に提供を始めたばかりのツールだ。ホストコンピュータのOSとしてWindowsまたはOS X、統合開発環境としてVisual Studio、Android Studio、Eclipseから選択できる。プログラム作成用には、グラフィックスやビデオ処理などの専用アクセラレータにアクセスする機能や、クロスプラットフォームのライブラリ、タスク並列処理用ライブラリ「TBB(Thread Building Block)」やOpenCLコードの生成機能などを提供する。コンパイラとしてはx86アーキテクチャ向けのインテル製コンパイラと、ARM向けのGCCを用意した。システムレベルやタスクレベルでの性能解析を行うツール(写真4)や、エミュレーション時に専用アクセラレータの動作を高速化する「HAXM」も提供する。
ただし、すべてのツールが使えるのはIntel製プロセッサに向けて開発する場合だけだ。ARMアーキテクチャのCPUを搭載したSoCはメーカーによって機能や仕様が異なるからだ。ARMアーキテクチャ内部のデータにアクセスできないため、詳細な性能解析もできない。INDEでの「ARM対応」とは、C++プログラムをGCCでARM向けのバイナリに変換できるようにしたこと、TBBなど一部のライブラリをARMアーキテクチャにも対応させたことなどを指している。
INDEは搭載する機能に応じて、無償のStarter Editionと、有償のProfessional EditionおよびUltimate Editionがある。