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