Browse Source

document starpu_perfmodel

Samuel Thibault 13 years ago
parent
commit
fc564bbbc3
1 changed files with 20 additions and 1 deletions
  1. 20 1
      doc/chapters/basic-api.texi

+ 20 - 1
doc/chapters/basic-api.texi

@@ -1444,7 +1444,26 @@ OpenCL types range within STARPU_OPENCL_DEFAULT (GPU number 0), STARPU_OPENCL_DE
 @deftp {Data Type} {struct starpu_perfmodel}
 contains all information about a performance model. At least the
 @code{type} and @code{symbol} fields have to be filled when defining a
-performance model for a codelet. Other fields have to be zero.
+performance model for a codelet. If not provided, other fields have to be zero.
+
+@table @asis
+@item @code{type} is the type of performance model. @code{STARPU_HISTORY_BASED},
+@@code{STARPU_REGRESSION_BASED}, @code{STARPU_NL_REGRESSION_BASED}: No
+@other fields needs to be provided, this is purely history-based. @code{STARPU_PER_ARCH}:
+@code{per_arch} has to be filled with functions which return the cost in
+micro-seconds. @code{STARPU_COMMON}: @code{cost_function} has to be filled with
+a function that returns the cost in micro-seconds on a CPU, timing on other
+archs will be determined by multiplying by an arch-specific factor.
+@item @code{symbol} is the symbol name for the performance model, which will be
+used as file name to store the model.
+@item @code{cost_function}: Used by @code{STARPU_COMMON}: takes a task and
+implementation number, and must return a task duration estimation in micro-seconds.
+@item @code{per_arch}: Used by @code{STARPU_PER_ARCH}: array of @code{struct
+starpu_per_arch_perfmodel} structures, whose @code{cost_function} fields must
+point to functions which take a task, the target arch and implementation number
+(as mere conveniency, since the array is already indexed by these), and must
+return a task duration estimation in micro-seconds.
+@end table
 @end deftp
 
 @deftypefun int starpu_load_history_debug ({const char} *@var{symbol}, {struct starpu_perfmodel} *@var{model})