What is SOL ( speed of light)?

Hello

I found SM SOL[%] and Memory SOL[%] in ncu results.

However, I have not found what speed of light (SOL) means.

What is SOL?

SM SOL means SM utilization?

Memory SOL means memory bandwidth?

1 Like

Both SM (Compute) and Memory SOL report the categories’ throughput as the achieved percentage of utilization with respect to the theoretical maximum, i.e. the “Speed Of Light”. Both metrics are composed of sub-metrics, with the respective highest contributor defining the resulting value. The Breakdown tables below the chart can be used to identify all such contributors and their values.

In the latest version of the tool, we renamed some labels in this section to make this more clear.

2 Likes

In the picture above, SOL SM is a value that includes both kernel issue and execute?

1 Like

I am not clear what you mean by “issue and execute”. Are you asking if this includes the time from when the kernel was launched through the API to until it finished execution, or something else?

1 Like

I found in the figure above that the SOL values are the maximum of breakdowns.

So, what should I do to know the total SOL SM [%] until the kernel is issued and executed?

Is the sum of SOL SM breakdowns the SOL SM value required by one kernel? Or is it the average value?

1 Like

I found in the figure above that the SOL values are the maximum of breakdowns.

Correct, that’s what I explained in my first reply.

So, what should I do to know the total SOL SM [%] until the kernel is issued and executed?

Nsight Compute provides information on a per-kernel level. If you are looking for understanding your application performance over time and CPU and GPU work, you should use Nsight Systems. It also has support for metric sampling, but the information won’t be associated with any particular CUDA kernel.

Is the sum of SOL SM breakdowns the SOL SM value required by one kernel? Or is it the average value?

There is no insight from adding or averaging these values. Each value shows the particular unit’s throughput as a percentage relative to it’s maximum (the SOL). If a unit has very low utilization, this can either mean that you have enough headroom to add more work or that the unit is prevented from being well-utilized because of an issue. If the value is very high, it means the unit is potentially over-utilized and can become a bottleneck for others, as no additional work can be processed in the same amount of time. Which of the previous it is depends on your specific problem and kernel. The rule output associated with this section helps you to understand the achieved values.

1 Like