Nsight Compute

class tests.tools.ncu.test_ncu.TestCacherView on GitHub

Bases: object

Tests for reprospect.tools.ncu.cacher.Cacher.

GRAPH: Final[Path] = PosixPath('tests/assets/tests_assets_graph')
SAXPY: Final[Path] = PosixPath('tests/assets/tests_assets_saxpy')
test_cache_hit(bindir, workdir) NoneView on GitHub

The cacher should hit on the second call.

test_hash_different(bindir) NoneView on GitHub

Test reprospect.tools.ncu.cacher.Cacher.hash().

test_hash_same(bindir) NoneView on GitHub

Test reprospect.tools.ncu.cacher.Cacher.hash().

class tests.tools.ncu.test_ncu.TestCommandView on GitHub

Bases: object

Tests for reprospect.tools.ncu.session.Command.

test_env(bindir: Path) NoneView on GitHub

Check that the environment is handled properly.

class tests.tools.ncu.test_ncu.TestMetricsView on GitHub

Bases: object

Tests for reprospect.tools.ncu.metrics.

CREATED_METRICS: Final[tuple[CreatedMetricsCase, ...]] = (((<reprospect.tools.ncu.metrics.Metric object>, <reprospect.tools.ncu.metrics.Metric object>, <reprospect.tools.ncu.metrics.Metric object>), (<reprospect.tools.ncu.metrics.Metric object>, <reprospect.tools.ncu.metrics.Metric object>, <reprospect.tools.ncu.metrics.Metric object>), ('launch__block_dim_x', 'launch__block_dim_y', 'launch__block_dim_z'), ('Launch block size x', 'Launch block size y', 'Launch block size z')), ((<reprospect.tools.ncu.metrics.Metric object>,), (<reprospect.tools.ncu.metrics.Metric object>,), ('launch__block_dim_x',), ('Launch block size x',)), ((<reprospect.tools.ncu.metrics.Metric object>, <reprospect.tools.ncu.metrics.Metric object>, <reprospect.tools.ncu.metrics.Metric object>), (<reprospect.tools.ncu.metrics.Metric object>, <reprospect.tools.ncu.metrics.Metric object>, <reprospect.tools.ncu.metrics.Metric object>), ('launch__block_dim_x', 'launch__block_dim_y', 'launch__block_dim_z'), ('Launch block size x', 'Launch block size y', 'Launch block size z')), ((<reprospect.tools.ncu.metrics.MetricCounter object>,), (<reprospect.tools.ncu.metrics.MetricCounter object>,), ('smsp__sass_inst_executed_op_global_st.sum',), ('L1/TEX cache global store sass instructions',)), ((<reprospect.tools.ncu.metrics.MetricCounter object>,), (<reprospect.tools.ncu.metrics.MetricCounter object>,), ('smsp__inst_executed_op_global_st.sum',), ('L1/TEX cache global store instructions',)), ((<reprospect.tools.ncu.metrics.MetricCounter object>,), (<reprospect.tools.ncu.metrics.MetricCounter object>,), ('smsp__sass_inst_executed_op_global_st.min', 'smsp__sass_inst_executed_op_global_st.max'), ('L1/TEX cache global store sass instructions (min)', 'L1/TEX cache global store sass instructions (max)')), ((<reprospect.tools.ncu.metrics.MetricCounter object>,), (<reprospect.tools.ncu.metrics.MetricCounter object>,), ('l1tex__t_requests_pipe_lsu_mem_global_op_st.sum',), ('L1/TEX cache global store requests',)), ((<reprospect.tools.ncu.metrics.MetricCounter object>,), (<reprospect.tools.ncu.metrics.MetricCounter object>,), ('l1tex__t_sectors_pipe_lsu_mem_global_op_st.sum',), ('L1/TEX cache global store sectors',)), ((<reprospect.tools.ncu.metrics.MetricRatio object>,), (<reprospect.tools.ncu.metrics.MetricRatio object>,), ('smsp__average_warps_issue_stalled_lg_throttle_per_issue_active.ratio',), ('Warp stall LG throttle',)))
class CreatedMetricsCase(metrics, expected, gathered, labels)View on GitHub

Bases: NamedTuple

expected: tuple[Metric | MetricCorrelation | MetricDeviceAttribute, ...]

Alias for field number 1

gathered: tuple[str, ...]

Alias for field number 2

labels: tuple[str, ...]

Alias for field number 3

metrics: tuple[Metric | MetricCorrelation | MetricDeviceAttribute, ...]

Alias for field number 0

METRICS: Final[tuple[MetricCase, ...]] = ((<reprospect.tools.ncu.metrics.MetricCounter object>, ('dram__bytes_op_write.sum.pct_of_peak_sustained_elapsed',), ('dram__bytes_op_write.sum.pct_of_peak_sustained_elapsed',)), (<reprospect.tools.ncu.metrics.MetricCounter object>, ('dram__bytes_op_write.sum.pct_of_peak_sustained_elapsed',), ('Device memory store bytes (% of peak elapsed)',)))
class MetricCase(metric, gathered, labels)View on GitHub

Bases: NamedTuple

gathered: tuple[str, ...]

Alias for field number 1

labels: tuple[str, ...]

Alias for field number 2

metric: Metric | MetricCorrelation | MetricDeviceAttribute

Alias for field number 0

test_metrics(metric: Metric | MetricCorrelation | MetricDeviceAttribute, gather: tuple[str, ...], labels: tuple[str, ...]) NoneView on GitHub
test_metrics_from_metric_factories(metrics: tuple[Metric | MetricCorrelation | MetricDeviceAttribute, ...], expected: tuple[Metric | MetricCorrelation | MetricDeviceAttribute, ...], gather: tuple[str, ...], labels: tuple[str, ...]) NoneView on GitHub
class tests.tools.ncu.test_ncu.TestProfilingResultsView on GitHub

Bases: object

Tests for reprospect.tools.ncu.report.ProfilingResults.

results() ProfilingResultsView on GitHub
test_aggregate_metrics() NoneView on GitHub

Test reprospect.tools.ncu.report.ProfilingResults.aggregate_metrics().

test_assign_metrics() NoneView on GitHub

Test reprospect.tools.ncu.report.ProfilingResults.assign_metrics().

test_iter_metrics(results: ProfilingResults) NoneView on GitHub

Test reprospect.tools.ncu.report.ProfilingResults.iter_metrics().

test_query(results: ProfilingResults) NoneView on GitHub

Test reprospect.tools.ncu.report.ProfilingResults.query().

test_query_filter(results: ProfilingResults) NoneView on GitHub

Test reprospect.tools.ncu.report.ProfilingResults.query_filter().

test_query_metrics(results: ProfilingResults) NoneView on GitHub

Test reprospect.tools.ncu.report.ProfilingResults.query_metrics().

test_query_single_next(results: ProfilingResults) NoneView on GitHub

Test reprospect.tools.ncu.report.ProfilingResults.query_single_next().

test_query_single_next_metrics(results: ProfilingResults) NoneView on GitHub

Test reprospect.tools.ncu.report.ProfilingResults.query_single_next_metrics().

test_string_representation(results: ProfilingResults) NoneView on GitHub

Test the string representation of reprospect.tools.ncu.report.ProfilingResults().

class tests.tools.ncu.test_ncu.TestSessionView on GitHub

Bases: object

Test reprospect.tools.ncu.session.Session.

GRAPH: Final[Path] = PosixPath('tests/assets/tests_assets_graph')
SAXPY: Final[Path] = PosixPath('tests/assets/tests_assets_saxpy')
pytestmark = [Mark(name='skipif', args=(False,), kwargs={'reason': 'needs a GPU'})]
test_collect_basic_metrics_graph(bindir, workdir, cmake_cuda_compiler: CMakeToolchainCompiler) NoneView on GitHub

Collect a few basic metrics for the GRAPH executable.

test_collect_basic_metrics_saxpy_with_nvtx_filtering(bindir, workdir) NoneView on GitHub

Collect a few basic metrics for the SAXPY executable and filter by NVTX.

test_collect_correlated_metrics_saxpy(bindir, workdir) NoneView on GitHub

Collect metrics with correlations for the SAXPY executable.

test_fails_correctly_with_retries(bindir, workdir) NoneView on GitHub

When retries is given, but ncu fails for a good reason, it should not retry, i.e. it should not sleep.