-1

私は OpenCL についていくつかの調査を行っており、それをプロジェクトで使用する可能性について調べています。私が持っている質問は、C++ アプリケーションの OpenCL SDK でサポートされていない CPU で OpenCL コードを実行する方法があるかどうかです。Java に Aparapi があることは知っていますが、SDK でサポートされているハードウェアを使用せずに C++ アプリケーションで OpenCL コードを実行する方法を知りたいです。利用可能な OpenCL 並列処理を利用するために OpenCL カーネルで書きたいコードがいくつかありますが、古いハードウェア (まだ X86 ですが、最近のハードウェアではない) で実行できないかどうかはわかりません。これをどのように行うことができるか、または古いシステムで OpenCL コードを実行することがまったく問題であるかどうかを誰かに説明してもらえますか?

ありがとう、ピーター

4

1 に答える 1

1

これにアプローチする最善の方法は、デバイスが clPlatformIDs などの OpenCL API 呼び出しを介して OpenCL をサポートしているかどうかを確認し、それが OpenCL デバイスではないことがわかったら、必要なコードを通常の C/C++ 関数として実行することです。それ以外の場合は、openCL を使用して実行します。カーネル。ただし、移植性のために、プログラム ロジックを .cl ファイルに 1 回、通常の c/c++ メソッド/関数として 1 回、2 回記述する必要があります。

于 2012-06-14T17:43:26.793 に答える