2017-07-06 6 views
0

__global__のようにPyCUDAで__host__関数を呼び出すことは可能ですか?ドキュメントでは、pycuda.driver.Functionが__global__関数のハンドルを作成していることに気づいた。 __device__関数は__global__関数から呼び出すことができますが、__host__コードでは呼び出せません。私は、ホスト関数を使うとPyCUDAの目的をほとんど破ることができることを知っていますが、私がインポートして概念の証明として呼びたい関数がいくつかあります。 pycuda._driver.LogicErrorを::cuModuleGetFunctionに失敗しました:という名前のシンボルPyCUDAで__host__関数を呼び出す

答えて

0

んを発見しません、それは不可能です。ノート、私は__host__機能をインポートしようとするたびに、私が得るよう

これは、PyCUDA自体の制限ではなく、CUDA自体の制限ではありません。 __host__デコレータは単純なホストコードに崩壊し、CUDA APIはデバイスコードと同じ方法でそれらを処理せず、扱うこともできません(APIも__device__のいずれかを処理しません__host__)。

お電話/ Pythonのから__host__機能を使用する場合は、ctypesのかSWIGまたはブーストPythonのような、標準C++/Pythonの相互運用性のメカニズムのいずれかを使用する必要があります、など

関連する問題