Re: [Opensim-dev] PhysX Integration into OpenSim
Please allow me to elaborate about the MOSES Team’s PhysX integration: · We are not reinventing the wheel: InWorldz [1] has successfully integrated PhysX into 2010’s OpenSim 0.6.5 with impressive aircraft [2]and ground vehicle [3, 4]movement. We commend Elenia and David from InWorldz for their PhysX initiative and information sharing. We are encouraged and inspired by their results. With that said, the MOSES team is integrating the latest PhysX version (3.3.3) into current OpenSim, with anticipated, continued support for future OpenSim versions. Our support includes the sharing of the integration source code, documentation, and published experiment results that will compare performance between PhysX to BulletSim. · With our effort, we are providing an alternative physics engine. Just like the introduction of BulletSim into OpenSim when ODE was the default, our effort will introduce another option for region owners. The code we share will follow the OpenSim plug-in architecture [5] and only require minimal OpenSim configuration file changes to employ PhysX, making it easy for region owners to run their regions with PhysX and experiment/test with the engine themselves. · From two separate OpenSim profiling events conducted November 2014 and this January, BulletSim’s CPU demands were observed to be alarming. Specifically, when comparing all of the components of the OpenSim.Region namespace (one of the heaviest CPU consumers in OpenSim), we uncovered that physics dominated consumption by using over 41% of CPU processing time. It was concluded that because BulletSim physics required such a large disproportionate amount of CPU, the current physics engine must be reanalyzed with multithreading and GPU processing capabilities targeted for efficiency. · The most current release of PhysX, 3.3.3 is open-API, open-sourced, multi-threaded, with complete GPU capabilities. The BulletSim 2.8 engine that is default in OpenSim is single-threaded and does not support GPU processing; multi-threading and GPU processing capabilities will be introduced in BulletSim 3. We have turned to PhysX because it offers these capabilities, with the additional possibilities of n-bodied physics and more realistic vehicle and robotic movements straight, out of the box, today. · PhysX is cross-platform. Our PhysX integration will not intentionally break OpenSim portability. · PhysX offers the best open-source use of GPU physics calculations available [6]; similarly, Nvidia graphics generally outperform the AMD equivalents [7]. Both of these observations steer us towards making OpenSim support the best performing external libraries and hardware possible. It should be noted that the speed-ups PhysX brings to games and simulators are attributed to tight collaboration and integration between the physics engine developers and the GPU manufacturer (Nvidia to Nvidia), commercial software development focused on efficient use of the GPU, and continuous improvements to the SDK [8]. We are integrating PhysX into OpenSim because the data suggests that it will give us the best performing physics engine available. · Once our integration is complete, we will share performance benchmarking methods and tools and performance analysis generated from our MOSES grid. We will systematically measure OpenSim performance with and without PhysX. We strive to provide OpenSim with the tools for performance and the best simulation experience. [1] Welcome to the InWorldz virtual world!, [Online]. Available: http://inworldz.com/. [2] When a dream comes true, [Online]. Available: https://www.youtube.com/watch?v=Fc5O8Jl67wQfeature=youtu.be. [3] InWorldz PhysX Beta 2 Race, [Online]. Available: https://www.youtube.com/watch?v=7oed95OPI3Q. [4] Vehicles in InWorldz - The Road Test | Xay Tomsen, [Online]. Available: https://www.youtube.com/watch?v=7zXPtMInJUs. [5] BulletSim - OpenSimulator, [Online]. Available: http://opensimulator.org/wiki/BulletSim. [6] Popular Physics Engines comparison: PhysX, Havok and ODE, [Online]. Available: http://physxinfo.com/articles/?page_id=154. [7] Borderlands 2 GPU CPU Performance Test, [Online]. Available: http://www.techspot.com/review/577-borderlands-2-performance/page5.html. [8] http://physxinfo.com/news/11327/multithreaded-performance-scaling-in-physx-sdk/,; [Online]. Available: http://physxinfo.com/news/11327/multithreaded-performance-scaling-in-physx-sdk/ . All the best, Sean Mondesire, Ph.D. Virtual World Research Team On Wed, Mar 18, 2015 at 10:51 PM, Michael Emory Cerquoni nebadon2...@gmail.com wrote: on a other note, if GPU support is the end goal for MOSES team, it should be noted that Bullet also can do GPU support and even multi-threaded cpu support, as it stands right now its only single thread for Bulletsim, though it can be loaded into a separate thread removed from the simulator heartbeat, it should also be noted that very little
Re: [Opensim-dev] PhysX Integration into OpenSim
It would be sad if this were ultimately for Windows only, as that would rule out its use by a large segment of the OpenSim community. -ste On 3/18/15 4:13 PM, Sean M wrote: Mike, Yes, PhysX.net is the targeted wrapper. Cross compatibility would be nice to maintain but is not a required feature for this effort. Best regards, Sean Mondesire, Ph.D. MOSES: Virtual World Research Team ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
Re: [Opensim-dev] PhysX Integration into OpenSim
GPU is not required for PhysX there is a cpu level it can operate at as well, and while GPu support is good, I would also be surprised if OpenSimulator could actually fully utilize a GPU before mono would barf anyway, mono can only handle so much threading and even offloading all of that processing to the GPU, all that data ultimately has to flow back through mono / C# / OpenSim HTTP server and I suspect there will be a huge bottleneck there that would not allow for much more performance than the CPU itself could handle anyway, there would likely be some improvement though, the question is does that warrant the inclusion of an expensive GPU in a server, its going to draw a lot more power, and will not make a lot of sense in a standard data center style setup with 1U rack servers, expanding rack size increases costs quite a lot, the question is does that increased cost benefit performance enough to justify it, the only way to really find out is to try, I wonder if InWorldz does any GPu offloading for their implementation of PhysX, i suspect they do not but would be great to know for sure. On Wed, Mar 18, 2015 at 5:15 PM, David Saunders abitar@gmail.com wrote: I know there be allot of grid interested in trying out the new physics when offer. THe only big drawback of people adopting the PhysX is that relies on a GPU to do its processing and not sure if you run more then one engine on a machine. I am sure smaller grids and self hosters would love it. But do correct me, I not looked into PhysX since last year. On Wed, Mar 18, 2015 at 4:42 PM, Shaun T. Erickson s...@smxy.org wrote: It would be sad if this were ultimately for Windows only, as that would rule out its use by a large segment of the OpenSim community. -ste On 3/18/15 4:13 PM, Sean M wrote: Mike, Yes, PhysX.net is the targeted wrapper. Cross compatibility would be nice to maintain but is not a required feature for this effort. Best regards, Sean Mondesire, Ph.D. MOSES: Virtual World Research Team ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev -- Michael Emory Cerquoni ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
Re: [Opensim-dev] PhysX Integration into OpenSim
on a other note, if GPU support is the end goal for MOSES team, it should be noted that Bullet also can do GPU support and even multi-threaded cpu support, as it stands right now its only single thread for Bulletsim, though it can be loaded into a separate thread removed from the simulator heartbeat, it should also be noted that very little effort has gone into fully optimizing what Bullet could potentially do in OpenSimulator. I do kind of wonder why the choice to not improve this effort instead of trying to re-invent the wheel so to speak with yet another platform that ultimately is not all that much better than Bullet in the end and potentially not cross platform. I must admit my interest will be very limited if I am required to use MIAB and likely would not do much testing myself if that is the case, also I would have absolutely no interest at all if it turns out to not have cross platform support though I am not sure that is true. On Wed, Mar 18, 2015 at 10:42 PM, Michael Emory Cerquoni nebadon2...@gmail.com wrote: GPU is not required for PhysX there is a cpu level it can operate at as well, and while GPu support is good, I would also be surprised if OpenSimulator could actually fully utilize a GPU before mono would barf anyway, mono can only handle so much threading and even offloading all of that processing to the GPU, all that data ultimately has to flow back through mono / C# / OpenSim HTTP server and I suspect there will be a huge bottleneck there that would not allow for much more performance than the CPU itself could handle anyway, there would likely be some improvement though, the question is does that warrant the inclusion of an expensive GPU in a server, its going to draw a lot more power, and will not make a lot of sense in a standard data center style setup with 1U rack servers, expanding rack size increases costs quite a lot, the question is does that increased cost benefit performance enough to justify it, the only way to really find out is to try, I wonder if InWorldz does any GPu offloading for their implementation of PhysX, i suspect they do not but would be great to know for sure. On Wed, Mar 18, 2015 at 5:15 PM, David Saunders abitar@gmail.com wrote: I know there be allot of grid interested in trying out the new physics when offer. THe only big drawback of people adopting the PhysX is that relies on a GPU to do its processing and not sure if you run more then one engine on a machine. I am sure smaller grids and self hosters would love it. But do correct me, I not looked into PhysX since last year. On Wed, Mar 18, 2015 at 4:42 PM, Shaun T. Erickson s...@smxy.org wrote: It would be sad if this were ultimately for Windows only, as that would rule out its use by a large segment of the OpenSim community. -ste On 3/18/15 4:13 PM, Sean M wrote: Mike, Yes, PhysX.net is the targeted wrapper. Cross compatibility would be nice to maintain but is not a required feature for this effort. Best regards, Sean Mondesire, Ph.D. MOSES: Virtual World Research Team ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev -- Michael Emory Cerquoni -- Michael Emory Cerquoni ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
Re: [Opensim-dev] PhysX Integration into OpenSim
You bring up some great talking points, Michael, and I'll try to address them in a logical order: 1) I agree the submission of one large patch is a bad idea. We would like for the developers to be informed of our work in-situ and even participate if they want. Since this is a major effort, we will be holding weekly IPT meetings in MOSES to discuss progress. 2) Does the OpenSimulator project have a formal patch acceptance process? What is your testing and QC regimen? If you don't have these practices in place, I'd be happy to help you formulate. 3) We are attempting to actively engage this list so that you are all aware of our work. If you want to be involved, please speak up. 4) We are acutely aware that we are building on open source software and abiding by all licensing terms. Further, we have made our enhancements and grid management software available via GitHub for anyone to download and use. We will be working from our GitHub on this physics effort and you are welcome to download the latest code at any time. We will also be submitting patches of our progress periodically to the community once we understand what the submission process is. https://github.com/M-O-S-E-S I can only make the code available to you, I cannot make you use it. We are not concerned with backwards compatibility, nor are we concerned with SL compatibility. It is likely there will be a situation where the OS core developers may like the new performance or functionality we are working on but you may need to massage the code to align it with your requirements. v/r -doug Douglas Maxwell, MSME Science and Technology Manager Virtual World Strategic Applications U.S. Army Research Lab Human Research Engineering Directorate Simulation Training Technology Center (c) (407) 242-0209tel:%28407%29%20242-0209 From: opensim-dev-boun...@opensimulator.org [opensim-dev-boun...@opensimulator.org] on behalf of Sean M [mondesire.s...@gmail.com] Sent: Monday, March 16, 2015 4:40 PM To: opensim-dev@opensimulator.org Subject: Re: [Opensim-dev] PhysX Integration into OpenSim Thanks for the response Michael. Our PhysX-OpenSim development is now underway. We wanted to make the announcement and let the dev community know of our plans to share the fruit of our labor. On Mon, Mar 16, 2015 at 11:56 AM, Michael Emory Cerquoni nebadon2...@gmail.commailto:nebadon2...@gmail.com wrote: Sounds great Sean, however I must say that submitting monolithic patches into OpenSimulator is not something we tend to accept or encourage, it would be considerably better if development was actively done in smaller pieces so it could be tested on a very wide audience as development is occurring so that the OpenSimulator team can have a say in the process and help out with testing as well, I hardly speak for the entire collective but I can offer my perspective on things being involved in this project from nearly the beginning, I do look forward to seeing what you guys can come up with and I do hope you consider working closer with the OpenSimulator development team and not try to pull off this massive feat in a closed environment, I would hate to see all this work be done and then not end up in OpenSimulator code base. On Mon, Mar 16, 2015 at 11:49 AM, Sean M mondesire.s...@gmail.commailto:mondesire.s...@gmail.com wrote: Greetings, The MOSES Team has begun the integration of Nvidia's PhysX physics engine into OpenSim. The effort's motivation stems from a deep review of the capabilities PhysX can bring the simulator and a number of discovered limitations that exists with ODE and BulletSim. Abstractly, we want to improve the overall performance of physics in our grids. Specifically, we turn to PhysX for its internal multi-threaded capabilities (not just relying on physics being executed on a separate thread from the OpenSim core), optimized performance with the use of dedicated GPUs, and the potential to bring more realistic physics to the system (vehicle movement, n-bodied physics, etc). Upon completion of this effort, the integrated code will be shared with the community. PhysX: http://www.geforce.com/hardware/technology/physx MOSES: http://www.militarymetaverse.org/ Best regards, Sean Mondesire, Ph.D. MOSES: Virtual World Research Team ___ Opensim-dev mailing list Opensim-dev@opensimulator.orgmailto:Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev -- Michael Emory Cerquoni ___ Opensim-dev mailing list Opensim-dev@opensimulator.orgmailto:Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
Re: [Opensim-dev] PhysX Integration into OpenSim
Sounds great Sean, however I must say that submitting monolithic patches into OpenSimulator is not something we tend to accept or encourage, it would be considerably better if development was actively done in smaller pieces so it could be tested on a very wide audience as development is occurring so that the OpenSimulator team can have a say in the process and help out with testing as well, I hardly speak for the entire collective but I can offer my perspective on things being involved in this project from nearly the beginning, I do look forward to seeing what you guys can come up with and I do hope you consider working closer with the OpenSimulator development team and not try to pull off this massive feat in a closed environment, I would hate to see all this work be done and then not end up in OpenSimulator code base. On Mon, Mar 16, 2015 at 11:49 AM, Sean M mondesire.s...@gmail.com wrote: Greetings, The MOSES Team has begun the integration of Nvidia's PhysX physics engine into OpenSim. The effort's motivation stems from a deep review of the capabilities PhysX can bring the simulator and a number of discovered limitations that exists with ODE and BulletSim. Abstractly, we want to improve the overall performance of physics in our grids. Specifically, we turn to PhysX for its internal multi-threaded capabilities (not just relying on physics being executed on a separate thread from the OpenSim core), optimized performance with the use of dedicated GPUs, and the potential to bring more realistic physics to the system (vehicle movement, n-bodied physics, etc). Upon completion of this effort, the integrated code will be shared with the community. PhysX: http://www.geforce.com/hardware/technology/physx MOSES: http://www.militarymetaverse.org/ Best regards, Sean Mondesire, Ph.D. MOSES: Virtual World Research Team ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev -- Michael Emory Cerquoni ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
Re: [Opensim-dev] PhysX Integration into OpenSim
Thanks for the response Michael. Our PhysX-OpenSim development is now underway. We wanted to make the announcement and let the dev community know of our plans to share the fruit of our labor. On Mon, Mar 16, 2015 at 11:56 AM, Michael Emory Cerquoni nebadon2...@gmail.com wrote: Sounds great Sean, however I must say that submitting monolithic patches into OpenSimulator is not something we tend to accept or encourage, it would be considerably better if development was actively done in smaller pieces so it could be tested on a very wide audience as development is occurring so that the OpenSimulator team can have a say in the process and help out with testing as well, I hardly speak for the entire collective but I can offer my perspective on things being involved in this project from nearly the beginning, I do look forward to seeing what you guys can come up with and I do hope you consider working closer with the OpenSimulator development team and not try to pull off this massive feat in a closed environment, I would hate to see all this work be done and then not end up in OpenSimulator code base. On Mon, Mar 16, 2015 at 11:49 AM, Sean M mondesire.s...@gmail.com wrote: Greetings, The MOSES Team has begun the integration of Nvidia's PhysX physics engine into OpenSim. The effort's motivation stems from a deep review of the capabilities PhysX can bring the simulator and a number of discovered limitations that exists with ODE and BulletSim. Abstractly, we want to improve the overall performance of physics in our grids. Specifically, we turn to PhysX for its internal multi-threaded capabilities (not just relying on physics being executed on a separate thread from the OpenSim core), optimized performance with the use of dedicated GPUs, and the potential to bring more realistic physics to the system (vehicle movement, n-bodied physics, etc). Upon completion of this effort, the integrated code will be shared with the community. PhysX: http://www.geforce.com/hardware/technology/physx MOSES: http://www.militarymetaverse.org/ Best regards, Sean Mondesire, Ph.D. MOSES: Virtual World Research Team ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev -- Michael Emory Cerquoni ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev ___ Opensim-dev mailing list Opensim-dev@opensimulator.org http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev