KUMICO

COLUMN

アクセラレーション概論~なぜ今アクセラレーションが必要とされているのか~

アクセラレーションとは
アクセラレーション(Acceleration)とは、アクセラレーターと呼ばれるハードウェアを追加して、機器の特定の処理を高速化することを言います。

昔から、コンピューティングの王道はプロセッサです。CPUやMPUと呼ばれ、小さな組み込み機器も、巨大なスーパーコンピューターも、主要処理はプロセッサとそれを制御するソフトウェアで成り立っています。

しかし、プロセッサの処理性能には当然ながら限界があります。その限界を上回るために、様々な手法が実施されてきました。プロセッサ自身の性能向上はもちろん、マルチスレッド、マルチコア、マルチプロセッサ、クラスタなどのプロセッサの処理を同時に実行できるような仕組みや、SIMDやベクトル演算のような命令レベルで並列実行できるアーキテクチャなどです。

それとは別に、CPUが苦手とする処理の高速化に特化した別のデバイスを使って、システムレベルで演算力をパワーアップする手法も発展しました。FPU(浮動小数点だけを請け負うコプロセッサ)やDSP(デジタル信号処理専用プロセッサ)、画像処理に特化したGPUなど、様々なデバイスが登場しました。これらのデバイスは古くから様々な機器に搭載され、また、プロセッサの内蔵機能として取り込まれてきたりもしました。これらはすでに特別なデバイスではなく、コンピューティングに無くてはならないものになっています。もちろん、皆さんのパソコンにも、スマホにも、電話の基地局にも、病院の医療機器にも入っています。

しかし、計算性能の需要はとどまることを知りません。高精細な3D映像のリアルタイム描画、複雑なゲノム解析、膨大なデータベースからの検索、世の中に増殖するIoTデータの解析、何日も計算が必要なディープラーニング(Deep learning)など、必要な計算はどんどん複雑化し計算量も増えているのに、プロセッサの処理性能はムーアの法則を超えられません。

これを超えるには、本来のプロセッサを遥かに上回る計算量をこなすデバイスを追加することになります。プロセッサを遥かに上回るためには特定の演算に特化する必要があり、プロセッサと異なるアーキテクチャのデバイスが必要となります(ヘテロジニアスコンピューティング)。そして、これらのデバイスは巨大で数が多く、一般的にプロセッサとは異なるハードウェアとして用意されています。これをハードウェアアクセラレーター(略してアクセラレーター)と呼び、これらで行う演算をハードウェアアクセラレーション(略してアクセラレーション)といいます。

ハードウェアアクセラレーションが用いられるシチュエーションは、端末とサーバーの大きく2種類に分けられます。多くの場合、端末側はハードウェアの価格・性能・消費電力・サイズなどに制約があるがためにアクセラレーションが必要になるパターンです。また、サーバー側は一般的に処理性能が足りなくなるとプロセッサをどんどん増やすことができる環境ですが、それだけでは性能が足りずコストもかかりすぎる場合にアクセラレーションのニーズがあります。
 
※アクセラレーション(Acceleration)とは、加速、加速度、促進、高速化などの意味を持つ英単語です。

アクセラレーション用ハードウェアの種類

アクセラレーション(Acceleration)で用いられる大量演算ハードウェアには、以下のような種類があります。

  • GPU:元々は3Dグラフィック用として誕生し、現在はその性能を別用途に利用したAI用アクセラレーター(Accelerator)として一躍有名になりました。ディープラーニング(深層学習)のためのアクセラレーター(Accelerator)としてはデファクトスタンダードになっています。ソフトウェアから容易に制御できる開発環境があり、生産量が多いためデバイスも安価ですが、ベクトル演算に特化しているため汎用性が高くなく、商品電力も多めです。
  • FPGA:ナノ秒単位で駆動する論理回路を自由に組み込めるため、特定の処理に特化した回路を構成可能です。どのような回路でも実現可能な柔軟さがあり、最適な回路を構成できれば消費電力も少ないですが、デバイスが高価で開発も手間がかかります。
  • 専用LSI:通信処理や動画のエンコードなど、完全に処理内容が決まっていてかつ同じハードウェアが大量に必要とされる場合は、FPGAやGPUではなく専用LSIの方がコストや消費電力面で有利です。ただし、期待する機能を持つLSIがこの世に存在するとは限りませんし、専用LSIの開発には莫大な費用と時間がかかります。

それぞれ一長一短あり、アプリケーションの種類や演算内容、コストや運用規模などから最適なデバイスを選定する必要があります。

アクセラレーション(Acceleration)の用途

こういったハードウェア・アクセラレーションが必要な現場とはどのような分野でしょうか。端末側は運用する状況に左右されるので、ここではサーバー(サーバ)のアクセラレーションをターゲットにします。

  • AI:AIはあらゆるシーンで活用が始まっており、言わずと知れたアクセラレーション(Acceleration)を活かせる有力なアプリケーションです。特にディープラーニング(深層学習)は、膨大なデータを元に、定型的なベクトル演算を何千万回も繰り返す処理は完全にアクセラレーション(Acceleration)向きです。アクセラレーションという言葉が認知される前から普及がはじまった、もはや産業に欠かすことができないアプリケーションです。
  • 映像処理:映像配信に使われる高解像度の動画のエンコードや、複数の動画の同時エンコードには相当な演算が必要になります。特に高圧縮が可能なH.264/AVGやH.265/HEVCはアルゴリズムが複雑なため、アクセラレーション(Acceleration)なしではリアルタイム処理は不可能です。
  • 高速データベース:データ分析そのものはプロセッサが行いますが、データ分析に必要なデータベース処理も高速でないとシステムパフォーマンスが上がりません。SQLやNoSQLを高速化し、分析速度を底上げします。
  • ゲノム解析:ゲノムの遺伝子配列を解析し、マップを作成する作業は現代医療における最先端の基礎技術ですが、ヒトゲノムには約 30 億の塩基対があり、約90GByteという大規模なデータセットの解析が必要になります。この処理を高速で安価に行うために、アクセラレーション(Acceleration)は必須になっています。
  • 金融:一瞬の判断でリスクを解析し取引を行う金融業界では、複雑さと正確さと高速性、さらには状況に応じて論理を変更可能な柔軟性という、相反する要望をカバーするコンピューティングが必要とされ、もはやプロセッサのみのサーバーでは間に合わない状況です。

アクセラレーション(Acceleration)の今後

アクセラレーション(Acceleration)は導入ハードルが高く、これまでは限られた企業が、自分たちのために自前で開発することがほとんどでした。しかし、汎用的なアクセラレーション用ハードウェアと開発ソフトが登場し、アクセラレーション開発環境と手法をベンダが整備しつつある中、アクセラレーション(Acceleration)はより一般化していくと思われます。

プロセッサでは間に合わないという理由だけではなく、より効率的な計算リソースの利用として、気軽にアクセラレーション(Acceleration)を利用する時代も来るでしょう。

★アクセラレーション技術セミナーのお知らせ★
アクセラレーション開発の事例のご紹介とともに、
アクセラレーター製品のデモンストレーションを実施します。
講演者と直接話せる懇親会も設けておりますので、
お悩み解決の場としてもご活用いただけます!
詳細・参加登録はこちら>>

個別相談も承っております。下記よりお申し込みください。

個別相談会申し込み

関連記事

OTHER COLUMN

MORE  

まこちゃんブログ

NEWS

MORE  

PARTNER

  • Intel
  • Xilinx

お探しの組み込み製品はキーワードで検索!