Tom Chen via llvm-dev
2019-Jun-06 21:11 UTC
[llvm-dev] [llvm-mca] What's the difference between Rthroughput and "total cycles" in llvm-mca
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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190606/90804083/attachment.html>
Andrea Di Biagio via llvm-dev
2019-Jun-07 11:39 UTC
[llvm-dev] [llvm-mca] What's the difference between Rthroughput and "total cycles" in llvm-mca
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>
Tom Chen via llvm-dev
2019-Jun-07 11:42 UTC
[llvm-dev] [llvm-mca] What's the difference between Rthroughput and "total cycles" in llvm-mca
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>
Reasonably Related Threads
- [llvm-mca] What's the difference between Rthroughput and "total cycles" in llvm-mca
- Get llvm-mca results inside opt?
- [llvm-mca] Resource consumption of ProcResGroups
- [EXTERNAL] Get llvm-mca results inside opt?
- [llvm-mca] Resource consumption of ProcResGroups