gpucoder.profile

Создайте отчет профиля выполнения для сгенерированного кода CUDA

Описание

пример

gpucoder.profile(func_name,codegen_inputs) генерирует выполнение профильный отчет кода CUDA, сгенерированного для файла проекта func_name. codegen_inputs аргумент задает входные параметры к файлу проекта. Необходимо установить Embedded Coder® продукт, чтобы сгенерировать профильный отчет.

Примечание

Профильный рабочий процесс зависит от nvprof инструмент от NVIDIA®. В CUDA® инструментарий v10.1, NVIDIA ограничивает доступ к счетчикам производительности пользователям администратора. Чтобы включить счетчики производительности графического процессора для всех учетных записей пользователей, см. инструкции в https://developer.nvidia.com/ERR_NVGPUCTRPERM (NVIDIA).

gpucoder.profile(___,Name,Value) генерирует отчет профилирования выполнения с одной или несколькими профильными опциями, заданными как аргумент пары "имя-значение".

Примеры

свернуть все

Выполните мелкозернистый анализ для алгоритма MATLAB и его сгенерированного кода CUDA через программное обеспечение в цикле (SIL) профилирование выполнения. Необходимо установить продукт Embedded Coder, чтобы сгенерировать отчет профилирования выполнения.

Запишите функцию точки входа, которая выполняет быстрое преобразование Фурье N-D. Чтобы сопоставить БПФ с графическим процессором, используйте coder.gpu.kernelfun прагма. По умолчанию, EnableCUFFT свойство включено, таким образом, генератор кода пользуется cuFFT библиотекой, чтобы выполнить операцию FFT.

function [Y] = gpu_fftn(X)
  coder.gpu.kernelfun();
  Y = fftn(X);
end

Чтобы сгенерировать отчет профилирования выполнения, используйте gpucoder.profile функция.

cfg = coder.gpuConfig('exe');
cfg.GpuConfig.MallocMode = 'discrete';
gpucoder.profile('gpu_fftn',{rand(2,4500,4)},'CodegenConfig',cfg,...
    'CodegenArguments','-d profilingdir','Threshold',0.001);

Отчет профилирования выполнения кода обеспечивает метрики на основе данных, собранных от выполнения SIL. Времена выполнения вычисляются из данных, зарегистрированных зондами инструментирования, добавленными к тестовой обвязке SIL или в коде, сгенерированном для каждого компонента. Для получения дополнительной информации, Времена выполнения вида на море (Embedded Coder).

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

свернуть все

Имя функции точки входа или файла проекта.

Пример: gpucoder.profile('xdot',{1000,rand(1000,1),1,1,rand(1000,1),1,1})

Время компиляции вводит к функции точки входа или файлу проекта.

Пример: gpucoder.profile('xdot',{1000,rand(1000,1),1,1,rand(1000,1),1,1})

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: gpucoder.profile('xdot', {1000,rand(1000,1),1,1,rand(1000,1),1,1},'NumCalls',2,'CodegenConfig',cfg,'CodegenArguments','-d discrete','Threshold',0.01)

Задайте число раз, профилируемый раздел кода запущен. Значение по умолчанию равняется 6. Первый показ исключен из отчета, потому что это обычно - выброс.

Укажите, что объект настройки генерации кода раньше генерировал код CUDA и профильный отчет. Когда вы не задаете это значение, coder.EmbeddedCodeConfig по умолчанию объект используется.

Задайте любой дополнительный codegen аргументы как строка. Значением по умолчанию является NULL (пустая строка).

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

Введенный в R2018b