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

Tom Chen via llvm-dev llvm-dev at lists.llvm.org
Fri Jun 7 04:42:52 PDT 2019


Hi Andrea,
So does this definition make sense for basic blocks with more than one
instructions? E.g. how should one interpret a basic block with RThroughput
of 2.3?

On Fri, Jun 7, 2019 at 7:39 AM Andrea Di Biagio <andrea.dibiagio at gmail.com>
wrote:

> 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/2cf5c31e/attachment.html>


More information about the llvm-dev mailing list