Некоторые наиболее распространенные причины, почему сгенерированный код GPU Coder™ не выполняет как ожидалось:
Ядра CUDA® не создаются.
Разместите к устройству и устройству к передачам памяти хоста (cudaMemcpy
) регулируют эффективность.
Недостаточно параллелизма или проблем устройств.
Эти темы уточняют частые причины для этих признаков и описывают, как использовать встроенного сотрудника досмотра, чтобы обнаружить эти проблемы. Можно найти информацию о том, как работать вокруг на эти проблемы и сгенерировать более эффективный код CUDA.
Рабочий процесс поиска и устранения неисправностей GPU Coder.
Создайте и просмотрите отчеты, сгенерированные во время генерации кода.
Проследите между сгенерированным кодом CUDA и исходным кодом MATLAB
Подсветите разделы кода MATLAB, который работает на графическом процессоре.
Генерация метрического отчета графического процессора кода для кода, сгенерированного из кода MATLAB
Создайте и исследуйте графический процессор статический метрический отчет кода.
Рекомендации для генерации эффективных ядер CUDA.
Уменьшайте проблемы узкого места памяти при использовании GPU Coder.
Анализируйте профили выполнения сгенерированного кода
Мелкомодульное профилирование для алгоритма MATLAB и его сгенерированного кода CUDA через SIL.
Анализ с профилировщиком NVIDIA
Улучшайте производительность при помощи информации, полученной от Профилировщика NVIDIA (nvvp).
Смотрите текущие ограничения GPU Coder.