exponenta event banner

mexcuda

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

Описание

пример

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

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

пример

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

Примеры

свернуть все

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

mexcuda myMexFunction.cu

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

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

mexcuda -v myMexFunction.cu

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

mexcuda myMexFunction.cu otherSource1.cpp otherSource2.cpp

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

mexcuda -c myMexFunction.cu
mexcuda myMexFunction.obj

Первая строка компилируется в myMexFunction.obj (Windows ®) или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 (NSiht или cuda-gdb). Включение отладки кода хоста -g.

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

ВыборПричина

-compatibleArrayDims

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

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

Совет

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

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

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

    setenv('MW_NVCC_PATH','/usr/local/CUDA/bin')
Представлен в R2015b