行列乗算のデザイン例

お勧めの用途:

  • デバイス: 不明

  • Quartus: バージョン 17.1

この例は、基本的な行列乗算演算のパイパフォーマンス実装を含んでおり、Open Computing Language (OpenCL™) で記述可能な最適化を行うことで、大幅な性能向上を実現します。アルゴリズムレベルでは,この例のカーネルは,この計算に固有のデータ再利用を活用するためのループタイリングを記述する方法を説明します。

この例では、ループ・アンローリングと SIMD スタイルのコンパイラー最適化を使って、カーネルのパフォーマンスを簡単に向上させる方法も紹介します。サンプルパッケージの一部である、プリコンパイルされた各デバイスバイナリのパラメーターは、特定のボードで最大限のパフォーマンスを発揮するように選択されています。サンプルパッケージを通して、さまざまなパフォーマンスやリソースの要件に合わせてカーネルを簡単にパラメータ化する方法など、その他の詳細も知ることができます。

また、ホスト・アプリケーションは、複数の OpenCL デバイスを自動的に活用して計算を分散させ、さらなる並列化を実現するように設定されています。

行列乗算のピーク・パフォーマンス

機能

  • 基本演算の最適化実装
  • ローカル・メモリー・バッファリング
  • コンパイラーの最適化 (ループ・アンローリング、num_simd_work_items 属性)
  • 浮動小数点の最適化
  • 複数デバイス・エグゼキューション

ダウンロード

このデザイン例は、OpenCL™ デバイス (.cl) およびホスト・アプリケーション用のソースコードを提供します。ホスト・アプリケーションをコンパイルするため、Linux* パッケージには Makefile が含まれており、Windows* パッケージには Microsoft* Visual Studio* 2010 プロジェクトが含まれています。

以下のダウンロードは、この例のために提供されています。

このデザインの使用には、ハードウェア・リファレンス・デザイン・ライセンス契約の使用条件が適用されます。

ソフトウェア要件とハードウェア要件

このデザイン例には、以下のツールが必要です。

  • インテル® FPGA ソフトウェア・バージョン 17.1 以降
  • インテル® FPGA for OpenCL™ バージョン 17.1 以降
  • Linux* の場合: GNU make および gcc
  • Windows* の場合: Microsoft* Visual Studio* 2010

インテル® のデザインツールをダウンロードするには、OpenCL™ ダウンロードページをご覧ください。基盤となるオペレーティング・システムの要件は、インテル® FPGA SDK for OpenCL™ の要件と同じです。

OpenCL および OpenCL ロゴは Apple Inc. の商標であり、Khronos の許可を得て使用しています。

* 製品は Khronos 公開の仕様に基づいており、Khronos コンフォーマンス・テスト・プロセスに合格しています。現在のコンフォーマンス条件は、www.khronos.org/conformance で確認できます。