Posts: 6,346
Threads: 24
Joined: Jun 2017
Reputation:
400
Obi Owner:
28-10-2017, 10:38 AM
(This post was last modified: 28-10-2017, 10:39 AM by josemendez.)
(28-10-2017, 08:11 AM)mimarilker Wrote: Hi,
I have conducted cpu profiling on samsung s7 and sony xperia z5 for karman sample with 1800 particles emitted in 4 seconds (450 particles per second). In both of devices, cpu usages are very very high, this means that there’s no problem to attach obi fluid processes to cpus. On the other hand, most of the recent games can be run on these devices, however, they are not using cpu in such high level even. In brief, the obi fluid library should not be exactly same for both ios and android, as you said. It shoud be changed and optimized for Android. Otherwise this problem cannot be solved and we cannot use obi for Android. Lastly, I will have to draw back my app from playstore due to the refund requests coming after every purchase immediately. Please, bring a solution.
Fluid simulation is extremely expensive regardless of the device, so high (almost 100%) CPU usages are to be expected. The library is indeed the same for both architectures, and there are no obvious optimizations that can be made for Android. I'm still profiling in several Android devices, will get back to you asap.
Posts: 39
Threads: 10
Joined: Oct 2017
Reputation:
0
I am agree with you on high cpu requirements. Thanks for the reply, waiting for your solution.
(28-10-2017, 10:38 AM)josemendez Wrote: Fluid simulation is extremely expensive regardless of the device, so high (almost 100%) CPU usages are to be expected. The library is indeed the same for both architectures, and there are no obvious optimizations that can be made for Android. I'm still profiling in several Android devices, will get back to you asap.
Posts: 6,346
Threads: 24
Joined: Jun 2017
Reputation:
400
Obi Owner:
30-10-2017, 04:54 PM
(This post was last modified: 30-10-2017, 04:58 PM by josemendez.)
(28-10-2017, 10:55 AM)mimarilker Wrote: I am agree with you on high cpu requirements. Thanks for the reply, waiting for your solution.
Hi there,
I profiled Obi in multiple Android devices:
Galaxy S4, Galaxy S6 Edge, Nexus 5X.
and iOS devices:
iPhone 4S, iPhone 5, iPhone 6.
The performance differences were negligible in most cases. In certain instances, the Android devices outperformed the iOS one by almost a factor of 15%. Galaxy S4 in particular took about 3ms less per frame than iPhone 4S in the FluidKarmanVortex scene.
Performance in this particular scene was around 2-3 fps in the slowest device (iPhone 4S) and around 15 fps in the fastest (iPhone 6), due to the fact that it is the second most demanding test scene included (not only fluid simulation is taking place, but also particle advection of close to 10000 regular particles). We ran the included version, no changes made to it.
Also took a deep look at all compilation options used for the Android library, and they're optimal: NEON support is enabled, -O3 optimization level used in release mode.
So, I couldn't find any difference in performance between both platforms at all, in any device. If you could elaborate on how you're profiling your game, what compilation options you are using both for Android and iOS or maybe share your builds, we could investigate this further.
Posts: 39
Threads: 10
Joined: Oct 2017
Reputation:
0
But I have different results than you. Even S7 doesnt show a good performance like iphone6. As I said particle amount 1800, duration 4 secs. I didn’t do any different thing in compilation options, they are Unity’s default. My camera is aconometric btw and in solver I checked simulate when invisible option, otherwise ipad didnt show prticles (no probllem woth iphone). Do you advice any settings for compilation for Android? A detailed advice would be useful.
(30-10-2017, 04:54 PM)josemendez Wrote: Hi there,
I profiled Obi in multiple Android devices:
Galaxy S4, Galaxy S6 Edge, Nexus 5X.
and iOS devices:
iPhone 4S, iPhone 5, iPhone 6.
The performance differences were negligible in most cases. In certain instances, the Android devices outperformed the iOS one by almost a factor of 15%. Galaxy S4 in particular took about 3ms less per frame than iPhone 4S in the FluidKarmanVortex scene.
Performance in this particular scene was around 2-3 fps in the slowest device (iPhone 4S) and around 15 fps in the fastest (iPhone 6), due to the fact that it is the second most demanding test scene included (not only fluid simulation is taking place, but also particle advection of close to 10000 regular particles).
Also took a deep look at all compilation options used for the Android library, and they're optimal: NEON support is enabled, -O3 optimization level used in release mode.
So, I couldn't find any difference in performance between both platforms at all, in any device. If you could elaborate on how you're profiling your game, what compilation options you are using both for Android and iOS or maybe share your builds, we could investigate this further.
Posts: 6,346
Threads: 24
Joined: Jun 2017
Reputation:
400
Obi Owner:
30-10-2017, 06:09 PM
(This post was last modified: 30-10-2017, 06:11 PM by josemendez.)
(30-10-2017, 05:03 PM)mimarilker Wrote: But I have different results than you. Even S7 doesnt show a good performance like iphone6. As I said particle amount 1800, duration 4 secs. I didn’t do any different thing in compilation options, they are Unity’s default. My camera is aconometric btw and in solver I checked simulate when invisible option, otherwise ipad didnt show prticles (no probllem woth iphone). Do you advice any settings for compilation for Android? A detailed advice would be useful.
These are the compilation options I'm using for Android. As long as you're not doing something obviously wrong (like deploying a development/debug build), I'm out of ideas on why you're seeing such huge performance difference. If you could share your project I could take a look at it though.
Posts: 39
Threads: 10
Joined: Oct 2017
Reputation:
0
(30-10-2017, 06:09 PM)josemendez Wrote: These are the compilation options I'm using for Android. As long as you're not doing something obviously wrong (like deploying a development/debug build), I'm out of ideas on why you're seeing such huge performance difference. If you could share your project I could take a look at it though.
Thanks for your reply, actually my settings were different too much, for instance I was using mono instead of ilcpp, first I will try this and make you know.
|