さて、私はかなりデリケートな質問があります:)
私が持っているものから始めましょう:
- Data、データの大規模な配列、GPU にコピー
- Program、CPU (ホスト) によって生成され、その配列内のすべてのデータについて評価する必要があります
- プログラムは非常に頻繁に変更され、CUDA 文字列、PTX 文字列、またはその他 (?) として生成される可能性があり、変更のたびに再評価する必要があります。
私が欲しいもの:基本的には、これをできるだけ効果的(高速)にしたいだけです。CUDA から PTX へのコンパイルを回避します。ソリューションは完全にデバイス固有であってもかまいません。ここでは大きな互換性は必要ありません:)
私が知っていること:ファイルに保存された PTX コードからカーネルをロードおよび作成できる関数cuLoadModuleを既に知っています。しかし、最初にファイルに保存せずに、カーネルを直接作成する方法が他にあるに違いないと思います。あるいは、バイトコードとして保存することは可能でしょうか?
私の質問: どうやってそれをしますか? 例を投稿するか、同様のトピックの Web サイトへのリンクを投稿していただけますか? タイ
編集: OK、PTX カーネルはPTX文字列 (文字配列) から直接実行できます。とにかく、私はまだ疑問に思っていますが、これに対するより良い/より速い解決策はありますか? 文字列から一部の PTX バイトコードへの変換がまだありますが、これはおそらく回避する必要があります。また、PTX からデバイス固有の Cuda バイナリを作成する巧妙な方法が存在するのではないかと考えています。これにより、JIT コンパイラのラグが解消されます (小さいですが、実行するカーネルが膨大な数に達すると、合計される可能性があります) :)