lsqcurvefit
Функция Matlab используется, чтобы соответствовать параметрам модельной кривой до реальной кривой (полученные данные из эксперимента или наблюдения), чтобы минимизировать квадратные различия. lsqcurvefitМожет ли функция Matlab использоваться в ядре CUDA?
Эта функция отнимает много времени и может быть непомерно высока при использовании на большом наборе кривых.
Может быть прямо используется внутри ядра CUDA, будучи тогда программой, закодированной в Matlab? (Edit: это, не записывая пользовательскую версию lsqcurvefit
в C для ядра. Например: напишите код ядра в Matlab (используя там «любую» функцию matlab, например lsqcurvefit()
), затем скомпилируйте ядро с помощью инструмента Matlab, и, наконец, выполнить ядро в графическом процессоре, вызванное из кода узла Matlab).
Благодаря
Ваш вопрос не очень ясен и кажется несколько противоречивым (используйте функцию Matlab в ядре CUDA, а затем закодируйте всю программу в Matlab?). В любом случае, вы не можете напрямую использовать функции Matlab в ядре CUDA. Но вы можете написать собственную версию CUDA функции Matlab, а затем скомпилировать ее и связать ее с помощью mex-файлов, которые будут вызываться скриптом Matlab. – JackOLantern
Я использую ускоренные функции CUDA, скомпилированные и связанные с Matlab с помощью mex-функций. В настоящее время я являюсь пользователем Matlab 2010a, и я еще не перешел на Matlab 2012. Чтобы сделать то, что вы говорите, вам понадобится инструмент, который компилирует функцию Matlab для функции '__device__', которая будет вызываться в ядре CUDA. Я не знаю, какой инструмент это делает. Но наверняка функции Matlab уже доступны для выполнения графических процессоров в новых вычислительных возможностях Matlab GPU. – JackOLantern