FORUMS

Xposed Modules to Modify Email – XDA Xposed Tuesday

Even though we have Dropbox and other ways to share files, people still want … more

Google Teaches You to Use Wear Gestures

Now that the Watch Urbane is out with the latest firmware, we have new information regarding the … more

Samsung Galaxy Alpha (SM-G850) Gets Android 5.0

An Android 5.0 Lollipop update is finally available to download for the Samsung Galaxy … more

Do You Use 4:3 or 16:9 in the Camera App?

Every person has their own method of taking the best photos on their devices, but which aspect … more
Post Reply Subscribe to Thread Email Thread

[COMMIT] [AOSP] [LOLLIPOP] JustArchi's ArchiDroid Optimizations - Unleash the power!

19th April 2015, 02:25 PM |#1201  
JustArchi's Avatar
OP Recognized Contributor / Recognized Developer
Flag Warsaw
Thanks Meter: 32,783
 
Donate to Me
More
Quote:
Originally Posted by Khaon

You are right to ask such a question. In my concern, I am bulding on an exynos 5250 and snapdragon 600.


Building webchromium with O3 for my exynos leads to instability. Ofc I could try to identify the modules culprits but I AM TOO LAZY.


However, bulding O3 on my snapardon is not unstable.

You have then your answer. Even if exynos is a15 and krait a derivative of it, you have to handle differntly flags.

Sorry to say that, but you should not talking about knowing what to do or not when you enable double and quad word for neon processor in the same line. I am not here to discusswhatflags/set up is correct just sharing what I use.

I'm building for Exynos 4, which is much worse than your exynos 5+ .

Show me where I enable double and quad word for neon processor, now I'm sure that you have no idea what you're doing, as you didn't even check my commit carefully .

I'm not here to discuss about your flags either, but I see that you basicly invented so much hacks for compilation process that it's pointless to keep using O3.
 
 
19th April 2015, 04:21 PM |#1202  
Senior Member
Flag Louvain-la-Neuve, Belgium
Thanks Meter: 673
 
Donate to Me
More
Quote:
Originally Posted by JustArchi

I'm building for Exynos 4, which is much worse than your exynos 5+ .

Show me where I enable double and quad word for neon processor, now I'm sure that you have no idea what you're doing, as you didn't even check my commit carefully .

I'm not here to discuss about your flags either, but I see that you basicly invented so much hacks for compilation process that it's pointless to keep using O3.


https://github.com/ArchiDroid/androi...becb552b5e0R80

You had on a single CFLAGS both double and quad words enabled for quite a lon time.(has been removed and removed later from unknown clang)

You I do read your OP, follow your commits and no need to mention the date
19th April 2015, 04:25 PM |#1203  
JustArchi's Avatar
OP Recognized Contributor / Recognized Developer
Flag Warsaw
Thanks Meter: 32,783
 
Donate to Me
More
Quote:
Originally Posted by Khaon

https://github.com/ArchiDroid/androi...becb552b5e0R80

You had on a single CFLAGS both double and quad words enabled for quite a lon time.(has been removed and removed later from unknown clang)

You I do read your OP, follow your commits and no need to mention the date

Mate, of course I do have them in unknown CLANG flags, because they're not recognized by CLANG compiler, and I enable either double or quad on per-device basis . If you don't know what is the purpose of unknown clang flags, please make a research, or ask before making invalid statements like your last one.
19th April 2015, 04:52 PM |#1204  
Senior Member
Flag Louvain-la-Neuve, Belgium
Thanks Meter: 673
 
Donate to Me
More
Quote:
Originally Posted by JustArchi

Mate, of course I do have them in unknown CLANG flags, because they're not recognized by CLANG compiler, and I enable either double or quad on per-device basis . If you don't know what is the purpose of unknown clang flags, please make a research, or ask before making invalid statements like your last one.


Ok but you did before enabling those flags for the whole build, that is why I point you out it was still inUNKNOWN ( but did'nt know you move them this to a config file

1/ By default vectorization with quad words so you don't need to activate it i think
2/ Seems your misunderstood what s the difference with double and quad, it is not related with the number of core
http://ctuning.org/dissemination/grow10-03.pdf
19th April 2015, 05:05 PM |#1205  
JustArchi's Avatar
OP Recognized Contributor / Recognized Developer
Flag Warsaw
Thanks Meter: 32,783
 
Donate to Me
More
Quote:
Originally Posted by Khaon

Ok but you did before enabling those flags for the whole build, that is why I point you out it was still inUNKNOWN ( but did'nt know you move them this to a config file

1/ By default vectorization with quad words so you don't need to activate it i think
2/ Seems your misunderstood what s the difference with double and quad, it is not related with the number of core
http://ctuning.org/dissemination/grow10-03.pdf

No, I never enabled quad and double vectorizations at the same time, it's the most stupid thing I could've done .

Yes, you're right - mvectorize-with-neon-quad is the default choice. Adding that is intended, as it may not be default sometime in future.

Quote:

Also, we have found that specifying -mvectorize-with-neon-quad option
gives slightly better overall results (about 1%) than default double-integer vectorization

Now you're comparing doubleword-registers, and quadword-registers (now default). You see, quadword-vectorization is NOT always faster than doubleword-vectorization. It depends mostly on how big L1/L2/L3 CPU caches are, and how many registers we need to store in there. For low-budget phones, especially with 2 cores or even less, doubleword-vectorization was faster by around 2-3% for me, rather than quadword-vectorization. This test was done on Xperia M with only 2 cores available. On Galaxy S3 with exynos4412 and 4 cores, quadword vectorization gives around 1-2% better results than doubleword.

Mastering optimizations is not done per-android-basis, but by per-device one. Doing something as easy as specifying how big CPU caches are for target device improves compiler decisions, especially on big optimization levels such as O3. If you enable O3 and you don't help the compiler, most likely your code will perform worse than it'd perform on O2 or Os. That's why I enable O3 in my commit, but I also help the compiler to describe my target device as good as I possibly can.
Last edited by JustArchi; 19th April 2015 at 05:10 PM.
The Following 5 Users Say Thank You to JustArchi For This Useful Post: [ View ]
19th April 2015, 08:43 PM |#1206  
JustArchi's Avatar
OP Recognized Contributor / Recognized Developer
Flag Warsaw
Thanks Meter: 32,783
 
Donate to Me
More
@sparksco

Were you able to compile any successful build with androideabi 4.9 for arm (32-bit)? Of course with Android 5.1.
Last edited by JustArchi; 19th April 2015 at 08:46 PM.
The Following User Says Thank You to JustArchi For This Useful Post: [ View ]
20th April 2015, 12:53 AM |#1207  
sparksco's Avatar
Recognized Developer
Thanks Meter: 8,370
 
Donate to Me
More
Quote:
Originally Posted by JustArchi

@sparksco

Were you able to compile any successful build with androideabi 4.9 for arm (32-bit)? Of course with Android 5.1.

Yes but for some reason setup wizard force closes. Maybe it's the ROM I'm on or device because other people are using it fine without issues.
20th April 2015, 12:53 AM |#1208  
JustArchi's Avatar
OP Recognized Contributor / Recognized Developer
Flag Warsaw
Thanks Meter: 32,783
 
Donate to Me
More
Quote:
Originally Posted by sparksco

Yes but for some reason setup wizard force closes. Maybe it's the ROM I'm on or device because other people are using it fine without issues.

Would you be so kind to share some SaberMod androideabi arm toolchain?

Can't find any on gitlab.
20th April 2015, 04:44 AM |#1209  
sparksco's Avatar
Recognized Developer
Thanks Meter: 8,370
 
Donate to Me
More
Quote:
Originally Posted by JustArchi

Would you be so kind to share some SaberMod androideabi arm toolchain?

Can't find any on gitlab.

Sure. I have a plan to make 4.9 future proof. I'm going to attempt a full merge of aosp gcc with gnu gcc. The problem is aosp doesn't keep gnu commit history so every file will have conflicts. The upside to this is I'd have every patch for arm and arm64 that I've had issues finding in their source because of their own merges in their source. That's why right now aarch64 is completely dependent on aosp gcc with no upstream changes from gnu, because the SaberMod 4.9 branch is missing things for android for aarch64. And possibly missing things for arm as well. It might take me awhile to get it working. Wish me luck!
The Following 4 Users Say Thank You to sparksco For This Useful Post: [ View ]
Post Reply Subscribe to Thread

Tags
justarchi archidroid optimizations linaro hack
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes