Skip to content

Commit a902754

Browse files
committed
add colors (part 1)
1 parent ee6925a commit a902754

File tree

1 file changed

+55
-48
lines changed

1 file changed

+55
-48
lines changed

src/pcm.cpp

Lines changed: 55 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -399,38 +399,43 @@ void print_output(PCM * m,
399399
}
400400
if (m->isHWTMAL2Supported())
401401
{
402-
cout << " Pipeline stalls: Frontend (fetch latency: " << int(100. * getFetchLatencyBound(sstate1, sstate2)) <<" %, fetch bandwidth: " << int(100. * getFetchBandwidthBound(sstate1, sstate2)) <<
403-
" %)\n bad Speculation (branch misprediction: " << int(100. * getBranchMispredictionBound(sstate1, sstate2)) <<
402+
cout << setColor(ASCII_BRIGHT_MAGENTA);
403+
cout << " Pipeline stalls: " << setColor(ASCII_BRIGHT_CYAN) << "Frontend (fetch latency: " << int(100. * getFetchLatencyBound(sstate1, sstate2)) <<" %, fetch bandwidth: " << int(100. * getFetchBandwidthBound(sstate1, sstate2)) <<
404+
" %)\n " << setColor(ASCII_BRIGHT_RED) << "bad Speculation (branch misprediction: " << int(100. * getBranchMispredictionBound(sstate1, sstate2)) <<
404405
" %, machine clears: " << int(100. * getMachineClearsBound(sstate1, sstate2)) <<
405-
" %)\n Backend (buffer/cache/memory: " << int(100. * getMemoryBound(sstate1, sstate2)) <<
406+
" %)\n " << setColor(ASCII_BRIGHT_YELLOW) << "Backend (buffer/cache/memory: " << int(100. * getMemoryBound(sstate1, sstate2)) <<
406407
" %, core: " << int(100. * getCoreBound(sstate1, sstate2)) <<
407-
" %)\n Retiring (heavy operations: " << int(100. * getHeavyOperationsBound(sstate1, sstate2)) <<
408+
" %)\n " << setColor(ASCII_BRIGHT_GREEN) << "Retiring (heavy operations: " << int(100. * getHeavyOperationsBound(sstate1, sstate2)) <<
408409
" %, light operations: " << int(100. * getLightOperationsBound(sstate1, sstate2)) << " %)\n";
409410
}
410411
else if (m->isHWTMAL1Supported())
411412
{
412-
cout << " Pipeline stalls: Frontend bound: " << int(100. * getFrontendBound(sstate1, sstate2)) <<
413-
" %, bad Speculation: " << int(100. * getBadSpeculation(sstate1, sstate2)) <<
414-
" %, Backend bound: " << int(100. * getBackendBound(sstate1, sstate2)) <<
415-
" %, Retiring: " << int(100. * getRetiring(sstate1, sstate2)) << " %\n";
413+
cout << setColor(ASCII_BRIGHT_MAGENTA);
414+
cout << " Pipeline stalls: " << setColor(ASCII_BRIGHT_CYAN) << "Frontend bound: " << int(100. * getFrontendBound(sstate1, sstate2)) <<
415+
" %, " << setColor(ASCII_BRIGHT_RED) << "bad Speculation: " << int(100. * getBadSpeculation(sstate1, sstate2)) <<
416+
" %, " << setColor(ASCII_BRIGHT_YELLOW) << "Backend bound: " << int(100. * getBackendBound(sstate1, sstate2)) <<
417+
" %, " << setColor(ASCII_BRIGHT_GREEN) << "Retiring: " << int(100. * getRetiring(sstate1, sstate2)) << " %\n";
416418
}
417419

418420
if (m->isHWTMAL1Supported())
419421
{
422+
cout << setColor(ASCII_BRIGHT_MAGENTA);
420423
std::vector<StackedBarItem> TMAStackedBar;
421424
TMAStackedBar.push_back(StackedBarItem(getFrontendBound(sstate1, sstate2), "", 'F'));
422425
TMAStackedBar.push_back(StackedBarItem(getBadSpeculation(sstate1, sstate2), "", 'S'));
423426
TMAStackedBar.push_back(StackedBarItem(getBackendBound(sstate1, sstate2), "", 'B'));
424427
TMAStackedBar.push_back(StackedBarItem(getRetiring(sstate1, sstate2), "", 'R'));
425428
drawStackedBar(" Pipeline stall distribution ", TMAStackedBar, 80);
426-
cout << "\n";
429+
cout << resetColor() << "\n";
427430
}
428431

429432
#if 0
430433
cout << " SMI count: " << getSMICount(sstate1, sstate2) << "\n";
431434
#endif
432435
}
433436

437+
cout << setColor(ASCII_BRIGHT_CYAN);
438+
434439
if (show_socket_output)
435440
{
436441
if (m->getNumSockets() > 1 && m->incomingQPITrafficMetricsAvailable()) // QPI info only for multi socket systems
@@ -515,117 +520,119 @@ void print_output(PCM * m,
515520
cout << "Total " << m->xPI() << " outgoing data and non-data traffic: " << unit_format(getAllOutgoingQPILinkBytes(sstate1, sstate2)) << "\n";
516521
}
517522
}
523+
cout << resetColor();
524+
518525
if (show_socket_output)
519526
{
520527
cout << "\nMEM (GB)->|";
521528
if (m->memoryTrafficMetricsAvailable())
522-
cout << " READ | WRITE |";
529+
cout << setNextColor() << " READ | WRITE |";
523530
if (m->localMemoryRequestRatioMetricAvailable())
524-
cout << " LOCAL |";
531+
cout << setNextColor() << " LOCAL |";
525532
if (m->PMMTrafficMetricsAvailable())
526-
cout << " PMM RD | PMM WR |";
533+
cout << setNextColor() << " PMM RD | PMM WR |";
527534
if (m->HBMmemoryTrafficMetricsAvailable())
528-
cout << " HBM READ | HBM WRITE |";
535+
cout << setNextColor() << " HBM READ | HBM WRITE |";
529536
if (m->memoryIOTrafficMetricAvailable())
530-
cout << " IO |";
537+
cout << setNextColor() << " IO |";
531538
if (m->memoryIOTrafficMetricAvailable())
532-
cout << " IA |";
539+
cout << setNextColor() << " IA |";
533540
if (m->memoryIOTrafficMetricAvailable())
534-
cout << " GT |";
541+
cout << setNextColor() << " GT |";
535542
if (m->packageEnergyMetricsAvailable())
536-
cout << " CPU energy |";
543+
cout << setNextColor() << " CPU energy |";
537544
if (m->ppEnergyMetricsAvailable())
538545
{
539-
cout << " PP0 energy |";
540-
cout << " PP1 energy |";
546+
cout << setNextColor() << " PP0 energy |";
547+
cout << setNextColor() << " PP1 energy |";
541548
}
542549
if (m->dramEnergyMetricsAvailable())
543-
cout << " DIMM energy |";
550+
cout << setNextColor() << " DIMM energy |";
544551
if (m->LLCReadMissLatencyMetricsAvailable())
545-
cout << " LLCRDMISSLAT (ns)|";
552+
cout << setNextColor() << " LLCRDMISSLAT (ns)|";
546553
if (m->uncoreFrequencyMetricAvailable())
547-
cout << " UncFREQ (Ghz)|";
548-
cout << "\n";
554+
cout << setNextColor() << " UncFREQ (Ghz)|";
555+
cout << resetColor() << "\n";
549556
cout << longDiv;
550557
for (uint32 i = 0; i < m->getNumSockets(); ++i)
551558
{
552559
cout << " SKT " << setw(2) << i;
553560
if (m->memoryTrafficMetricsAvailable())
554-
cout << " " << setw(5) << getBytesReadFromMC(sktstate1[i], sktstate2[i]) / double(1e9) <<
561+
cout << setNextColor() << " " << setw(5) << getBytesReadFromMC(sktstate1[i], sktstate2[i]) / double(1e9) <<
555562
" " << setw(5) << getBytesWrittenToMC(sktstate1[i], sktstate2[i]) / double(1e9);
556563
if (m->localMemoryRequestRatioMetricAvailable())
557-
cout << " " << setw(3) << int(100.* getLocalMemoryRequestRatio(sktstate1[i], sktstate2[i])) << " %";
564+
cout << setNextColor() << " " << setw(3) << int(100.* getLocalMemoryRequestRatio(sktstate1[i], sktstate2[i])) << " %";
558565
if (m->PMMTrafficMetricsAvailable())
559-
cout << " " << setw(5) << getBytesReadFromPMM(sktstate1[i], sktstate2[i]) / double(1e9) <<
566+
cout << setNextColor() << " " << setw(5) << getBytesReadFromPMM(sktstate1[i], sktstate2[i]) / double(1e9) <<
560567
" " << setw(5) << getBytesWrittenToPMM(sktstate1[i], sktstate2[i]) / double(1e9);
561568
if (m->HBMmemoryTrafficMetricsAvailable())
562-
cout << " " << setw(11) << getBytesReadFromEDC(sktstate1[i], sktstate2[i]) / double(1e9) <<
569+
cout << setNextColor() << " " << setw(11) << getBytesReadFromEDC(sktstate1[i], sktstate2[i]) / double(1e9) <<
563570
" " << setw(11) << getBytesWrittenToEDC(sktstate1[i], sktstate2[i]) / double(1e9);
564571
if (m->memoryIOTrafficMetricAvailable()) {
565-
cout << " " << setw(5) << getIORequestBytesFromMC(sktstate1[i], sktstate2[i]) / double(1e9);
566-
cout << " " << setw(5) << getIARequestBytesFromMC(sktstate1[i], sktstate2[i]) / double(1e9);
567-
cout << " " << setw(5) << getGTRequestBytesFromMC(sktstate1[i], sktstate2[i]) / double(1e9);
572+
cout << setNextColor() << " " << setw(5) << getIORequestBytesFromMC(sktstate1[i], sktstate2[i]) / double(1e9);
573+
cout << setNextColor() << " " << setw(5) << getIARequestBytesFromMC(sktstate1[i], sktstate2[i]) / double(1e9);
574+
cout << setNextColor() << " " << setw(5) << getGTRequestBytesFromMC(sktstate1[i], sktstate2[i]) / double(1e9);
568575
}
569576
if(m->packageEnergyMetricsAvailable()) {
570-
cout << " ";
577+
cout << setNextColor() << " ";
571578
cout << setw(6) << getConsumedJoules(sktstate1[i], sktstate2[i]);
572579
}
573580
if (m->ppEnergyMetricsAvailable()) {
574-
cout << " ";
581+
cout << setNextColor() << " ";
575582
cout << setw(6) << getConsumedJoules(0, sktstate1[i], sktstate2[i]);
576-
cout << " ";
583+
cout << setNextColor() << " ";
577584
cout << setw(6) << getConsumedJoules(1, sktstate1[i], sktstate2[i]);
578585
}
579586
if(m->dramEnergyMetricsAvailable()) {
580-
cout << " ";
587+
cout << setNextColor() << " ";
581588
cout << setw(6) << getDRAMConsumedJoules(sktstate1[i], sktstate2[i]);
582589
}
583590
if (m->LLCReadMissLatencyMetricsAvailable()) {
584-
cout << " ";
591+
cout << setNextColor() << " ";
585592
cout << setw(6) << getLLCReadMissLatency(sktstate1[i], sktstate2[i]);
586593
}
587594
if (m->uncoreFrequencyMetricAvailable()) {
588-
cout << " ";
595+
cout << setNextColor() << " ";
589596
cout << setw(4) << getAverageUncoreFrequencyGhz(sktstate1[i], sktstate2[i]);
590597
}
591-
cout << "\n";
598+
cout << resetColor() << "\n";
592599
}
593600
cout << longDiv;
594601
if (m->getNumSockets() > 1) {
595602
cout << " *";
596603
if (m->memoryTrafficMetricsAvailable())
597-
cout << " " << setw(5) << getBytesReadFromMC(sstate1, sstate2) / double(1e9) <<
604+
cout << setNextColor() << " " << setw(5) << getBytesReadFromMC(sstate1, sstate2) / double(1e9) <<
598605
" " << setw(5) << getBytesWrittenToMC(sstate1, sstate2) / double(1e9);
599606
if (m->localMemoryRequestRatioMetricAvailable())
600-
cout << " " << setw(3) << int(100.* getLocalMemoryRequestRatio(sstate1, sstate2)) << " %";
607+
cout << setNextColor() << " " << setw(3) << int(100.* getLocalMemoryRequestRatio(sstate1, sstate2)) << " %";
601608
if (m->PMMTrafficMetricsAvailable())
602-
cout << " " << setw(5) << getBytesReadFromPMM(sstate1, sstate2) / double(1e9) <<
609+
cout << setNextColor() << " " << setw(5) << getBytesReadFromPMM(sstate1, sstate2) / double(1e9) <<
603610
" " << setw(5) << getBytesWrittenToPMM(sstate1, sstate2) / double(1e9);
604611
if (m->memoryIOTrafficMetricAvailable())
605-
cout << " " << setw(5) << getIORequestBytesFromMC(sstate1, sstate2) / double(1e9);
612+
cout << setNextColor() << " " << setw(5) << getIORequestBytesFromMC(sstate1, sstate2) / double(1e9);
606613
if (m->packageEnergyMetricsAvailable()) {
607-
cout << " ";
614+
cout << setNextColor() << " ";
608615
cout << setw(6) << getConsumedJoules(sstate1, sstate2);
609616
}
610617
if (m->ppEnergyMetricsAvailable()) {
611-
cout << " ";
618+
cout << setNextColor() << " ";
612619
cout << setw(6) << getConsumedJoules(0, sstate1, sstate2);
613-
cout << " ";
620+
cout << setNextColor() << " ";
614621
cout << setw(6) << getConsumedJoules(1, sstate1, sstate2);
615622
}
616623
if (m->dramEnergyMetricsAvailable()) {
617-
cout << " ";
624+
cout << setNextColor() << " ";
618625
cout << setw(6) << getDRAMConsumedJoules(sstate1, sstate2);
619626
}
620627
if (m->LLCReadMissLatencyMetricsAvailable()) {
621-
cout << " ";
628+
cout << setNextColor() << " ";
622629
cout << setw(6) << getLLCReadMissLatency(sstate1, sstate2);
623630
}
624631
if (m->uncoreFrequencyMetricAvailable()) {
625-
cout << " ";
632+
cout << setNextColor() << " ";
626633
cout << setw(4) << getAverageUncoreFrequencyGhz(sstate1, sstate2);
627634
}
628-
cout << "\n";
635+
cout << resetColor() << "\n";
629636
}
630637
}
631638

0 commit comments

Comments
 (0)