2012-01-09 14 views
2

ClangはCUDA(完全ではない)またはOpenCLをllvmに変換できます。共有メモリとグローバルメモリの違いを知るように、「共有」キーワードをどのように保持できますか?CUDAまたはOpenCLをllvmにコンパイルするIR

+0

こんにちは 私はCUDAカーネルをllvm IRにコンパイルしようとして3日間を無駄にしました。私はlangoptions.cppを変更しようとし、CUDA = 1を追加しました。そこには、しかし、まだclangは私にcuda構文(_synchthreads()呼び出しのような)のためのエラーメッセージを与えます。あなたがどのようにしたかについての助言/メモ/アドバイスは、多くの助けになります。ありがとうございます。 –

答えて

0

私はCUDAやOpenCLに慣れていませんが、frontendで生成された結果のLLVM IRを見て、どのコードが生成されているかを調べるようアドバイスしてください。また、対応するLLVMバックエンドを参照して、共有/グローバルメモリをどのように利用するかを確認することもできます。

+0

生成されたllvm IRからは、__globalと__localを使用することの違いはありません。 – dalibocai

+0

バックエンドで決定されたようです。多分あなたはhttp://llvm.org/devmtg/2011-11/でより多くの情報を見つけることができます。 LLVM OpenCLバックエンドに関するいくつかのプレゼンテーションがあります。 –

+0

プログラマがローカルメモリを明示的に管理する必要があるのは間違いですが、実際はバックエンドによって管理されています。とにかく、参考にしていただきありがとうございます。 – dalibocai

関連する問題