バックナンバーはこちら

today&tomorrow

What's New in DesignWare IP?

2019 vol.112

人工知能に向けたハードウェア数学ライブラリ

浮動小数点アルゴリズムは、不可分操作を組み合わせて作成します。浮動小数点デザインをサポートするIPは、浮動小数点アルゴリズムを構成するサブファンクションに基づいている必要があります。例として、サブファンクションを組み合わせたシンプルな浮動小数点加算器のブロック図を図3に示します。

画像

図3:サブファンクションに基づくIPベースの浮動小数点デザイン

浮動小数点加算器には大きく指数部計算と仮数部計算の2つのパスがあります。これらのパスが情報を交換して最終的な計算結果を生成します。仮数部をシフトすると、指数部もそれに応じて調整されます。主なサブファンクションには、小数点の位置合わせ、固定小数点加算、正規化、丸めがあり、これらが仮数部計算を構成します。浮動小数点加算器のロジックの中で最も大きな割合を占めるのが正規化で、これを省略すればハードウェア最適化の余裕度が大きくなりますが、そうすると演算と演算の間で仮数部のビットが一部失われることがあります。仮数の内部値は固定小数点で表現され、これらは指数部計算チャネルの指数値と密接に結合されます。サブファンクションを実装するには、標準の浮動小数点システムよりも制約や特殊ケースの少ない方法で指数部と固定小数点の仮数部を表現する必要があります。

浮動小数点数の加算を繰り返す場合、正規化と丸めのステップがクリティカル・パスの大部分を占めます。複合演算を作成する場合、通常は一連の演算の最後に正規化と丸めを実行することが推奨されます。これは、正規化や丸めなしに浮動小数点演算の内部固定小数点値に直接アクセスした方が複雑さ、面積、およびクリティカル・パスを軽減でき、内部精度を設計者が自由に制御できるためです。図4は、簡単な2ステージ加算器の例を示したものです。正規化と丸めをなくすと、数値の挙動が変化します。第一に、最初のFP加算器で指数部の計算がやや簡略化されます。第二に、加算器の浮動小数点出力の表現がIEEE 754規格に準拠しなくなります。第三に、2番目の浮動小数点加算器はこの新しい表現を理解し、1番目の加算器でどのような処理が行われたのかについての情報を取得して判定を実行する必要があります。

画像

図4:簡略化したサブブロックで構成した複合ファンクション

シノプシスDesignWare Foundation Coresは、IPを活用したプロジェクトを作成する場合に使用するコンポーネントをライブラリとしてまとめたものです。各コンポーネントを設定すると、そのRTLとCモデルがプロジェクト・ディレクトリにインストールされます。これには、これらコンポーネントの検証とインプリメンテーションに関連するすべてのファイルが含まれます。デザインが完成したら、これらのファイルは全体的なSoCデザインに統合され、設計者は次世代製品の開発に向けてRTLの改良を続けることができます。

まとめ

AIの爆発的成長により、現実世界で人間と機器がより直接的な方法でやりとりできる新しいデザインが次々と登場しています。現実世界のデータを処理し、このデータの数学的表現を作成できるかどうかが重要な要素となっており、設計者はさまざまなアプローチでAIを製品に適用しようと試みています。最適化された高精度なファンクションをハードウェアで実装すると、プロセッシング・ユニットの負荷を軽減できます。AIシステムでは、数学アルゴリズムをハードウェアで実装することで大きな優位性が得られます。

DesignWare Foundation Coresは、構成や実装をさまざまに変えてデザインのトレードオフを検討しながら精度、消費電力、性能、面積を最適化しつつ、デザイン固有の要件を容易に満たすことのできる強力なツールとなります。モデルを生成したら、ビット精度のC++モデルを使用してすぐにシミュレーションを実行して、AIデザインがプロジェクトの要件を満たしているかどうかを確認できます。

詳細情報

カテゴリートップ