I'm trying to use Linpack to judge how my phone is performing...I am getting just under 5 MFLOPS (4.945), but the time it takes is 16.95 seconds. I've seen people on here have it under 2 seconds....what am I doing wrong or need to do to my phone to make it better?
Some time ago, the Linpack for Android app was changed so that it would run for a substantially larger period of time.
I suppose that was done because there was a lot of "scatter" in the results on a given phone due to competing processes and kernel activity - so running the test longer sort of averages those things out. I think those "2 second" reports you saw are for older versions of the app.
Having said that, the Linpack benchmark is effectively meaningless - it measures floating point performance, which is something that your phone only rarely engages in during routine operations.
If you enable JIT, kill off as many unrelated apps as possible, crank up your overlocking, set min CPU speed to = max CPU, and turn on the performance governor ... you'll get a good score ... but the last three tweaks will eat your battery up, and you will only see improvement in interactive behaviors of the phone which correspond EXACTLY to your max CPU frequency.
For day-to-day use, where you will be concerned with battery life AND the long-term life of the phone (OC'ing @ 810 has burned out a number of Erii already), about the best you can do is:
- enable JIT
- use the interactive or smartass governor
- set your max CPU to 710, 729, or 748
- occasionally trim back unused apps (manual kill)
The Linpack benchmark on any given phone is nothing more than a proxy for max CPU frequency - if you run several trials of it, changing the max CPU frequency each time, you will see that the benchmark number is exactly proportional to the max CPU frequency.
bftb0
Related
Is there a negative effect of setting the clock speed lower while screen off? Aside from running really labor intensive tasks?
It just seems like a great way to save battery to me. Right?
The only negative is getting the phone to wake up fast enough when you get an inbound call.
The CFS kernel (which is widely used now) seems to be less able to come out of a deep sleep rapidly than the older "zanfur" OC kernel did.
IIRC, on the older "zanfur" OC kernel, you could set the minimum scaling frequency to 19 Mhz - but with with the CFS kernel, you may need to use a minimum value of 122 Mhz or 245 Mhz.
Set the max scaling speed to 480 or 528 when sleeping. (The max frequency is only rarely used when the phone is sleeping - but you want the phone to pop out of it's low speed state quickly when you power up the screen, or experience an inbound call).
Thanks, Yeah I usually set the max to 480 while sleeping and 480 as min while awake. Battery seems good there.
Originally I was using SetCPU but I have switched to CPUBoost. Most all the kernels in the past few roms I have used are made by conap and he is also the creator of CPUBoost, so I figured they would integrate really well.
Also if I enter anything above the 800 range the phone will have random reboots throughout a few different roms I've tried.
As a note, if I remember correctly, if you have a kernel/ROM that supports the smartass governor, you should be able to use it and not need to have a profile set to underclock while the screen is off, or really need to underclock at all, as I believe it determines for you how much CPU is needed and sets the clock speed accordingly, simply abiding by your max and min speeds you set. Since less CPU is needed when the screen is off, it will automatically adjust accordingly. However, this is just something I've read around the forums, so don't take my word for it
Pokelover980 said:
As a note, if I remember correctly, if you have a kernel/ROM that supports the smartass governor, you should be able to use it and not need to have a profile set to underclock while the screen is off, or really need to underclock at all, as I believe it determines for you how much CPU is needed and sets the clock speed accordingly, simply abiding by your max and min speeds you set. Since less CPU is needed when the screen is off, it will automatically adjust accordingly. However, this is just something I've read around the forums, so don't take my word for it
Click to expand...
Click to collapse
Thanks for the info, I didn't know that. I will assume that's more or less accurate unless Conap or bftb0 chime in.
Pokelover980 said:
As a note, if I remember correctly, if you have a kernel/ROM that supports the smartass governor, you should be able to use it and not need to have a profile set to underclock while the screen is off, or really need to underclock at all, as I believe it determines for you how much CPU is needed and sets the clock speed accordingly, simply abiding by your max and min speeds you set. Since less CPU is needed when the screen is off, it will automatically adjust accordingly. However, this is just something I've read around the forums, so don't take my word for it
Click to expand...
Click to collapse
roirraW "edor" ehT said:
Thanks for the info, I didn't know that. I will assume that's more or less accurate unless Conap or bftb0 chime in.
Click to expand...
Click to collapse
Well, I suppose it could be said that the whole point of any rate governor is to reduce overall power consumption without markedly affecting the user's perception of "responsiveness" or "speed" - however they go about defining those metrics.
OTOH, because there are - what - five different scaling governors available, it is apparent that people have found their own reasons to create new scaling governors; presumably that arose from a dissatisfaction with the behavior of the available scaling governor - or, that different users have differing application workloads, and so they prefer one governor over another.
As Pokelover980 suggests, you could just hand a given rate governor a fixed set of limits (min/max), and be done with it.** For folks that have the time and desire to experiment, I would suggest that: pick a governor and a min/max clock rate and run that way for 2-3 days - no profiles at all. Then pick a different governor with the same min/max clock rate and run that way for another 2-3 days, and see how it goes - maybe not in battery life, because that's hard to measure in a repeatable way, but at least to see if any problems occur coming out of sleep.
Is the "smartass" governor better than all the rest of them? I don't really know. I used it for a little while, but found something I didn't like about it. (But don't take that as conclusive about anything; I doubt that I was doing disciplined testing when that happened). I tend to use either "interactive" or "ondemand", and don't have a strong preference for one over the other.
There probably is some value in keeping things simple. I think that I mentioned before that at one point (back when the CFS kernels were still in a state of flux) I was convinced that using setCPU was exacerbating problems with lock-ups I observed (once every couple of days). Again, though - that was really only my suspicion; I can't really prove it.
bftb0
** I suppose that folks that insist on extreme levels of overclocking ought to use either an overtemp profile or some other means to monitor temperature so that they don't cook their phone.
I Installed SetCPU on the wifes Eris. The smartass governor on CM7 will max out the cpu (to your preset max) if needed. I dont think the smartest thing to do is max out the cpu at 15% batt life. I have 5 different profiles set. One for screen off, charging, < 50%, < 30%, <10%. I use interactive governor vs smartass. Her phone is pretty responsive and I dont hear about issues with it not waking up. Battery life has also increased quite a bit.
Hi guys,
Please clarify on the following points:
1. Are there any major differences among the CPU governers??? I use Smartass because I see a major group of people using it.
2. What are the optimal values for Min and Max CPU speed? And are there any factors based on which we have to decide the values or we can keep anything we wish?
Thanks in advance
Frequencies and their effect on battery here
^Pretty much what you're looking for. Just analyze the chart and test it for yourself too. Also read, read
For governors:
smartass governor - is based on the concept of the interactive governor.
I have always agreed that in theory the way interactive works - by taking over the idle loop - is very attractive. I have never managed to tweak it so it would behave decently in real life. Smartass is a complete rewrite of the code plus more. I think its a success. Performance is on par with the "old" minmax and I think smartass is a bit more responsive. Battery life is hard to quantify precisely but it does spend much more time at the lower frequencies.
Smartass will also cap the max frequency when sleeping to 352Mhz (or if your min frequency is higher than 352 - why?! - it will cap it to your min frequency). Lets take for example the 528/176 kernel, it will sleep at 352/176. No need for sleep profiles any more.
ondemand
Available in most kernels, and the default governor in most kernels. When the CPU load reaches a certain point (see "up threshold" in Advanced Settings), ondemand will rapidly scale the CPU up to meet demand, then gradually scale the CPU down when it isn't needed. - SetCPU website
conservative
Available in some kernels. It is similar to the ondemand governor, but will scale the CPU up more gradually to better fit demand. Conservative provides a less responsive experience than ondemand, but can save battery. - SetCPU website
performance
Available in most kernels. It will keep the CPU running at the "max" set value at all times. This is a bit more efficient than simply setting "max" and "min" to the same value and using ondemand because the system will not waste resources scanning for the CPU load. This governor is recommended for stable benchmarking. - SetCPU website
powersave
Available in some kernels. It will keep the CPU running at the "min" set value at all times. - SetCPU website
userspace
A method for controlling the CPU speed that isn't currently used by SetCPU. For best results, do not use the userspace governor. - SetCPU website
interactive
Advantages:
+ significantly more responsive to ramp cpu up when required (UI interaction)
+ more consistent ramping, existing governors do their cpu load sampling in a workqueue context, the 'interactive' governor does this in a timer context, which gives more consistent cpu load sampling.
+ higher priority for cpu frequency increase, rt_workqueue is used for scaling up, giving the remaining tasks the cpu performance benefit, unlike existing governors which schedule rampup work to occur after your performance starved tasks have completed.
Click to expand...
Click to collapse
I hope that makes it clearer
Kira.Lawliet said:
Frequencies and their effect on battery here
^Pretty much what you're looking for. Just analyze the chart and test it for yourself too. Also read, read
I hope that makes it clearer
Click to expand...
Click to collapse
Wonderful post! Thank you.. even though the post was too technical for a n00b like me, I could grasp info out of it. Sure it helped me.
I was just wondering what people get for battery life with miui 1.7.8 and OTB .13 kernel.
Also, what does overclock actually mean? Does it mean that setting the min and max to 1400Mhz in Voltage Control or remain the min to 100 and max to 1400Mhz?
I'm currently on noop, ondemand and min=100Mhz, max=1400Mhz with nothing UV'ed.
Please help me to get better battery life!!!!!!!!
Your CPU by default can do, unmodified, a certain number of commands per second. These commands are measured in Hertz, thus a 1GHz processor does about 1 billionish commands per second. Overclocking means you allow your processor to do more commands in the same time frame. The downside to this, however, is that more electricity is flowing through the CPU, thus draining the battery more. Having a lower clock speed will save some battery life.
That being said, I have kept my CPU clocked at maximum of 1GHz, with the I/O Scheduler set to deadline and the CPU Governor set to smartass, and I'm getting about a day out of my battery, maybe a little less. I have no idea if that's the "optimal" battery saver setting, but it works for me.
I do have a question, though... What do those two settings mean, anyway?
1n73rn37_j3d1 said:
Your CPU by default can do, unmodified, a certain number of commands per second. These commands are measured in Hertz, thus a 1GHz processor does about 1 billionish commands per second. Overclocking means you allow your processor to do more commands in the same time frame. The downside to this, however, is that more electricity is flowing through the CPU, thus draining the battery more. Having a lower clock speed will save some battery life.
That being said, I have kept my CPU clocked at maximum of 1GHz, with the I/O Scheduler set to deadline and the CPU Governor set to smartass, and I'm getting about a day out of my battery, maybe a little less. I have no idea if that's the "optimal" battery saver setting, but it works for me.
I do have a question, though... What do those two settings mean, anyway?
Click to expand...
Click to collapse
What do you mean by two settings?
Like, what are I/O Schedulers and CPU Governors? That last question was me hijacking the thread.
As I noticed, when I change governor in setcpu to anything except hotplug the system information states that: We have only one core! WHAT? WHY?
I know, it can be a delay between measures, and some of the governors are reducing freq and so on. I know how could that work. Hot plug can disable the second core, and when i measured MFLOPS with linpack (gov: performance) that clearly shows same score with multithread maybe a bit less than single thread. I had only one active core... Something not clear sometimes. I repeated the tests with every governor and I don't have any idea whats wrong with them, sometimes the second is just out of usage, sometimes working well.
Sorry if that not enough clear.
Anybody else can check that?
I just benchmarked with linpack and also get about the same scores for multi and single-Thread performance. That is indeed very strange. I tried changing back to hotplug but still got the same score for multi and single-Thread performance.
edit:
I removed "set on boot" in SetCPU and rebooted, THAN i got dual core performance again with a score of about 55 MFLOPS. I replaced SetCPU with no-frills CPU control, changing back to hotplug allways seem to work there instantly. Hotplug makes the device freeze randomly and anything else makes it half as fast. I'm beginning to dislike my Archos Tab...
Hi Guys,
I am a noob here. I have never used a android phone before, not even a iPhone - so basically no smart phones.My first smart/android phone would be Nexus 4 which would be coming tomorrow.
I have been reading threads to understand andriod architecture and believe have understood to certain extent.
I have a question in clocking the CPUs and Voting.
As I understand, we have 3 states -Max, Min and Sleep for a single CPU core
Max - The frequency (clock speed) which CPU executes or maximum speed which CPU sends signals to its components and get the response back. This would be used when the system is on - which means when user is doing some process.. like texting, video chat, gaming (this case GPU is also involved) etc.
Min - This would be for background process when the user/phone is idle - that when screen is off (eq - gmail sync, facebook sync etc..)
Sleep - Screen off and no background process , the core will be in sleep.
And the battery level will be directly propotional to speed of CPU with respect to the volting.
Now lets say there is a single core processor in a phone which can clock upto 1.5GZ. and the stock kernel comes up with Max - 1.3GZ and MIN -0.5 GHZ.
Question is abt overclocking minimum frequency
1. why not overclock the Mn frequency to 1.3Ghz? because the backgroundprocess would be fast and phone/core will be sleeping after that,
which means process consumes more battery at that particular time but overall baterry should be efficient as there would be more sleeping time.
2. About volting, so far I have not seen min and max volting. So is there only one voltage/power drawn for max and min CPU speeds by CPU?
Please correct me if any of my statements is wrong.
Appreciate your help,
Thanks,
Franklin B.
Overclocking the minimum frequency to 1.3ghz would probably decrease your processor's life if you use your phone too much but I have been actually increasing my phone even 200mhz more than it was in stock ROMs, i've been using my device for more than 2 years and it still works perfectly. Finally, it all depends on how much your phone is good.
I also decreased the cpu min and max frequency when phone sleeps to 256 mhz which decreased a lot battery consumption.
Hope i helped !
Don't forget the THANKS button
1.you can but your battery life will be drastically reduced! There is a good amount of time after the screen is off and before the phone sleeps! So if over clock the min to 1.3Ghz, the processor will be running at 1.3Ghz till it goes to sleep! But if that's what you want you can do that!
2 . I'm not so sure about this topic either but I think the processor operates at a particular voltage and I could be wrong!
Sent from my GT-P3100 using Tapatalk 2
Thank you Guys
Franklin Bernard said:
1. why not overclock the Mn frequency to 1.3Ghz? because the backgroundprocess would be fast and phone/core will be sleeping after that,
which means process consumes more battery at that particular time but overall baterry should be efficient as there would be more sleeping time.
2. About volting, so far I have not seen min and max volting. So is there only one voltage/power drawn for max and min CPU speeds by CPU?
Click to expand...
Click to collapse
Hi, I received your PM. I agree with the guys about the heat issues, longevity, and battery life etc. The answer to your question #2 will help you better understand things.
In all kernels, there are frequency/voltage scaling tables. For every frequency step (clock speed) in the table, it corresponds to a specific voltage. It gets a bit more complicated than this of course, but that is the basic way things are setup in the kernel. The higher the frequency, the higher the voltage is required to be to keep the CPU (or GPU, bus, RAM etc.) stable at a given clock speed. The more voltage, the more current, and the more heat is generated. The longer you stay at higher clock speeds/voltages, the better the cooling system you need to have. Supply regulators are defined to feed the core and rail voltages so that the processor can live in a happy environment no matter what it is being asked to.
As far as power consumption, it's all about getting a unit of work done in a timely/efficient fashion using the least amount of power consumption. If the phone is sleeping, the word "timely" takes on a different meaning so then it is mostly concerned with power consumption and getting the background tasks completed effectively without having the phone experience the sleep of death (SOD). What you are talking about is the theory of "race to sleep" so that the work can be done quickly and the phone can go back to sleep where it uses the least amount of power (clocks actually turn off during deep sleep and cores are turned off). However, there is a happy medium to this theory and heat and battery consumption are the main enemies. Heat can also rob efficiency, more current is required when a circuit heats up. The more a phone wakes up to do syncs for email, apps, social networking, missed calls etc., that work can stack up throughout the day. The question comes down to how can the device get this work done using the least power and keep the device cool. On the N4, the lowest frequencies can use ~700-800mV per core while the highest frequencies can use ~1100mV. There is a drastic difference in the amount of heat generation between this range.
I think this should give you the general idea and maybe more that you wanted to know! Here are some links to check out if you are interested. Google and you will find many many more articles and research papers.
http://en.wikipedia.org/wiki/Voltage_and_frequency_scaling
http://atrak.usc.edu/~massoud/Talks/Pedram-dvfs-Taiwan05.pdf
Thanks a ton !!!