Расширения инструментария NV включают расположение файлов - Linux против Windows
В Linux, если у вас есть /path/to/cuda-10.0/include
в вашем пути включения вы можете #include <nvToolsExt.h>
и жизнь хороша. Однако соавтор, использующий Windows, только что сказал мне, что (с CUDA 10) файлы, связанные с nvtx, находятся в подкаталоге общего каталога CUDA, называемого nvtx3
,
Я не пользуюсь Windows, но не могу поверить, что он ошибся, поэтому:
- Почему же существует другая структура каталогов include?
- Почему это произошло с CUDA 10, а не с предыдущими версиями?
1 ответ
Чтобы процитировать Как мне использовать NVTX в моем коде?раздел README в репозитории NVTX:
ПРИМЕЧАНИЕ. В старых версиях NVTX требовалось связывание с динамической библиотекой. NVTX версии 3 предоставляет тот же API, но устраняет необходимость связывания с какой-либо библиотекой. Убедитесь, что вы включаете NVTX v3, используя каталог в качестве префикса в вашем #includes: [...]
Еще один интересный раздел — Get NVTX with the CUDA Toolkit:
Инструментарий CUDA предоставляет NVTX v3. Обратите внимание, что набор инструментов может также включать более старые версии для обратной совместимости, поэтому обязательно используйте версию 3 (подкаталог заголовков) для лучшей производительности, удобства и поддержки. Использовать
#include <nvtx3/nvToolsExt.h>
вместо#include <nvToolsExt.h>
чтобы убедиться, что код включает v3!
Похоже на существованиеnvtx3
подкаталог не зависит от Windows. Возможно, версия набора инструментов CUDA для Windows, которую использовал ваш коллега, не включала эти старые версии для обратной совместимости или он их игнорировал.