mexcuda

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

Описание

пример

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

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

пример

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

Примеры

свернуть все

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

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 приложений (NSight или cuda-gdb). Чтобы позволить отладить кода хоста используют -g.

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

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

-compatibleArrayDims

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

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

Советы

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

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

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

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