[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
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
On Fri, Jun 7, 2019 at 7:39 AM Andrea Di Biagio <andrea.dibiagio at gmail.com>
> 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
> 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,
> 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,
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev