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

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

12.1.6. OpenCLカーネルコンパイル時のOpenCLライブラリーの指定

OpenCLカーネルでOpenCL™ライブラリーを使用するには、カーネルをコンパイルする際にライブラリー・ファイル名とディレクトリーを指定します。
重要: ライブラリーを使用しても、カーネルのコンパイル時間は短縮されません。
OpenCLライブラリーを インテル® FPGA SDK for OpenCL™オフライン・コンパイラーに指定するには、次のコマンドを呼び出します。 aoc -l <library_file_name>.aoclib [-L <library directory>] <kernel file name>.cl
この-l <library_file_name>.aoclibコマンドオプションはライブラリー・ファイル名を指定し、-L <library directory> コマンドオプションはライブラリー・ファイルを含むディレクトリーを指定します。

-l <library file name> および-L <library directory> の複数のインスタンスを、オフライン・コンパイラー・コマンドに含めることができます。

例えば、関数my_div_fd()my_sqrtfd()myrsqrtfd()を含むライブラリーを作成する場合、OpenCLのカーネルコードは次のようになります。

#include “lib_header.h”

kernel void test_lib (
    global double * restrict in,
    global double * restrict out,
    int N) {
        int i = get_global_id(0);
        for (int k =0; k < N; k++) {
            double x = in[i*N + k];
            out[i*N + k] = my_divfd
                (my_rsqrtfd(x),
                my_sqrtfd(my_rsqrtfd (x)));
        }
}  
注: ライブラリー関連の行は太字で強調されています。

対応するlib_header.hファイルは、次のようになります。

double my_sqrtfd (double x);
double my_rsqrtfd(double x);
double my_divfd(double a, double b);