 |
» |
|
|
|
 |
 |
dcpidiff(1)
NAME
dcpidiff - compare profiles for a procedure on Alpha 21064/EV4 and
21164/EV5 processors
SYNOPSIS
dcpidiff [global options] procedure-name -set [set
options] image-name -set [set options] image-name
DESCRIPTION
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 dcpicalc(1).
FLAGS
Global Options
- -help
- Print out usage information.
- -version
- Print out the version number.
- -verbose
- Verbose. Print out additional information.
- -source_line
- 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 CPI only.
- -set
- Denote the start of a set of sample files. All samples
within a set are combined, and samples across different sets
are compared.
Set Options
- -conf_low
- Compare low, medium, and high-confidence data.
- -conf_high
- Compare only high-confidence data. (Default is to compare medium and
high-confidence data).
- -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
files.
- -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 specified.
- -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...> --
- Exclude
any 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.
- -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 stat1::stat2).
- -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
aggregate statistics.
- -allevents
- 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 be useful.
EXAMPLE USAGE
- dcpidiff the_proc -set <image-name> -epoch latest -set <image-name> -epoch
latest-1
- 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> -epoch
latest-1
- 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).
LIMITATIONS
Dcpidiff works only on Alpha 21064/EV4 and 21164/EV5 processors.
SEE ALSO
dcpi(1), dcpi2bb(1), dcpi2pix(1), dcpi2ps(1), dcpicalc(1), dcpicat(1), dcpicc(1), dcpicoverage(1), dcpictl(1), dcpid(1), dcpidis(1), dcpiepoch(1), dcpiflow(1), dcpiflush(1), dcpikdiff(1), dcpilabel(1), dcpildlatency(1), dcpilist(1), dcpiprof(1), dcpiprofileme(1), dcpiquit(1), dcpiscan(1), dcpisource(1), dcpistats(1), dcpisumxct(1), dcpitar(1), dcpitopcounts(1), dcpitopstalls(1), dcpiuninstall(1), dcpiupcalls(1), dcpivarg(1), dcpivcat(1), dcpiversion(1), dcpivlst(1), dcpivprofiler(1), dcpiwhatcg(1), dcpix(1), dcpiformat(4), dcpiexclusions(4)
For more information, see the DCPI project home page http://h30097.www3.hp.com/dcpi.
COPYRIGHT
Copyright 1996-2004, Hewlett-Packard Company.
All rights reserved.
|
|