NSight Systems-це потужний інструмент, призначений для візуалізації та аналізу взаємодій CPU-GPU в додатках, що надає розуміння вузьких місць та можливостей оптимізації. Ось як він візуалізує ці взаємодії:
Аналіз системного аналізу
NSight Systems фіксує дані про активність у всій системі, включаючи як процесори та графічний процесор, та відображає їх на єдиній часовій шкалі. Ця часова шкала дозволяє розробникам бачити, як різні компоненти системи взаємодіють між собою з часом, що полегшує ідентифікацію кореляцій, залежностей та вузьких місць у робочому процесі програми [3] [4].
Візуалізація діяльності процесора
NSight Systems візуалізує активність процесора, показуючи стан нитки, використання та виконання алгоритму. Це допомагає розробникам зрозуміти, як використовуються ресурси процесора та де можуть існувати потенційні вузькі місця. Інструмент підтримує багатопроцесний аналіз дерев, що дозволяє користувачам відстежувати активність декількох процесів та потоків одночасно [1] [3].
візуалізація активності GPU
Для активності GPU NSight Systems надає детальну інформацію про навантаження GPU, включаючи оптимізацію потокового мультипроцесора (SM), перекази пам'яті та виконання ядра. Він підтримує відстеження різних API GPU, таких як CUDA, Vulkan та OpenGL, що дозволяє розробникам аналізувати обчислювальні та графічні завдання в глибині [3] [4]. Інструмент також пропонує вибірку метрики GPU, що включає такі показники, як використання SM, активність основного тензора та пропускна здатність інструкцій. Ці показники допомагають розробникам оптимізувати продуктивність GPU, виявляючи недостатнє використання або неефективність у використанні ресурсів GPU [1] [3].
співвідношення процесора та графічного процесора
Однією з ключових особливостей NSight System є його здатність співвідносити події процесора та GPU. Візуалізуючи як процесор, так і GPU на одній часовій шкалі, розробники можуть побачити, як операції процесора впливають на продуктивність GPU та навпаки. Ця кореляція має вирішальне значення для виявлення вузьких місць, які виникають через взаємодію між процесором та GPU, такими як затримки передачі даних або проблеми синхронізації [3] [4].
Низькі витрати та масштабованість
NSight Systems розроблений для роботи з низькими накладними витратами, гарантуючи, що процес профілювання не суттєво впливає на продуктивність програми. Це робить його придатним для аналізу складних масштабних додатків, що працюють на різних платформах NVIDIA, від робочих станцій до центрів обробки даних та хмарних середовищ [3] [6].
Інтерфейс користувача та навігація
Інструмент забезпечує зручний GUI, який дозволяє розробникам орієнтуватися по перегляду часової шкали за допомогою смуг прокрутки, колеса миші та ярликів клавіш. Цей інтерфейс дозволяє користувачам збільшити масштаб у конкретних діапазонах часу або подій, полегшуючи детальний аналіз проблем з продуктивністю [5] [9].
Загалом, NSight Systems пропонує всебічний вигляд взаємодій CPU-GPU, що дозволяє розробникам оптимізувати свої програми для кращої продуктивності та ефективності в широкому спектрі платформ.
Цитати:
[1] https://extremecomputingtraining.anl.gov/wp-content/uploads/sites/96/2022/11/atpesc-2022-track-6-talk-2-keipert-nvidia.pdf
[2] https://bede-documentation.readthedocs.io/en/latest/software/tools/nsight-systems.html
[3] https://developer.nvidia.com/nsight-systems
[4] https://indico.cern.ch/event/962112/contributions/4047370/attachments/2159916/3643963/nsight%20systems%20-5x86%20introduction%20-%20cern.pdff
[5] https://www.youtube.com/watch?v=tgchxcfm-yo
[6] https://docs.nersc.gov/tools/performance/nvidiaproftools/
[7] https://www.youtube.com/watch?v=kkanp0kl_hk
[8] https://docs.nvidia.com/nsight-systems/userguide/index.html
[9] https://www.youtube.com/watch?v=dudgo66iadu
[10] https://dev-discuss.pytorch.org/t/using-nsight-systems-to-profile-gpu-workload/59