<div dir="ltr"><div>Hi Tom,</div><div><br></div><div>Field 'Total Cycles' from the summary view simply reports the elapsed number of cycles for the entire simulation.</div><div><br></div><div>Rthroughput (from the "Instruction Info" view) is the reciprocal of the instruction throughput.<br></div><div>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.</div><div><br></div><div>Example (x86 - AMD Jaguar):<br></div><div> ADD EAX, ESI<br><br></div><div>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.<br><br></div><div>I hope it helps,</div><div>-Andrea<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 6, 2019 at 10:11 PM Tom Chen via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">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.<div>Thanks in advance,</div><div>Tom</div></div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>