私が理解したように、OpenCL はカーネル関数を定義するための一般的な目的として (__global のようないくつかのキーワードを追加することによって) 変更された C 言語を使用します。そして今、私は F# 言語内でフロントエンドを実行しています。これには、メタ プログラミングを実行できるコード クォーテーション機能があります (ある種のリフレクション テクノロジと考えることができます)。そのため、C ソース ファイルの代わりにカーネルの一般的なバイナリ中間表現があるかどうかを知りたいです。
CUDA がバイナリ中間表現の LLVM IR をサポートしていることを知っているので、プログラムでカーネルを作成できます。OpenCL でも同じことをしたいと考えています。しかし、ドキュメントには、バイナリ形式は指定されていないと書かれており、各実装は独自のバイナリ形式を使用できます。プログラムで生成でき、NVIDIA、AMD、Intel の OpenCL 実装で実行できる汎用 IR はありますか?
ありがとう。