Я пытаюсь передать двумерный массив функции C в коде CUDA, и nvcc
не скомпилирует его, но gcc
работает нормально. Вот код:
#include<stdio.h>
void f(int row, int col, int[row][col]) {
printf("LOL\n");
}
int main(void) {
int mat[2][3];
f(2, 3, mat);
}
Если я поместил этот код в test.c
и запустил gcc test.c
, он работает как положено.
Если я введу этот код в test.cu
и запусту nvcc test.cu
, он выдаст следующую ошибку:
test.cu(3): error: a parameter is not allowed
Почему он не работает с nvcc
? Если это не поддерживается, каков наилучший способ дать 2D-массив в качестве параметра в CUDA? Указатель на первый элемент первого ряда?
Заранее спасибо за помощь в этом.