dcpidiff - compare profiles for a procedure on Alpha 21064/EV4 and
dcpidiff [global options] procedure-name -set [set
options] image-name -set [set options] image-name
Dcpidiff compares two sets of profiles for a procedure and prints
out various statistics. It can compare the CPI, frequency, and static and
dynamic stall cycles. If the images for the two sets of profiles are the
same, it compares them by basic block. If the images differ, it compares
them by source line number.
For each basic block (or source line) it prints the normalized range
(i.e. the difference between the values over the sum of the values,
expressed as a percentage), the two values and the ratio of the values. All
entries are sorted by the normalized range so that the focus is on the
entries that differ the most. The available options for each of the two sets
is similar to the options for
- Print out usage information.
- Print out the version number.
- Verbose. Print out additional information.
- Print out statistics by source line number. If the
image-name of the two sets are the same, then the
default is to print out the statistics by basic block. If
the image-name is different, then the statistics can
only be printed by source line number.
- -compare type
- Specify the kind of information compared. The type
is a comma-separated list of the following keywords: cpi,
frequency, stalls, static_stalls,
dynamic_stalls or all. The default is to compare
- Denote the start of a set of sample files. All samples
within a set are combined, and samples across different sets
- Compare low, medium, and high-confidence data.
- Compare only high-confidence data. (Default is to compare medium and
- -cross_procedure [optimistic | pessimistic | selective]
- Choose what assumption to make when encountering a procedure call
boundary while looking for reasons to explain dynamic stalls. A
procedure call boundary is either a call made by the procedure being
analyzed or the beginning or end of that procedure. With
pessimistic, we assume that whatever happens outside the
analyzed procedure can cause a dynamic stall inside it. With
optimistic, we assume that it cannot. With selective, the
assumption is based on standard procedure call convention. (The
default is optimistic.)
PROFILE SELECTION FLAGS
By default, this command automatically finds all of the relevant profile
files. The following options can be used to guide the search for the profile
- -db <directory name>
- Search for profile files in the specified profile database directory.
The directory name should be the same name as the one specified when
dcpid was started. If this option is not specified, the directory name
is obtained from the DCPIDB environment variable. If neither this
option, nor the DCPIDB environment variable are set, the name of
the directory used by the last invocation of dcpid on this machine
is used. If none of these methods succeed in finding the appropriate
directory, and no explicit set of profile files is provided via the
-profiles option, then the command fails.
- -epoch latest
- Search for profile files in the latest epoch. This is the default.
- -epoch latest-k
- Search for profile files in the "k+1"th oldest epoch. For example,
search in the third oldest epoch if -epoch latest-2 is
- -epoch <name>
- Search for profile files in the named epoch. The epoch name should be
the name of a subdirectory corresponding to a single epoch within the
profile database directory. Epoch subdirectory names usually take the
form YYYYMMDDHHMM (year-month-day-hours-minutes). For example,
an epoch started on June 11, 2002 at 22:33 would be named
200206112233. If an epoch is given a symbolic name by creating a
symbol link to the actual epoch directory, then the symbolic name can
also be used as an argument to the -epoch option.
- -epoch all
- Search for profile files in all epochs.
- -ihost <hostnames...> --
- Include just those profile files associated with the
specified host names. The list of host names must be
terminated either via -- or by the end of the option list.
The command prints an error message and fails if both the
-ihost and -ehost options are specified.
- -ehost <hostnames...> --
The list of
-- or by the
end of the
- -label <label>
- Search for profile files with the specified label(s) (see dcpilabel(1)). This option can be repeated multiple times. If no labels are specified on the command line, profile file labels are ignored entirely. If any labels are specified on the command line, only profile files that have one of the specified labels are used.
- -profiles <file names...> --
- Use just the profile files named by the specified file names. The list of profile file names can be terminated either via --, or by the end of the option list. The command prints an error message and fails if the -profiles option is used in conjunction with any of the earlier automatic profile finding options. (Use the automatic profile lookup mechanism, or explicitly name the profile file with the -profile option; but don't do both.)
STATISTIC SELECTION FLAGS
Different kinds of performance counter statistics are available on various
models of Alpha CPUs. Alpha 21064/EV4, 21164/EV5 and 21264/EV6 CPUs have
traditional aggregate event counters. Alpha 21264A/EV67 and later processors
have a mix of some traditional aggregate event counters and newer ProfileMe
counters which allow accurate and precise instruction execution profiles on
out-of-order processors. (See
dcpiprofileme(1) for more information on ProfileMe statistics.)
The default statistic selection on an aggregate counter machine is to
select all the aggregate events. The default on a ProfileMe machine is to
select ProfileMe retire delay, retire count, !retired (i.e. aborted) count,
!notrap (i.e. trap) count, and aggregate cycles.
The options below can be used to select various statistics when available.
Use -event for aggregate statistics and -pm for ProfileMe
statistics. Note: there can be multiple, mixed -event and -pm
specifications. You can also specify the ratio of two statistics (written as
- -pm pm_stat(+pm_stat)
- Select the specified ProfileMe statistic plus any added in by optional
+pm_stat specifications. For example, select various trap statistics by
specifying the option -pm trap+replays+ldstorder+mispredict.
- -pm default(+pm_stat)
- Select the default set of ProfileMe statistics plus those added in by
+pm_stat specifications. At least one additional statistic is mandatory;
-pm default without modifications is extraneous and not allowed. The
additional ProfileMe statistics will take the place of the aggregate cycles
statistic which is selected by default.
- -pm all(-pm_stat)
- Select all ProfileMe statistics less those subtracted out. You can
repeat the optional -pm_stat specification to deselect multiple
ProfileMe statistics. Note: there are a lot of ProfileMe statistics.
Unless you deselect a bunch of them, this will select more statistics
than are appropriate for human consumption.
- -event ag_stat(+ag_stat)
- Select the specified aggregate statistic plus any added in by
optional +ag_stat specifications. For example, select cycles,
icache misses, and data cache misses when the option -event
cycles+imiss+dmiss is specified.
- -event all(-ag_stat)
- Select all aggregate statistics less those subtracted out. You can
repeat the optional -ag_stat specification to deselect multiple
- Select profile events corresponding to all event types, both
aggregate and ProfileMe. However, if there are ProfileMe events, this
will produce a large number of statistics, which in most cases will not
- dcpidiff the_proc -set <image-name> -epoch latest -set <image-name>
- Use dcpidiff to compare the CPI of procedure the_proc in two
different sets of sample files.
- dcpidiff -compare frequency the_proc -set <image-name> -epoch
latest -set -xct the_program.xct -tab the_program.tab <image-name>
- Use dcpidiff to compare the basic block frequencies in procedure
the_proc as estimated by the dcpi tools, against the frequencies
computed by the dcpix(1).
Dcpidiff works only on Alpha 21064/EV4 and 21164/EV5 processors.
For more information, see the DCPI project home page
Hewlett-Packard Company. All rights reserved.