|
virtual | ~lib_compute_loops () |
|
| lib_compute_loops (software_id id) |
|
template<typename Type > |
void | compute_array_init (long arraysize) |
|
template<typename T > |
void | compute_loop (long long from1, long long to1, T numlines) |
| compute_loop - compute and schedule a for loop's costs as moving Nm bytes and doing Nf flops, where Nm = loop_trips*numlines*mem_line_ratio*mem_op_size Nf = loop_trips*numlines*flop_line_ratio where mem_line_ratio and flop_line_ratio may appear as global simulation parameters or will default (0.8, 0.8) and mem_op_size is currently fixed internally at 16. More...
|
|
template<typename T > |
void | compute_loop2 (long long from1, long long to1, long long from2, long long to2, T numlines) |
| compute_loop2 - compute for one loop nested in an outer one More...
|
|
template<typename T > |
void | compute_loop3 (long long from1, long long to1, long long from2, long long to2, long long from3, long long to3, T numlines) |
| compute_loop3 - compute for one loop nested in loop nested in an outer one More...
|
|
template<typename T > |
void | compute_loop4 (long long from1, long long to1, long long from2, long long to2, long long from3, long long to3, long long from4, long long to4, T numlines) |
| compute_loop4 - compute for quadruple nested loop More...
|
|
template<typename T > |
void | compute_loop5 (long long from1, long long to1, long long from2, long long to2, long long from3, long long to3, long long from4, long long to4, long long from5, long long to5, T numlines) |
| compute_loop5 - compute for 5-nested loop More...
|
|
template<typename T > |
void | compute_loop6 (long long from1, long long to1, long long from2, long long to2, long long from3, long long to3, long long from4, long long to4, long long from5, long long to5, long long from6, long long to6, T numlines) |
| compute_loop6 - compute for 6-nested loop More...
|
|
template<typename T > |
void | compute_loop7 (long long from1, long long to1, long long from2, long long to2, long long from3, long long to3, long long from4, long long to4, long long from5, long long to5, long long from6, long long to6, long long from7, long long to7, T numlines) |
| compute_loop6 - compute for 6-nested loop More...
|
|
void | compute_fft () |
|
virtual | ~lib_compute_memmove () |
|
| lib_compute_memmove (software_id id) |
|
| lib_compute_memmove (const char *prefix, software_id id) |
|
virtual void | unregister_all_libs () |
|
void | consume_params (sprockit::sim_parameters *params) |
|
void | incoming_event (event *ev) |
|
void | read (long bytes) |
|
void | write (long bytes) |
|
void | copy (long bytes) |
|
| lib_compute_inst (software_id id) |
|
| lib_compute_inst (const std::string &libname, software_id id) |
|
virtual | ~lib_compute_inst () |
|
void | compute_inst (compute_event *msg) |
|
void | compute_detailed (uint64_t flops, uint64_t nintops, uint64_t bytes) |
|
void | compute_loop (uint64_t nloops, uint32_t flops_per_loop, uint32_t intops_per_loop, uint32_t bytes_per_loop) |
|
void | incoming_event (event *ev) |
|
Definition at line 21 of file lib_compute_loops.h.
template<typename T >
void sstmac::sw::lib_compute_loops::compute_loop |
( |
long long |
from1, |
|
|
long long |
to1, |
|
|
T |
numlines |
|
) |
| |
|
inline |
compute_loop - compute and schedule a for loop's costs as moving Nm bytes and doing Nf flops, where Nm = loop_trips*numlines*mem_line_ratio*mem_op_size Nf = loop_trips*numlines*flop_line_ratio where mem_line_ratio and flop_line_ratio may appear as global simulation parameters or will default (0.8, 0.8) and mem_op_size is currently fixed internally at 16.
loop_trips = Product-N(toI-fromI+1 over all N range pairs I in the argument list) Given pipeline, vectorization, and other execution features, numlines is essentially a fudge factor that must be determined by experimental comparison; reasonable initial guesses for the numlines are (a) the number of executable statements in the loop (b) the number of values read from or written to main data memory at the innermost loop level. For all versions of this function, loop_trips is product of the (to-from+1) differences in the argument list.
- Parameters
-
from | loop counter range begin |
to | loop counter range end (assuming step size 1) |
numlines | number of lines equivalent of code (>0) tuning parameter |
Definition at line 65 of file lib_compute_loops.h.
References compute_loop_work(), and do_loops_.