Может Nsight Eclipse профиль C ++ код?

у нас есть код C ++, который мы хотим профилировать с помощью Nividia Nsight Eclipse (версия для Linux) перед добавлением в него кода CUDA. Идея состоит в том, чтобы сначала профилировать C ++, находить горячие точки, преобразовывать их в CUDA, снова профилировать и повторять этот процесс, чтобы последовательно ускорить код. Однако, когда мы профилируем только C ++, похоже, что профилировщик требует некоторого существующего кода CUDA, прежде чем он генерирует временную шкалу и вывод профиля. кто-нибудь еще сталкивался с этим?

4

Решение

Nsight Eclipse Edition может только профилировать код CUDA. Вы можете установить сторонние плагины профилирования для профилирования кода хоста.

Вы можете попробовать установить интеграцию OProfile с сайта Eclipse Foundation (вставить http://download.eclipse.org/releases/indigo/ в диалог Справка / Установка нового программного обеспечения …) — Я только что попробовал, но не смог правильно настроить командную строку oprofile.

2

Другие решения

Вы можете вручную обрабатывать свой код с помощью nvtx (расширение инструментов NVIDIA) и иметь временную шкалу, показанную в Nsight, но для автоматического профилирования и подробных счетчиков он может только профилировать код GPU.

1

Да, Nsight Eclipse может профилировать код C ++. Чтобы перефразировать ваш вопрос, он также может профилировать код C ++ хоста (ЦП). По умолчанию он только профилирует код GPU. Профилирование процессора — гораздо более ручная задача; он не будет профилировать функции автоматически.

Вам нужно использовать NVTX. Вот так:

#include "nvToolsExt.h"nvtxNameOsThread(0,"InputVideo");
nvtxRangePush(__FUNCTION__);
// .. do some CPU computing here
nvtxRangePop();

Сборка с помощью -lnvToolsExt -L / usr / local / cuda / lib64

Путь к libnvToolsExt.so будет отличаться для всех. NVTX поставляется с инструментарием CUDA.

В блоге CUDA есть пост на эту тему.

1
По вопросам рекламы [email protected]