Content-type: text/html
Manpage of simd
simd
Section: Misc. Reference Manual Pages (l)
Updated: July 6, 2018
Index
Return to Main Contents
NAME
simd
- Recoding Infrastructure for SystemC (RISC) SIMD Advisor
SYNOPSIS
simd
[
options
]
design
[
options
]
DESCRIPTION
simd
is an analysis tool for exploiting data-level parallelism
based on the RISC compiler for the SystemC language.
The purpose of
simd
is to parse and analyze a SystemC source program,
and then provide advise to the user
regarding possible optimizations of the model to exploit
SIMD parallelism for faster out-of-order parallel simulation.
Using the command syntax shown in the synopsis above, the specified
design
is compiled and statically analyzed. By default,
simd
reads the SystemC source file, performs preprocessing and
builds an internal representation (abstract syntax tree)
of the SystemC constructs in the model. Next,
thread control flow analysis
is performed and encountered loops are analyzed
for potential single-instruction-multiple-data (SIMD) execution
which exploits data-level parallelism and can lead to significantly
improved simulation performance
in Out-of-Order Parallel Discrete Event Simulation (OoO PDES).
Specifically,
simd
presents to the user a list of loops that might be suitable
for SIMD vectorization. The user is expected to review the
options and, based on his application knowledge, select those
loops that do not contain SIMD conflicts, such as parallel accesses
to overlapping memory locations. For confirmed loops,
the user then inserts into the source code
#pragma omp simd
annotations immediately before the selected loops.
The annotated model can then be compiled with
risc
and option
-risc:icpc
using the Intel C++ compiler
icpc
to generate an executable for execution on a SIMD-capable
target architecture with improved performance.
The output of
simd
lists the loops found in the control flow of the SystemC threads
of the model. For each loop, its line number in the source code
is listed together with its analyzed SIMD qualification.
If the loop is not qualified, a reason for its disqualification
may or may not be shown in form of an error code.
A qualification error code of 1 indicates the use of an invalid
array index in the loop. The code 2 indicates that a non-loop local
variable is written. Finally, code 3 indicates that an unsupported
construct (e.g. goto statement) is found in the loop.
On successful completion, the
simd
advisor returns the value 0.
In case of errors during processing, an error code with a
brief diagnostic message is written to
the standard error stream and the compilation is aborted
with an exit value greater than zero.
ARGUMENTS
- design
-
specifies the file name of the input SystemC design model;
by default, the base name of
design
is used as base name for the intermediate and output files;
OPTIONS
- -h | --help
-
print the
simd
advisor version and a brief usage information message
to standard output and quit;
- -v | --verbose
-
increment the verbosity level so that the tasks performed are
logged to standard error (default: be silent);
at level 1, high-level messages about the tasks performed are displayed;
at level 2, additional details such as input and output file names are listed;
at level 3, very detailed information about each executed task is printed;
- -vv
-
increment the verbosity level by two counts (same as
-v -v
);
- -vvv
-
increment the verbosity level by three counts (same as
-v -v -v
);
- -w | --warnings
-
increment the warning level so that warning messages
are enabled (default: warnings are disabled);
four levels are supported ranging
from only important warnings (level 1)
to pedantic warnings (level 4);
for most cases, warning level 2 is recommended (
-w -w
);
- -ww
-
increment the warning level by two counts (same as
-w -w
);
- -www
-
increment the warning level by three counts (same as
-w -w -w
);
- -Idir
-
add the specified
dir
to the include path (extend the list of directories to be searched
for including source files);
include directories are searched in the order of their specification;
the standard include path ($SYSTEMC_LW_HOME/include) is
automatically appended to this list;
by default, only the standard include directories are searched;
- -o output file
-
specify the name of the text output file explicitly (default: none);
- -<rose:option>
-
pass this option through to the underlying ROSE compiler (default: none);
- -<GNU option>
-
pass this option through to the underlying GNU compiler (default: none);
ENVIRONMENT
- SYSTEMC_LW_HOME
-
is used at compile-time to find the RISC light-weight SystemC header files
which are expected in directory $SYSTEMC_LW_HOME/include (default: none);
VERSION
The SIMD Advisor is release version 0.5.0.
AUTHORS
Zhongqi Cheng <zhongqc@uci.edu>,
Rainer Doemer <doemer@uci.edu>,
Guantao Liu <guantaol@uci.edu>, and
Tim Schmidt <schmidtt@uci.edu>.
COPYRIGHT
(c) 2018 CECS, University of California, Irvine
LICENSE
Open source BSD license terms apply.
BUGS, LIMITATIONS
This is an academic proof-of-concept prototype implementation,
not commercial-quality software.
See the file BUGS in the software packages for known limitations.
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- ARGUMENTS
-
- OPTIONS
-
- ENVIRONMENT
-
- VERSION
-
- AUTHORS
-
- COPYRIGHT
-
- LICENSE
-
- BUGS, LIMITATIONS
-
This document was created by
man2html,
using the manual pages.
Time: 17:32:34 GMT, September 30, 2018