Привет,
У меня есть mex-файл, который я хочу распараллелить с помощью CUDA. Текущая функциональность: я передаю дескриптор функции и огромное количество «точек» в mex-файл, и он оценивает функцию по каждой из точек в последовательном режиме (на процессоре). Для этого он использует что-то вроде:
mxArray* y;
const mxArray *e[2] = {functionHandle, point};
mexCallMATLAB(1, &y, 2, (mxArray **)e, "feval");
для оценки функции Обработка точки с помощью функции feval matlab. Теперь мне интересно, что происходит, когда я пытаюсь распараллелить вычисления с помощью CUDA: будет ли это работать правильно? Потому что, если оценка с mexCallMATLAB выполняется на CPU, использование CUDA не принесет никакой пользы. Но как это сделать, чем? Я не могу себе представить способ оценить дескриптор функции в определенной точке C напрямую, без использования функции matlab feval ...
Спасибо, пока!
Вы мне очень поможете!