> On Feb. 5, 2013, 4:21 p.m., Nathan Binkert wrote: > > This really confuses me. A the idea of the Formula class was that it was a > > Vector, and we'd simply pretend that Formulas of length 1 were scalars. It > > seems wrong to me to have two classes here and we need to fix the main > > class itself. > > Nilay Vaish wrote: > I second Nate's opinion here. A formula can involve both scalars and > vectors. What would you do then? > > Sascha Bischoff wrote: > The basic functionality of the interface to the classes is there same and > therefore does not represent an issue. The issue lies with the total > calculation for the different types of statistic. For example, to calculate > the total of a vector, we sum each of the elements. The same principle > applies for the total for a 2D vector, where we sum each of the "rows" and > then also calculate an overall total. However, in the case of a formula it > becomes more complex. Specifically, if we were to just sum the value of each > element of a vector formula the result would potentially be incorrect. For > example, if we are calculating a rate using a formula, then we do not want to > sum all of the elements as this will not give the overall rate. Instead we > want to calculate the total of the numerators and the total of the > denominators before dividing them to get the overall total for the formula. > This is the reason that I split the display class into two classes. > > The total for a vector is calculated "externally", i.e. we take the list > representing the vector, and sum all of the values to get the total. This is > done as part of the display class. On the other hand, the total for a formula > is calculated "internally", i.e. it is calculated by the formula class itself > (using abstract syntax trees) by calculating the total for the numerator and > denominator separately. Aside from the calculation of the total these classes > are identical, but are incompatible. > > An alternative solution to having separate display classes would be to > add an additional layer of indirection which then provides the same interface > for getting the total of the vectors and formulas, but hides the mechanics > internally. Do you have any better suggestions? > > Nilay, regarding your question: the formulas can indeed involve both > scalars and vectors. However the calculation of the formula is handled using > python's eval function. Any formula calculation involving both vectors and > scalars will invariably result in a vector result. However, based on the > length of the vector, it is either processed directly as a scalar (hence we > do not have the issues with the total calculation), or as a vector formula. > Does this clarify things? > > Nilay Vaish wrote: > Can you tell me how are you expressing the so called vector formula in > your example? > The formula, in my opinion, would look like rate = sum(v) / sum(t) where > v and t can be vectors or scalars (does not matter at all). If you are > writing rate = v / t > where v and t can be vectors, I would say that this expression is > ambiguous. > How do you know I do not intend rate to be a vector, where rate_i = v_i / > t_i?
In fact, in my opinion rate = v/t should mean rate_i = v_i / t_i. - Nilay ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/1678/#review3992 ----------------------------------------------------------- On Jan. 29, 2013, 2:27 a.m., Andreas Hansson wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/1678/ > ----------------------------------------------------------- > > (Updated Jan. 29, 2013, 2:27 a.m.) > > > Review request for Default. > > > Description > ------- > > Changeset 9513:6e1f6c9cd4ac > --------------------------- > stats: Add a separate display class for vector formulas > > This patch adds a separate display class for vector formulas, which is > tailored to more closely resemble that of the original C++ based > stats. Unlike the vector class, the total for a formula needs to be > evaluated by calculating the total of the numerator and the total of > the denominator, and then dividing them. Therefore, the vector formula > display class calls the total function of the formula, rather than > evaluating the total locally. > > > Diffs > ----- > > src/python/m5/stats/display.py PRE-CREATION > > Diff: http://reviews.gem5.org/r/1678/diff/ > > > Testing > ------- > > > Thanks, > > Andreas Hansson > > _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
