Messages in this thread | | | Subject | Re: [RFC 1/1] Weighted approach to gather and use history in TEO governor | From | Pratik Sampat <> | Date | Thu, 14 May 2020 21:05:37 +0530 |
| |
On 13/05/20 8:19 pm, Rafael J. Wysocki wrote: > On Wed, May 13, 2020 at 7:31 AM Pratik Sampat <psampat@linux.ibm.com> wrote: >> Thanks for your comment. >> >> >> On 12/05/20 11:07 pm, Peter Zijlstra wrote: >>> Just a quick note.. >>> >>> On Mon, May 11, 2020 at 07:40:55PM +0530, Pratik Rajesh Sampat wrote: >>> >>>> + /* >>>> + * Rearrange the weight distribution of the state, increase the weight >>>> + * by the LEARNING RATE % for the idle state that was supposed to be >>>> + * chosen and reduce by the same amount for rest of the states >>>> + * >>>> + * If the weights are greater than (100 - LEARNING_RATE) % or lesser >>>> + * than LEARNING_RATE %, do not increase or decrease the confidence >>>> + * respectively >>>> + */ >>>> + for (i = 0; i < drv->state_count; i++) { >>>> + unsigned int delta; >>>> + >>>> + if (idx == -1) >>>> + break; >>>> + if (i == idx) { >>>> + delta = (LEARNING_RATE * cpu_data->state_mat[last_idx][i]) / 100; >>> 100 is a crap number to divide by as a computer. We bio-puddings happend >>> to have 10 digits, so 100 makes sense to us, but it does not to our >>> binary friends. >>> >>> >> Absolutely! I just wrote the code exactly the way I did the Math on paper, >> definitely need to figure out an optimal way of doing things. > There is no particular reason to use percent in computations at all. > You may as well use 1/1024 parts instead (and then use shifts instead > of divisions).
Yes you're right. Looking at it now the whole percent system and divisions does seem quite unnecessary and we can achieve it rather with bitwise operations.
Thanks!
| |