[llvm-dev] [llvm-mca] What's the difference between Rthroughput and "total cycles" in llvm-mca

Andrea Di Biagio via llvm-dev llvm-dev at lists.llvm.org
Fri Jun 7 04:39:11 PDT 2019


Hi Tom,

Field 'Total Cycles' from the summary view simply reports the elapsed
number of cycles for the entire simulation.

Rthroughput (from the "Instruction Info" view) is the reciprocal of the
instruction throughput.
Throughput is computed as the maximum number of instructions of a same type
that can be executed per clock cycle in the absence of operand dependencies.

Example (x86 - AMD Jaguar):
   ADD EAX, ESI

The integer unit in Jaguar has two ALU pipelines. An ADD instruction can
issue to any of those pipelines. That means, two independent ADD can be
issue during a same cycle. Therefore, throughput is 2  (instructions per
cycle), and RThrougput (1/throughput) is 0.5.

I hope it helps,
-Andrea

On Thu, Jun 6, 2019 at 10:11 PM Tom Chen via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> What is the difference between the two? I thought "Rthroughput" is
> basically the number of cycles required to execute a single iteration at
> steady state, but this does not seem to match with the schedule/timeline
> generated by llvm-mca.
> Thanks in advance,
> Tom
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190607/3ce884b2/attachment-0001.html>


More information about the llvm-dev mailing list