Как передать указатель на неуправляемую память (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)));
    }
}

0 ответов

Другие вопросы по тегам