Как передать указатель на неуправляемую память (IntPtr) в ядро Alea CUDA?
У меня есть IntPtr hData
это указывает на начало массива данных, которые хранятся в неуправляемой памяти. Когда я пытаюсь передать его с помощью ядра CUDA, описанного ниже, я получаю System.Exception: i64 is not a struct type
, Как передать указатель на массив в неуправляемой памяти, используя ядро Alea CUDA?
unsafe private static void CopyDataToDeviceMemory(
IntPtr hData,
deviceptr<float> dData,
int dataLength)
{
int start = blockIdx.x * blockDim.x + threadIdx.x;
int stride = gridDim.x * blockDim.x;
for (int i = start; i < dataLength; i += stride)
{
dData[i] = DeviceFunction.Convert<ushort, float>(
*((ushort*)(hData + i * 2)));
}
}