NVIDIA / NVIDIA/nvbench

How can the output metrics be interpreted

Open
#115 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: docs type: enhancement
Dominant language
Cuda
Stars
927
Forks
123
Avg merge
2d 10h
Merged PRs (30d)
2

Description

I'm fairly new to arena of profiling CUDA kernels and would like to learn more about the basic output metrics of this library. Specifically, looking at the output of nvbench.example.throughput:

| NumElements |  DataSize  | Samples |  CPU Time  | Noise |  GPU Time  | Noise | Elem/s  | GlobalMem BW | BWUtil | Samples | Batch GPU  |
|-------------|------------|---------|------------|-------|------------|-------|---------|--------------|--------|---------|------------|
|    16777216 | 64.000 MiB |   1750x | 301.822 us | 5.83% | 285.873 us | 0.50% | 58.688G | 469.501 GB/s | 30.19% |   1809x | 279.783 us |

My questions per field are:

  1. NumElements: Is this the total number of elements processed over the total number of samples taken?
  2. DataSize: Same question. Is this the total data size processed over successive function calls?
  3. Samples: I assume this refers to the total number of times the benchamraked function is called. Is this correct? Also, why is it included twice and has a different value for each?
  4. CPU Time: Total time over successive calls or average?
  5. GPU Time: Same question. Total time or average?
  6. Noise: What is the definition of this metric?
  7. Elem/S: Self explanatory. The number of elements a kernel can process per sec I assume?
  8. GlobalMem BW: Does this measure the speed of device->host and host->device data movement?
  9. BW Util: The % being used of the maximum possible BW?
  10. Batch GPU: How is this different from GPU Time?

Thank you in advance. I just didn't see any documentation or output that explicitly defined these metrics or how to interpret.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No documentation file, test, or entry point is named in the issue. Start by locating the documentation and the code that produces the nvbench.example.throughput output, then define each listed metric and explain the distinction between the two Samples columns and between GPU Time and Batch GPU. Done means the output fields are documented clearly enough to answer all ten questions.

Written by the indexing model from the issue text.

Assessment

Domain
documentation, performance
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.