Changes between Version 5 and Version 6 of Orio/TuneSpecs
- Timestamp:
- 06/13/08 07:05:00 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Orio/TuneSpecs
v5 v6 41 41 == Structure of Tuning Specifications == 42 42 43 The tuning specifications of Orio simply consist of a sequence of ''definition statements''. Every definition statement contains a series of ''auxiliary statements'', which can be categorized into f ourdifferent types of statements as follows.43 The tuning specifications of Orio simply consist of a sequence of ''definition statements''. Every definition statement contains a series of ''auxiliary statements'', which can be categorized into five different types of statements as follows. 44 44 45 45 1. '''''Let statement''''' has the main purpose of storing a temporary data into a variable that may be reused multiple times by other successive statements. To be noted that the location of a let statement need not be inside the body of a definition statement, as seen in the above example. 46 46 1. '''''Argument statement''''' is used to collect specific information from the Orio user about the pertinent tuning components. One example shown above is the `command` and `options` arguments (in the `build` definition), of which role is to tell Orio about how to compile and execute the optimized code. 47 47 1. '''''Parameter statement''''' is used to assign a range of values to the tuning parameters, which can be either performance parameters or input problem parameters. The symbol `[]` must be placed after the parameter name to indicate that the parameter has multiple values to be considered. 48 1. '''''Constraint statement''''' aims primarily to prune off uninteresting portion of the space of parameter values so that the search is concentrated on the search space highly possible to yield high quality solutions. For instance, the `RegisterCapacity` and `L1Tiling` constraints use the underlying machine characteristics to model49 1. '''''Declaration statement''''' 48 1. '''''Constraint statement''''' aims primarily to prune off uninteresting portion of the space of parameter values so that the search is concentrated on the search space highly possible to yield high quality solutions. Some examples are the `RegisterCapacity` and `L1Tiling` constraints. Moreover, constraint statement also allows users to define the shape of the input arrays such as the `SquareShape` constraint, which can be found in the earlier example. 49 1. '''''Declaration statement''''' informs the performance testing driver about all input scalars and arrays required to be declared and initialized. It is to be noted that the ''static'' and ''dynamic'' keywords provide guidance to the driver on how it should allocate memory space for the declared arrays. 50 50 51 51