シミュレーション パラメータを定数メモリに設定しようとしていますが、うまくいきません (CUDA.NET)。cudaMemcpyToSymbol 関数は cudaErrorInvalidSymbol を返します。cudaMemcpyToSymbol の最初のパラメーターは文字列です... シンボル名ですか? 実際、どのように解決できるかわかりません。どんな助けでも感謝します。
//init, load .cubin
float[] arr = new float[1];
arr[0] = 0.0f;
int size = Marshal.SizeOf(arr[0]) * arr.Length;
IntPtr ptr = Marshal.AllocHGlobal(size);
Marshal.Copy(arr, 0, ptr, arr.Length);
var error = CUDARuntime.cudaMemcpyToSymbol("param", ptr, 4, 0, cudaMemcpyKind.cudaMemcpyHostToDevice);
私の.cuファイルが含まれています
__constant__ float param;
ワーキングソリューション
cuda.LoadModule(Path.Combine(Environment.CurrentDirectory, "name.cubin"));
simParams = cuda.GetModuleGlobal("params");
float[] parameters = new float[N]{...}
cuda.CopyHostToDevice<float>(simParams, parameters);