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