最強のコンパイラを目指して

既存のプログラミング言語でアルゴリズムさえ正しく記述すれば、対象のハードウェアに最適化された最高速度の実行形式ファイルが自動で生成される。。。そんな環境を作り上げるのが我々の最終目標です。その目標からはまだ隔たりはありますが、対象分野をComputer Vision やMachine Learningに絞り込むことで、”我々の考える最強のコンパイラ” に近いものをついに実現することができました!

フィックスターズは、2005年にあの伝説的なプロセッサCell Broadband Engine がリリースされてから、CPU/GPU/DSP/FPGA/ASIC など様々なハードウェア向けの処理の高速化を10年以上行ってきました。マルチノードの並列化、マルチコアの並列化、SIMDエンジンを用いた高速化、キャッシュやスクラッチパッドの効率的な利用、ループのパイプライン処理やアンローリング、、、高速化の手法は山ほどあり、社内にはかなりのノウハウが溜まっていると自負しています。

今回、その高速化ノウハウに加えて、Halide というドメイン特化型言語(Domain Specific Language: DSL)を採用することで、FPGA IP を一気通貫で生成できる”Genesis コンパイラ” を開発しています。これにより、Halide で書かれた画像処理、信号処理、機械学習など、様々なアプリケーションから、簡単にFPGA上で動作するFPGA IP を生成できるようになりました。アプリケーションにもよりますが、多くの場合、x86 CPUやARM CPUでの処理と比較して、10倍以上の高速化が期待できます。また、組み込みデバイスでは重要な指標となる”Performance per Watt(単位電力あたりの性能)” での比較では、さらにその差は大きくなることでしょう。

 

Halide to FPGAサービスで革新的な製品を!

Halide to FPGA サイトでは、Halide で記述された様々なコードを無償で公開するとともに、Genesis コンパイラから自動生成されたFPGA IP も合わせて提供します。プロジェクトは今後どんどん増えていき、来年春までには、100プロジェクト以上の公開を目指しています。皆さんからの独自のHalideコードのコミットやビルドリクエスト、既存のプロジェクトのカスタマイズ依頼も順次受け付けていきます。

Halide、また、Halide to FPGA にあるFPGA IP を利用して、革新的な製品を生み出して下さい。皆さんのデバイス開発における最適化プロセスの時間を大幅に短縮することで、そのお手伝いができたら嬉しいです。

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です