Я пишу мекс-код и код куда. Мне интересно иметь два объектных файла каждого кода и вызывать ядро cuda из mex-файла, поскольку я получаю исполняемый файл путем комбинации их объектных файлов. Поэтому мне нужно знать, что (если это возможно), как я могу вызвать функцию одного объектного файла из другого объектного файла. Работает ли это, чтобы скомпилировать mex и cuda с их отдельными компиляторами и объединить их таким образом?
Это вполне возможно. Я играл с этим некоторое время назад. Поддерживаемые в настоящее время способы сделать это используют набор инструментов параллельных вычислений MATLAB. Есть инструкции для этого Вот.
Чтобы немного расширить, скомпилированные mex-файлы — это просто динамические библиотеки с скомпилированным mex-шлюзом. Пока у вас есть шлюз, соответствующим образом свяжите ваши файлы и дайте соответствующее расширение mex полученному скомпилированному файлу (например, mexa64, mexmaci64 и т. Д.), Файл будет работать.
Важно отметить, что вам не нужно использовать функцию mex из MATLAB для компиляции вашего файла. Это позволяет использовать некоторые неподдерживаемые способы компиляции вне MATLAB. Это может быть полезно, если у вас нет параллельного набора инструментов, если вам нужен более тонкий контроль над тем, что происходит, или вы предпочитаете использовать make в своем рабочем процессе. Инструкции по началу работы с этим Вот.
Других решений пока нет …