Matlab совместно используемые библиотеки C ++ и OpenCL - PullRequest
1 голос
/ 03 июля 2010

У меня есть проект, который требует большой обработки изображений и хотел бы добавить поддержку GPU для ускорения работы.

Мне было интересно, скомпилировал ли я свой matlab в общую библиотеку c ++ и вызвал его из программы OpenCL,Означает ли это, что код Matlab будет выполняться на GPU?

Ответы [ 4 ]

1 голос
/ 08 декабря 2010

Все в куртке написано на c / c ++ / cuda. На самом деле, теперь у нас есть бета-версия libjacket (http://www.accelereyes.com/downloadLibjacket), которую можно использовать для расширения не только matlab, но и других языков, если вы хотите.

@ OSaad Большинство наших функций - самые быстрые варианты. Будь то в C или Matlab.

1 голос
/ 03 июля 2010

Мое собственное (полуобразованное) предположение, что вам будет очень трудно это сделать. Но другие прошли по тому же пути. Эта статья может быть хорошим местом для начала вашего исследования. И Googling обнаружил Accelereyes и пару ссылок на элементы на Mathworks File Exchange, за которыми вы могли бы следить.

0 голосов
/ 17 декабря 2010

Как правило, если вы можете написать свой код Matlab «векторизованным» способом, то такие пакеты, как AccelerEyes и Jacket, имеют разумную возможность заставить вещи работать на GPU.Вы можете проверить это в некоторой степени заранее, проверив, может ли сам Matlab работать на нескольких ядрах на процессоре (в наши дни Matlab будет использовать несколько ядер, если что-то будет распараллелено очевидным образом).

Если это не такне работает, тогда вам нужно перейти на C / C ++ через mex, а затем оттуда вызвать OpenCL самостоятельно.Mex - это то, как Matlab общается с C-кодом, поэтому вы пишете C-код, который вызывается Matlab (и получает матрицы и т. Д.), Затем инициализирует и вызывает OpenCL.Это больше работы, но может быть вашим единственным маршрутом (и, даже если автоматизированные пакеты работают до некоторой степени, этот подход все же может дать больше ускорений, потому что вы можете быть умнее в управлении памятью, например, если вы знаете, что делаете).

0 голосов
/ 03 июля 2010

Parallel Computing Toolbox в предстоящем выпуске R2010b (выйдет 1 сентября) поддерживает обработку графического процессора для нескольких функций К сожалению, он поддерживает только CUDA (версия 1.3 и выше), поэтому с видеокартой ATI вам не повезло. Тем не менее, вы все равно можете просто купить выделенный графический процессор.

...