mexcuda

Скомпилируйте MEX-функцию для расчетов графический процессор

Описание

пример

mexcuda filenames компилирует и связывает исходные файлы в общую библиотеку, называемую файлом MEX, исполняемую из MATLAB®. Функция компилирует файлы MEX, написанные с помощью CUDA® Среда C++ с NVIDIA® nvcc компилятор, позволяющий файлам определять и запускать ядра графический процессор. В сложение, mexcuda функция предоставляет GPU MEX API разрешение файлу MEX читать и записывать gpuArrays.

mexcuda является расширением MATLAB mex функция. Только подмножество компиляторов, поддерживаемое mex поддерживается для mexcuda. Поддерживаемые компиляторы зависят от версии CUDA Toolkit, поддерживаемой MATLAB.

пример

mexcuda option1 ... optionN filenames создает с заданными опциями сборки. The option1 ... optionN аргументы дополняют или переопределяют значение по умолчанию mexcuda создайте строение. Можно использовать большинство опций, доступных в mex с mexcuda.

Примеры

свернуть все

Скомпилируйте простую MEX-функцию, чтобы создать функцию myMexFunction из исходного файла CUDA C++.

mexcuda myMexFunction.cu

Пример исходного файла доступен в matlabroot/ toolbox/parallel/gpu/extern/src/mex/mexGPUExample.cu.

Используйте подробный режим для отображения команд compile и link и другой информации, полезной для поиска и устранения проблем.

mexcuda -v myMexFunction.cu

Скомпилируйте и соедините несколько исходных файлов с помощью одной команды.

mexcuda myMexFunction.cu otherSource1.cpp otherSource2.cpp

Сначала скомпилируйте, затем соедините, чтобы создать функцию.

mexcuda -c myMexFunction.cu
mexcuda myMexFunction.obj

Первая линия скомпилируется в myMexFunction.obj (Окна®) или myMexFunction.o (UNIX®), и вторые ссылки для создания функции myMexFunction.

Скомпилируйте код, который использует динамический параллелизм, определяя ядра, которые запускают другие ядра.

mexcuda -dynamic myMexFunction.cu

Скомпилируйте MEX-функцию, которая использует библиотеку примитивов изображений CUDA, npp, который установлен в C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\x64\nppi.lib.

mexcuda '-LC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\x64' -lnppi myMexFunction.cu 

Входные параметры

свернуть все

Одно или несколько имен файлов, включая имя и расширение, заданные как вектор символов. Если файл отсутствует в текущей папке, укажите полный путь к файлу. Имена файлов могут быть любыми комбинациями:

  • Исходные файлы на C или C++

  • файлы объектов

  • файлы библиотек

Первый файл исходного кода, перечисленный в filenames - имя двоичного файла MEX. Чтобы переопределить это соглашение об именовании, используйте '-output' опция.

Типы данных: char

Одна или несколько опций сборки, заданных в качестве одного из следующих значений. Опции могут появиться в любом порядке на любой платформе, кроме указанного.

Большинство опций, доступных для mex поддерживаются функции. В сложение также доступны следующие опции.

ОпцияОписание

-dynamic

Динамический параллелизм: компилирует файлы MEX, которые определяют ядра, запускающие другие ядра.

-G

Сгенерируйте отладочную информацию для кода устройства. Это позволяет проходить по коду ядра линию за линией в одном из отладочных приложений NVIDIA (NSight или cuda-gdb). Чтобы включить отладку использования кода узла -g.

Следующее mex опция функции не поддерживается.

ОпцияПричина

-compatibleArrayDims

Использование MATLAB API, обрабатывающего большие массивы, неявно и не может быть переопределено.

Все другие опции для mex поддерживаются для mexcuda. См. документацию для mex для получения дополнительной информации.

Совет

  • Если набор инструментов CUDA не обнаружен или не является поддерживаемой версией, MATLAB компилирует код CUDA с помощью nvcc NVIDIA компилятор, установленный с MATLAB. Чтобы проверить, какой компилятор mexcuda использует, использует -v флаг для подробного выхода в mexcuda команда.

  • Набор инструментов CUDA, установленный с MATLAB, не содержит всех библиотек, доступных в наборе инструментов CUDA. Если требуется связать определенную библиотеку, которая не установлена с MATLAB, установите набор инструментов CUDA. Можно проверить, какая версия набора инструментальных средств CUDA MATLAB требуется при помощи gpuDevice. Для получения дополнительной информации о наборе инструментальных средств CUDA см. CUDA Toolkit.

  • Если mexcuda не удалось найти компилятор NVIDIA (nvcc) в установленном наборе инструментов CUDA он может быть установлен в расположении, отличном от расположения по умолчанию. Можно задать местоположение nvcc в вашей системе путем хранения ее в переменной окружения MW_NVCC_PATH. Вы можете задать эту переменную с помощью MATLAB setenv команда. Для примера,

    setenv('MW_NVCC_PATH','/usr/local/CUDA/bin')
Введенный в R2015b