Isadora, 2013 Mac Pro, dual GPUs and CPU isssues
-
thank you Fred.
-
Fred, I just read your discussion about 5 outputs from a GTX 1080
https://community.troikatronix...
I am unclear what is the answer to your question. Does “primary display” refer to the Isadora control screen or the output from a stage. I will be using a GTX 1080 in a PC which also has an output from an Intel UHD Graphics 630. Do you know if that output can be used for a control screen/programming for Isadora while 4 stages come out through the 4 outputs on the GTX 1080.
many thanks,Don
-
@dritter said:
https://community.troikatronix...
THis would mean you are using multiple GPUs and there are some hard limitations and drawbacks, I would suggest using an MST hub with the Nvidia card and disabling the onboard GPU.
-
-
Fred,
Is it typical for an onboard GPU to turn off automatically if another video card is installed in a PCIe slot, or must it be disabled manually? If no video signal is present from the onboard video output, can I assume the onboard GPU is disabled?thank you,
Don -
Hi Don,
Just thought I would mention the result of testing my similar patch running 45 x 3D players with Kinect 2 skeleton OSC data through a Mac Pro (2013) AMD D500.
With 6 individual displays each at 2560 x 1446 (2 x TH2Go) and achieving over 48 FPS. The patch is available through this post from a couple of years ago. I would say the big difference is going to be the number of vertices in the 3ds files used. The open source Meshlab is the best option for 'decemating' 3D files to reduce vertices without deforming the original shape.
best wishes
bonemap
-
@dritter You can eiyher just not use it (dont plug a monitor into it), disable it in the Bios, (takes 5 seconds) or use it but beware of the problems and limitations. I think if you only use it as a control screen (and dont use it at all for stage previews or showing media that is also going to the actual video card) you will also have less problems. There are a few threads on using multiple video cards with Isadora on this forum. You can try your patch with and without and choose your config or stability.
-
Bonemap, thanks very much for your suggestions. I appreciate your help. I will look at your other Kinect_Isadora_Patch and try Meshlab. I spent a few hours yesterday trying to use your method from Geometry_Groups.izz patch, but have not yet been able to move my geometry smoothly.
all the best,
Don -
@fred
thank you Fred, I am still working on a solution with the Mac Pro, but a new PC with the GTX10180 will arrive tomorrow. This project is only using three HD video projectors, so I can use the 4th output from the GTX1080 as a control screen. The Isadora patch currently uses a 3840x1080 stage preview stage with Syphon before splitting it into three stages for the projectors, so it appears using the built-in video output for a control screen is not an option.The three video projectors for development are now running at 1920x1080, but this will change to 1920x1200 when I connect to the large projectors. I have never used an MST hub, but I have now read about it. Is it correct that I can attach an MST hub to a displayport on the GTX1080 and get two independent 1920x1080 signals, and then I can drive 4 HD projectors and one control monitor?
many thanks,Don
-
@dritter Yes the MST hub will appear as separate monitors that come from a single disaplay port output
-
Thank you Fred, I will try it. I now have the PC and have been working on it all day. Unfortunately I have many problems, which I will post in two minutes.
-
@dritter said:
@fred
@bonemapFred and Bonemap,
After 24 hours of trouble-shooting, I was able to get my Mac-Isadora patch working on a 3.5GHz 6-core PC with a GTX1080ti GPU. In one mode of playback, the patch plays 90 3D texture mapped objects, 90 3D particles (each with a particle count of 50) and 6 3D Model particles (each with a particle count of 15), all controlled with live xyz data from 3 Kinects and composited onto a 3840x1080 video (Prores or MP4) that output to three mapped and blended video HD projections. The maximum frame-rate for the PC with this configuration was 18.7, and the Mac Pro with a Radeon D700 was 11.4. Comparing various tests with this setup, the PC was 45-79% faster than the Mac Pro, but the Mac was much more stable. Does this seem what you expected?
Sincerely,
Don
-
Hi Don,
It is really great that you have done this comparison on your particular set of variables, actors and processes as it is very close to the kind of work that I am also developing in Isadora. I believe that you are being very ambitious with the amount of realtime data processing being attempted and I would say that getting a frame rate around 18fps is a great and encouraging result. There is no question that the Nvidia GPU is superior for purpose.
I would be interested to hear how the patch set-up performs over time, particularly if the amount of OSC data creates a bottleneck and performance issues (other than fps) become a factor. I am experiencing something happening that contributes to a slow down of the OSC data that is not associated with frame rate. The issue only occurs after the system has been running for some time.
Thanks for posting about your experiences with the development of your work. There are numerous comparative reviews of AMD vs Nvidia mostly focused on gaming performance and the Nvidia gpu's are clearly outperforming the AMD graphics for realtime rendering. With a new series of very expensive cards including the Nvidia GeForce RTX 2080 Ti, the gap in performance and cost appears to be widening further still.
Best WIshes
bonemap
-
@bonemap
Hello Bonemap, thank you for you various comments and for sharing you patches. They were very helpful. Good luck with you projects.
sincerely,
Don -
@dritter good to hear you made some progress. I was thinking about @jhoepffner 's reply regarding vertices and I had a chance to do some checking and reading. I although vertices are computed on the CPU they are then uploaded to the GPU. For a 3D scene the rendering system then does raycasting on a per vertex basis to calculate what would be seen in a 2D perspective of your 3D scene. The more vertexes the more power needed, and the more time needed (= a lower frame rate). This is such a thing that game developers have a vertex budget for characters and scenes. We are not using a game engine, but the pipeline for showing 3d models is exactly the same. Here is one of many articles about optimising assets and scenes for the GPU
https://docs.unity3d.com/Manua...
Optimisation of assets is a very serious task and, done well makes the difference between a playable game and something that eats frame-rates for no reason. Done well the optimisation will not look any different. It is just that when creating a model (mesh) artists will use settings and tools for creating that often have many extra vertices that are not needed to show the shape you want, many extras are made using bending tools and uniform mesh sizes. However when it is time for the GPU pipeline for playback we do not need them. The same can be applied to your work with Isadora.
I would guess you can get a lot more power out of your system (considering what I have seen the 1080ti do) by optimising your models, and reducing the number of vertexes as much as possible. You can see some hints here https://help.sketchfab.com/hc/...but in general mesh labs decimation tool can be the first thing to try.
With a bit of work I am sure you can push past 25fps or higher.
And an edited note: power of 2 texturing is also much more efficient, even if it means a larger texture file. This means the dimensions of your texture should be powers of 2, like 128, 512, 1024 etc. This can really reduce the load on the GPU as well.
-
hi,
You say : 90 3D texture mapped objects
Can you tell us what your textures are ?
90 different textures ?
Image files ? Size ? Format ?
Thanks
Mehdi
-
I completely agree with Fred sentence. It's necessary to ask Mark and other developers to implement object instancing in Isadora. With it you dramatically reduce the bottleneck between CPU and GPU because you only send one group of vertices and after you multiply it, changing position, rotation, texture etc. for each instance. I think is what is used for 3D particles but the actor is very difficult to use for a precise behavior.
I ask for it many times, a collective demand could be filled?
Jacques
-
@dritter can you provide a sample do one of your models (say one of the biggest most complex ones). Maybe we can have a go optimising it. Or you can also look at some more targeted tools (maybe the designer who made the models can output some simplified versions).
http://www.mootools.com/plugin...
https://www.okino.com/conv/pol...
And many more
-
Hello Mehdi, my texture maps for the 3D objects and 3D particle objects are PNG files(256x512 resolution) and for 2D particles they are PNG files with an alpha channel(60x60 resolution). I use the same texture files repeatedly on multiple objects. I tried having independent texture files for each object under OSX, but I did not see any difference in performance. Other users have found using independent texture maps will increase performance.
Don -
@dritter 64*64 resolution instead of 60*60 can give you a performance boost.