著者
神戸 隆行
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.46, no.1, pp.78-96, 2005-01-15
参考文献数
17

現在,数多くの様々な最適化技術が研究されているが,そのすべての最適化技術,特に問題依存度の高い最適化を組み込むことは処理系の肥大化を招く.そこでこのような問題依存度の高い最適化は問題の解法とともに処理系ではなくプログラム部品としてライブラリ化することが考えられる.その手段の1 つとしてメタ・プログラミングがある.そしてこのように最適化をライブラリに組み込むにあたっては実行環境の違いをどう反映するかという問題がある.これについては最適化に適当なパラメータを導入し,実行環境で試行・計測してパラメータを求める実行時プロファイリングという方法がある.本発表ではFFT を例にとり,メモリ階層を意識した最適化をC++テンプレートの機能を用いたメタ・プログラミングで行うとともに,実行時プロファイリングに基づいて適応的な最適化を行ったので報告する.これは3 つの段階からなる.1) 核となる小さなサイズのデータに対するFFTコードをサイズごとに複数生成(ループの展開,三角関数値の静的計算).2) 前段で生成したサイズごとの核コードの実行時間計測.3) 計測結果に基づく核コードの選択・合成による最終的なFFT コードの生成.特にこのうち1) と3) でC++テンプレート・メタ・プログラミング技法を利用した.以上の実装と評価について報告を行う.Although much various optimization technologies are studied now, including all these optimization technologies, especially highly problem dependent optimizations bloats code size of compiler too much. One approach is the following: the optimizations build into a part of component library the solution instead of build into compiler itsself, which is able to realize with meta-programming technique. But including the optimizations in a library in this way, there is a problem how to reflect the difference in execution environment. This problem is dealt with introducing parameters for optimization, profiling trial execution in an execution environment, and looking for a suitable parameter value. In this presentation, FFT is taken for the example, and we describe memory hierarchy conscious optimization for FFT, which is implemented in meta-programming technique, and adaptive optimization based on execution time profiling. Our method consists of three steps. Step1: They are some FFT code generation (ex. unrolling of a loop, static evaluation of a trigonometric-functions value) for each small constant size data used as a kernel. Step2: Execution time measurement of the kernel for every size generated in the preceding step. Step3: Generation of the final FFT code by selection and composition of the kernel based on the measurement results. C++ template meta-programming technique was used in Step 1 and Step3. The above method and its evaluation are reported.
著者
神戸 隆行 守山 朋弘 吉松 則文 村上 和彰
出版者
一般社団法人電子情報通信学会
雑誌
電子情報通信学会技術研究報告. CPSY, コンピュータシステム (ISSN:09135685)
巻号頁・発行日
vol.111, no.328, pp.27-32, 2011-11-22

クラウド・コンピューティングの普及に伴い、開発ツールを提供する際にオンライン・サービスとしての提供、即ちTool as a Service(TaaS)とでも言うべき方法によりユーザ側の利用コストを低減することが可能になってきた。しかし、開発ツールを新規にTaaSとして開発することは開発側にとって大きな負担となる。そこで我々は既存の開発ツールをそのままTaaS化するPlatform for TaaS(PTaaS)、特に堅牢性、可搬性と相互運用性、短い応答時間、柔軟な計算機資源調達に優れると期待される分散ビルド型PTaaSを提案し、その実現の詳細を検討する。
著者
神戸 隆行 Lovic Gauthier Victor Goulart Antoine Trouve 平木 哲夫 山﨑陽介 村上 和彰
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告組込みシステム(EMB) (ISSN:09196072)
巻号頁・発行日
vol.2007, no.4, pp.97-102, 2007-01-23

Redefis は SoC の計算エンジンとなる動的再構成可能な ASIP(アプリケーション特化命令セット・プロセッサ)を動的再構成可能プロセッサを用いて実現するプラットフォームである。Redefis は Redefis プロセッサとソフトウェア開発ツールである Redefis ツールから成る。Redefis プロセッサは実行時再構成可能な LUT ベースの演算装置を備え、それをカスタム命令を介して利用できる。Redefis ツールは Redefis プロセッサでアプリケーションに特化したカスタム命令を実現するための演算装置の構成情報とそのカスタム命令を用いるオブジェクトコードの両方を汎用の高級言語(ここではC言語)で記述されたアプリケーションのソースコードから生成する。以前開発した試作 Redefis プロセッサ Vulcan とそのた開発ツールとして Redefis ツール・チェインの経験を踏まえて新たな試作プロセッサとして Vulcan2 を開発しつつあり、また、Redefis ツールを C コンパイラの枠組みに統合して新たに ISAcc コンパイラ開発した。Redefis is a design platform for designing dynamically reconfigurable ASIPs (Application Specific Instruction Set Processors), which are going to be used as engines in future SoCs. The platform consists of the Redefis processor and its SW development toolset. The Redefis processor contains a LUT-based reconfigurable module capable to be reconfigured on-the-fly via custom instructions. The Redefis toolset analyzes the target application (written in high level C language) and generates specialized Custom Instructions which are referenced in the final compiled object code of the application. An early prototype of the Redefis processor, called "Vulcan" with its relative tool-chain have been developed. Based on the know-how obtained, a new prototype, "Vulcan2", and a restructured development toolset, called ISAcc, which integrates the previous Redefis design tool-chain into C compiler framework.
著者
神戸 隆行
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.46, no.SIG1(PRO24), pp.78-96, 2005-01-15

現在,数多くの様々な最適化技術が研究されているが,そのすべての最適化技術,特に問題依存度の高い最適化を組み込むことは処理系の肥大化を招く.そこでこのような問題依存度の高い最適化は問題の解法とともに処理系ではなくプログラム部品としてライブラリ化することが考えられる.その手段の1 つとしてメタ・プログラミングがある.そしてこのように最適化をライブラリに組み込むにあたっては実行環境の違いをどう反映するかという問題がある.これについては最適化に適当なパラメータを導入し,実行環境で試行・計測してパラメータを求める実行時プロファイリングという方法がある.本発表ではFFT を例にとり,メモリ階層を意識した最適化をC++テンプレートの機能を用いたメタ・プログラミングで行うとともに,実行時プロファイリングに基づいて適応的な最適化を行ったので報告する.これは3 つの段階からなる.1) 核となる小さなサイズのデータに対するFFTコードをサイズごとに複数生成(ループの展開,三角関数値の静的計算).2) 前段で生成したサイズごとの核コードの実行時間計測.3) 計測結果に基づく核コードの選択・合成による最終的なFFT コードの生成.特にこのうち1) と3) でC++テンプレート・メタ・プログラミング技法を利用した.以上の実装と評価について報告を行う.