2012-03-23 23 views
3

コンパイル後にAMDとNVIDIAカードの両方で動作するOpenCLコードを取得することが可能かどうか、誰かが知ることができますか?その一般的な手順は何ですか? OpenCL SDK(AMD/Nvidia)をインストールし、 "if"構造が各ケース(AMDデバイスまたはNvidiaデバイス)ごとに異なるコードを作成する必要がありますか? ちょっとだけ明確にすることができれば、いくつかの見出しでそれを感謝するでしょう。おかげさまで AMD/Nvidiaで動作するOpenCLコード

答えて

4

はい、これはOpenCL over CUDA(NVIDIAハードウェアでのみ動作します)の目的です。基本的には、C99でコードを記述するコードを作成し、それを中間の「製造元に依存しない」コードでコンパイルします。その最後のコードは、実行時にカード(AMDまたはNvidia)によって解釈されます。 通常、別のカード固有のコードを書かないといけない理由はありませんが(まあまあです...私はMax OS 10.7で他の環境とは多分異なるでしょう)

+0

Thanks Flavien、 OpenCLとAMD sdkは、例えば、それはNvidiaカードで動作するはずですか?それとも私は何かが欠けているだろうか? – Maiss

+0

AMD BLASおよびFFTライブラリは、NVIDIAデバイスでも動作し、ArrayFire OpenCLライブラリと同様に動作します。とても便利! – arrayfire

+2

ベンダー固有のチューニングが必要な場合は、カーネルアナライザーを使用してOpenCLカーネルを実行し、結果の中間言語とハードウェア上で実行されるISAコードをチェックアウトすることができます。 – kiranputtur

関連する問題