SignalStack
Volver a noticias

Tutorial de Python de NVIDIA Nsight: Cómo analizar kernels de GPU

Leer original

Resumen con IA

Nsight Python simplifica el análisis de kernels de GPU al integrar métricas de hardware directamente en los flujos de trabajo de Python, eliminando la necesidad de analizar informes manuales desde la línea de comandos.

Resumen generado con IA. Consulta el original para comprobar el contexto y la precisión.

Extracto de la fuente

Este es el extracto disponible del feed. Puede estar abreviado o en el idioma original.

In this tutorial, we implement on Nsight Python, NVIDIA’s open-source Python interface to its kernel profilers. Instead of running a script under the Nsight Compute command line and digging through a report afterward, we mark the code we care about with nsight.annotate, decorate a benchmark function with nsight.analyze.kernel, and get back a pandas DataFrame of hardware metrics per annotated region, per configuration, and per run. Since version 1.0, the library attaches Nsight Compute to the running Python process, making it usable in Jupyter and Colab, and the upcoming 1.1 release adds an experimental CUPTI backend, explicit tool management, and custom information collectors. We run everything on a free Colab T4: we install a current Nsight Compute next to the one Colab ships, profile a first kernel, decide how many runs a measurement needs, measure what cache and clock control do to the same kernel, sweep matrix sizes in fp32 and fp16 with a derived TFLOP/s metric, use hardware counters to tell compute-bound from memory-bound work, measure kernel fusion in bytes moved, record clocks and temperature per run, compare the CUPTI backend with Nsight Compute, and keep the raw report for deeper analysis. Copy CodeCopiedUse a different Browserimport os import sys import glob import json import time import shutil import textwrap import traceback import subprocess RESULTS = {} def banner(title): print("\n" + "=" * 78) print(title) print("=" * 78) def section(name): def wrap(fn): def run(*a, **kw): banner(name) try: out = fn(*a, **kw) RESULTS[name] = out if isinstance(out, str) else "ok" return out except Exception as e: RESULTS[name] = f"SKIPPED / FAILED -> {type(e).__name__}: {str(e).splitlines()[0][:160]}" print(f"\n[!] {name} did not complete: {type(e).__name__}: {e}") traceback.print_exc(limit=3)

Sobre la prioridad

Una ayuda automática para ordenar, basada en fuentes, palabras clave y entidades, en una escala de 1–12. Alta: 9–12; media: 6–8; baja: 1–5. No mide urgencia, verifica noticias ni representa respaldo editorial.

Más sobre este tema

MarkTechPost

Guía de programación de Cactus Whistle: ¿Un modelo de voz de 16,9 MB resiste frente a Whisper Base? Tasa de error de palabras, velocidad, transmisión, marcas de tiempo, palabras clave y llamadas de voz a herramientas en CPU

Esto es importante porque valida si un modelo de voz diminuto y compatible con CPU puede superar genuinamente a competidores más grandes, permitiendo una transcripción eficiente y de bajo costo para los desarrolladores.

Prioridad alta 12/12