2017-10-06 11 views
2

サポートする機能はありますが、現在OpenCLをサポートしていないデバイスがあります。私には、ISA、ハードウェア設計のドキュメント、その他多くのドキュメントがあります。デバイスが現在位置している私のシステムには、現在CとC++のコンパイラがあり、多くのLinuxディストリビューションをサポートしています。デバイスでOpenCLを実装するにはどのような手順が必要ですか?

今、私は自分のデバイスにOpenCL(最新バージョン2.2と言う)サポートを追加したいと思います。デバイスをサポートするには、実際に何をする必要がありますか? SPIR-Vのサイトには、SPIR-V registry pageopencl extended instruction set overviewnormal spir-V overviewというドキュメントがあります。

今、私はSPIR-V-to-my-device-ISAコンパイラを実装していますが、今はOpenCL 2.2をサポートしていますか?私はanother registry for OpenCLを参照していますが、「これらの機能を実装していれば、これを行うコードを書いてください。あなたのシステムでOpenCL 2.2仕様を実装しました」ということは表示されません。

私のデバイスにOpenCLを実装するために必要な実際の手順は何ですか?

答えて

1

あなたはopen cl apiの実装を提供する必要があります。このapiの実装では、アーキテクチャに合わせてopenclカーネルを効率的にコンパイルする必要があります。

特定の一連の機能(OpenCLのバージョンと拡張機能を意味します)をサポートするには、apiとopencl c/C++カーネル言語の特定の機能をサポートする必要があります。これらのすべてのものは、khronos websiteにあるopen clの標準で指定されています。

intel、nvidia、amdなどのプロセス全体を単純化するために、すべてがLLVMのコンパイラに基づいています。あなたがPOCLを見ている努力をさらに減らす必要がある場合は、オプションになるかもしれません。

システムにカスタムアーキテクチャがありますか、それともカスタムソフトウェアスタックですか?

+0

opencl拡張機能でSPIR-Vへのコンパイルをサポートして、openclカーネルをサポートしていませんか?私はそれらのカーネルが2.0の時点でSPIR-Vにコンパイルされていると思いました。私はSOC上でopencl仕様を持っていないGPU用にこれを書いています。私が知る限り、このGPUアセンブリにはLLVMはありません。私はOpenCLをサポートするものを作る方法について混乱しています。私はSPIR-VかLLVMのコンパイラを自分のアセンブリに書くだけですか? SOCのCPUはすでにOpenCLをサポートしていると思いますが、これは同じボード上の別個のデバイスではありません。ホストCLがデバイスにアクセスできるようにする手順は何ですか? – snb

+0

ランタイム機能も必要ですが、コンパイラでは不十分です。 @Dithermasterと同様に、POCLで始まるのがおそらく最も安全な賭けです。残念ながら、彼らは何らかの形でllvmを使用します。 – MichaelE1000

関連する問題