インテル® FPGA SDK for OpenCL™プロ・エディション: プログラミング・ガイド

ID 683846
日付 4/01/2019
Public
ドキュメント目次

12.1.9. 外部メモリーと動作するOpenCLライブラリーの使用 (例2)

インテルでは、グローバルメモリーと通信する2つのRTLモジュールを含むライブラリーを使用する、シンプルなカーネルのOpenCL™ライブラリー・デザイン例を提供しています。

Example2.tgzターボールには、ライブラリー、カーネル、そしてホストシステムが含まれています。この例において、グローバルメモリーと通信するRTLコードは、カスタム・プラットフォームまたはリファレンス・プラットフォームに依存します。コンパイルが、Stratix® V Network Reference Platformに対応するボードをターゲットとしていることを確認してください。

インテルでは、RTLモジュールのcopyElement()およびsumOfElements() を、 インテル® FPGA SDK for OpenCL™オフライン・コンパイラーを使用し生成しました。 インテル® FPGA SDK for OpenCL™オフライン・コンパイラーはコードの追加入力を示します。

Example2.clカーネル・ソース・ファイルは2つのカーネルを含みます。カーネルtest6は、copyElement() RTL関数を呼び出すNDRangeカーネルであり、データを B[]からA[]へコピーしglobal_id+100C[]に格納します。カーネルtest11は、RTL関数を使用する単一ワークアイテムのカーネルです。sumOfElements() RTL関数は、範囲[i, N]A[]の要素の合計を確定し、残りをC[i]に追加します。

注: sumOfElements(i=0)の最初の呼び出しの実行は、その後の呼び出しよりも時間がかかります。

このデザイン例をコンパイルするには次の作業を実行します。

  1. OpenCLデザイン例のウェブページからexample2.tgzを入手します。
  2. 入手したデザイン例をローカル・ディレクトリーに解凍します。
  3. 解凍したデザイン例のトップレベルに位置するREADME.htmlファイルの指示に従います。
    コンパイルされたホストプログラムを実行すると、次の出力が生成されます。
    Loading example2.aocx ...
    Running test6
    Launching the kernel test6 with globalsize=128 localSize=16
    Loading example2.aocx ...
    Running test11
    Launching the kernel test11 with globalsize=1 localSize=1
    PASSED