mental ray + Cuda = Mental Ray 4.0 ?


#21

Paolo will sell you on 3Delight in a heartbeat… just give him a second to respond :slight_smile:


#22

I tried 3Delight, but after 5 hours I couldn’t get GI to work…so I gave up, but it was pretty nice and very fast.

Maybe the trial edition doesn’t support Gi?

Is 3Delight really that good? how does it compare to Fryrender or Finalrender?

Maybe Paolo can shed some light?


#23

The “free” version is completely functional but is locked to only max two processors. All the features of 3delight are available.

In my trials, I found the gi solutioin unsatisfactorily slow and cumbersome to set up. But thats also because of my limited knowledge of the tool’s more advanced features. Point cloud based gi is apparently the way to go. And paolo is going to teach us how to do that very soon :wink:

Btw, you can go through the link mentioned in this thread for a quick overview of gi solutions in 3delight:
http://www.3delight.com/en/modules/PunBB/viewtopic.php?id=841

-Sachin


#24

The “sell” verb is quite inappropriate, “recommend” is the right one,
but anyway that has nothing to do with this thread: offtopic.


#25

it’s not “inappropriate”. “Sell” and “recommend” mean the same thing in that context. There’s no need to get your panties in a bind and it’s not off topic as he talked about sticking with Gelato, versus any future Mental Ray or Cuda software. It’s about options. You dislike or hate Mental Ray at this point and have recommended 3Delight to others in similar threads. So why the attitude now? Calm down P, it’s just a thread on renderers. Breathe.


#26

You are assuming too many things dude.

I am very calm and I still think it was unrelated since the thread is about porting mr codebase to cuda.
Edit: sorry I did not see your first post.


#27

It’s ok. I was trying to be helpful and point the guy in a different direction, maybe one he didn’t think about, which is 3Delight or another renderer. Who knows what the future holds with Mental Ray, Cuda and the many changes at MentalNvidiaImaging. :slight_smile: Sometimes helping people by showing them what another peice of software can do may guide them in their choice of what to do/buy next. You’re one of the kings of 3Delight around here and can better speak to it, over the future state of Mental Ray.


#28

Ok.
Since 3delight is not GPU assisted (and IMO currently it does not currently need to be, except for eventual relighting, which is in any case always customized in the production facility) I did not think it was needed to be mentioned.
In any case you can use point-based occlusion and radiance much quicker with 3delight on a real production scene with displacement so I currently do not need a GPU-assisted occlusion pass.

Who knows what the future holds with Mental Ray, Cuda and the many changes at MentalNvidiaImaging. :slight_smile:

More or less I think it was explained in several posts, anyway:

mr will keep existing as long as it is self-sustainable and as long as nv wants, obviously nv doesn’t care much about sw rendering, they bought mental images as a form of protection otherwise other competitors (eg intel) which were collecting raytracing minds from the industry would have.

In the meanwhile dev at mental will proceed as usual since mental controls itself, meaning it is yes wholly owned, but in a way still independent in handling his business (and that’s the bad thing cause nVidia - which is a modern company - would have brought a wave of fresh air in the closed mental institute… don’t get me wrong here: at mental the developers are super cool and smart, it is just a problem of jurassic management).

Gelato has been shut-off, but honestly speaking, I tested up to version 2.x and I did not see so much speed advantage in fact (I was using 1 GPU in my tests). Gelato 3.x which I guess will never see the light had a nice relighter (Mocha), but as I said normally production facilities write their own relighters to fit their needs.

RealityServer development is going on since a decade and is not at all aimed at animation/fx production, and basically it is not used by anybody even in its own ballpark (industrial & large scale visualization). Mentals are for sure trying to trap potential customers in a even a trickier&closed API than the one of mr, but the market has changed, people now are way smarter and like more open APIs and OSS, and honestly speaking you could build an RS-like architecture just by pluggin OSS blocks together. So in my opinion RS is and will be a failure.

p


#29

Thanks everyone for your replies. This has turned out to be an interesting thread.

I have to say I’m not exactly sure what you mean by coherent. I am guessing that you mean that the amount of computation per sample can be very different and that would cripple nVidias architecture. I have to say that I disagree that mental ray would not run well on Cuda. I can see where the confusion may come from though. NVidia has a strange architecture and the are a bit tight lipped about what is actually going on under the hood. Unlike a vector processor, each thread can execute an independent instruction stream. Having “coherent” computations would certainly run faster, but is not required to get a significant speed up.

Sounds like rewriting a few things wouldn’t be a bad idea anyway. It must also be noted that you wouldn’t have to port all of mental ray to Cuda, just key parts that run well and consume a great deal of cpu time. You could just start with a few things and slowly roll mental ray into cuda over a period of time.

As far as “Jurassic management”, I can’t speak to what is going on inside of mental images. I don’t know anyone that works there. A good deal of this thread is speculation. However, I do know people in performance computing, and I also know that nVidia has its sights on anything that will increase their market share. Renderfarms are both lucrative and prestigious for companies like nVidia. If nVidia is not pushing mental images to use cuda, then that is sad indeed.

My key point of why mental ray should be ported to cuda is the design of a gpu. All most all of the gpu’s transistors are logic. The majority of the transistors on an Intel cpu are cache. This makes sense given how flexible a cpu must be. An nividia gpu is a 14th generation processor that is designed to do rendering. Some gpus have memory bandwidth greater than 100gbs per second that is actually achievable. The potential for increased speed is quite astonishing. A friend, who works at Cray as a high performance software engineer of sorts, ported a mandlebrot generator (non coherent code) in an afternoon for fun and got over 190 times the performance (core2 3.0ghz single core vs 8800gt). Getting only 1/25th of that in mental ray would be great.

We use mental ray and rendering is a hugely expensive part of our business. Even a 4x increase in performance without having to buy more machines, more power, and more A/C would increase the quality of my work and allow me to spend more time with my family. As always, just because it works well, doesn’t mean they will do it.


#30

AMD with Fusion and Intel with Larabee would have been better candidates for accelerating Mental ray IMHO. Nvidia knew it and aquired MI as sson as it could. So as always, this aquisition is not driven by customer and end user expectations, but shareholder interests.

Well, altough a GPCPU might have been a better candidate, I still hope that Mental ray might benefit from a standalone GPU. I also somehow want to believe that the Aegia aquisition will help here somehow.

It’s going to take longer. Competitors like Vray or Renderman will probably make bigger performance leaps once GPCPU’s become a standart, where MI will be busy trying to follow its parent companies standalone GPU ambitions… But either way, rendering as we know it will change for the better within 3-4 years.


#31
No, he means 'coherent' as in 'parallelized'. As in a REYES renderer. The way mental ray works doesn't lead itself easily to SIMD approaches.
And even if you just consider the latter's scanline frontend (which is nothing but a rather lame REYES implementation) -- speeding this up won't buy you much. See Gelato. 

I have to say that I disagree that mental ray would not run well on Cuda.
I can see where the confusion may come from though. NVidia has a strange architecture and the are a bit tight lipped about what is actually going on under the hood.

 You can disagree until you are green. :)
 
But some people commenting on this here work in this industry since over a decade. I hear all this magic bullet stuff every few years but being a developer myself and using high end VFX production renderers for almost 14 years, all I can say is: I believe it when I see it. 

Given the particular example of mental ray, I'd actually rather would have a hard time believing it at all, even if I saw it.

This renderer was never impressive at any time and the only reason it is so big now is that it comes bundled with three major 3D packages. Does this say anything about the renderer?
It doesn’t because the decision to bundle it was carried out by bean counters who frankly don’t understand shit all about rendering.

Soft is very unhappy with their mental ray dependency in XSI at this stage. The metal ray integration in Maya is a pile of rubbish (it was curiously written by mental images, not alias).
There's nothing fancy about mental ray, just [i]a bloody lot[/i] people use it because they don't know any better.

Unlike a vector processor, each thread can execute an independent instruction stream. Having “coherent” computations would certainly run faster, but is not required to get a significant speed up.

  If you look at the amount of data involved in offline rendering computations, lack of coherence can be a bigger spoke in the wheel than you'd imagine.
Sounds like rewriting a few things wouldn’t be a bad idea anyway.
You don't sound like you have much of a background in software development, to be honest. I suggest [this reading](http://www.joelonsoftware.com/articles/fog0000000069.html). ;)

As far as “Jurassic management”, I can’t speak to what is going on inside of mental images. I don’t know anyone that works there.
A good deal of this thread is speculation.

 Actually, Paolo used to work at mental images not very long ago and knows pretty much everyone there. So I'd rather trust his assessment of how dire things are in Berlin being the very opposite of speculation.

Also, always recall what "mental" means in English. ;)

However, I do know people in performance computing, and I also know that nVidia has its sights on anything that will increase their market share. Renderfarms are both lucrative and prestigious for companies like nVidia.

Sorry, but that is a pile of bollocks. Firstly, VFX is an absolute niche market. Secondly, the number of CPUs on farms is tiny compared to the number of desktops in the world. Furthermore, the idea of people ever using GPUs in render farms is a nice pipe dream but a pipe dream still.

Framestore CFC got a test setup with 50 boxes of GPU-fitted blades + free Gelato seats that nVidia gave them a few years back. Reportedly they had to shut it off because the heat generation was too much for their farm's AC to handle. Curiously Gelato, with all its GPU aid, still never even got close to PRMan or 3Delight in speed. And I tested this renderer very thoroughly because I worked for a company that wanted to buy it. They went with 3Delight in the end. Recall that Gelato was written with GPUs in mind from the beginning. Mental ray would just be part GPU, by whatever means. Not much to expect there.

As far as offline rendering goes, there's a very negative incentive to use GPUs from four points here: power consumption, hardware price, thermal problems, speed gained (negative in case of Gelato at least).
And every decision maker I ever met from any bigger place (namely those places who run these large farms) knows this.

You will never get people to buy blades with GPUs. And even if you could, the only gain for nVidia from this would be marketing. As in: "Pirates of the Caribbean VII was rendered on nVidia GPUs". Sales wise, it would not even show up as fly shit in a corner of their radar screen.

On a side note, I don't think it was the decision of Larry, Matt and all the other excellent folks, who worked on Gelato, to make it GPU hardware-dependent. Entropy wasn't for sure.

Mental ray is a mess at this stage. Nvidia buying mental images doesn't change that.
It requires people.
Believe it or not, technology is never a savior, brains are. Cuda is just a buzzword.

Good people are much harder to come by than buzzwords. Surprisingly, or rather not, Larry & the rest of the Gelato team decided to depart nVidia asap, when they were faced with the prospect of having to help improve/save this "renderer".

We use mental ray and rendering is a hugely expensive part of our business. Even a 4x increase in performance without having to buy more machines,

Four times??? I'm lost at were to start with, commenting this.
Lets just say, I don't mind a good spliff myself some times. ;)

.mm

#32

the man who doesn’t care :smiley: LOL

i’m pretty annoyed by your attitude, this is because you dont know ANYTHING about mental ray, not because people dont know any better, please stop bitching the mray threads and respect other people, italian cook! tsé


#33

Oddly enough while wandering the forums all I can think of is something my art history teacher said: “I can create a convincing website detailing how George Washington was the first Nazi. Please limit your sources.”

Despite the vast majority of information that gets tossed around these forums, a fair amount of it is asking the wolf about the missing chickens. This applies to a lot of people on every end of the spectrum.

Who’s going to admit their software isn’t perfect or could use some work time to time?

Which leads me to the best quote from the Simpsons, “Yes, yes. It’s all a very rich tapestry.”

Anyway, none of us in here is the Amazing Kreskin. I assume the future will take care of itself.


#34

So Larry Gritz is no longer with nvidia? Where’s he headed? dna? :wink:


#35

Just stepping back a little…

I think its inevitable that realtime/gpu rendering is going to take over…

Just take a look at this image from ATI’s latest demo…

http://farm4.static.flickr.com/3085/2585849022_2dc42296fe_b.jpg

From what i understand this is all completely real-time (no pre-baked stuff feel free to correct me if i am wrong) running in HD at good frame rates on consumer priced hardware.

If you can produce this level of image quality at 30fps today on a $400 video card it makes offline rendering look ancient regardless of which render your using…

What you rather use as an artist?


#36

I donno. This video is marketing stuff. The whole background is probably real footage while the characters are premapped/lighted high-poly objects. And I’d not look at it as an example for what GPU accelerated rendering software promises.


#37

Nope all realtime

http://www.gametrailers.com/player/usermovies/231380.html

http://www.youtube.com/watch?v=_PCEN-RG2lk


#38

Video game rendering is a bit different in that there is a lot of baking done before hand. I’m sure this demo is done the same way. Though, just because its baked doesnt mean there isnt an impressive amount of rendering happening, its just not an apples for apples comparision with traditional rendering. The demo is pretty sweet. Its good evidence that GPUs are good at rendering.

I have heard from a fairly reliable source that Disney has put together a 50 node gpu cluster using cuda. Thier off the cuff calculations put it at the equivilent of 1200 of thier Intel nodes. The phrase “modified renderman runs” was used in the email. I thought mental ray was going to be the first renderer to use cuda but perhaps it will be renderman. Who knows if this “cuda renderman” will ever see the light of day, but one can hope.

Speculation is just guess work. I agree that its not good to get too caught up in what the future holds. I consider speculation of this nature to be more entertaining than productive. But its still useful. I’m glad I jumped on the zBrush bandwagon early, even though everyone told me it would be a fad. But then, a few band wagons I jumped on didn’t pan out.


#39
REYES leads itself easily to a GPU implementation. Ray tracing doesn't. As Paolo pointed out: lack of coherence. This is a comment reagrding how much sense it makes to speed up e.g. mental ray with CUDA.

As GPU use in offline rendering in general goes: the problem of power consumption & cooling remains. As someone in London was joking last week: if two of the four big companies in Soho would put GPUs into their farm's blades, Soho would have no power left for anything else but rendering. ;)

I predict that standard libraries will gradually have automagic support for multi-threading and GPU-based calculations added. If you then recompile you renderer against such a library version, you get the benefits automatically.
People writing renderers who share this view (I'm aware of quite a view) are unlikely to spend time integrating their renderers with a new API like CUDA. Note that CUDA also introduces a single-vendor dependency to gain the fruits of these efforts: you need an Nvidia GPU, ATI etc won't work. Lastly, CUDA is closed source.

Then there's the issue of single vs. double precision. The former is fine for games.

But for a lot of stuff we do in VFX today, people hit the boundaries of single precision floating point in offline rendering.
This limits the amount of GPU geometry processing one will be able to do for certain types of work. You can e.g. use single precision for a ray direction vector or inside a space partitioning tree voxel's domain. But for your geometry positions you will mostly need double.
There aren't many double precision GPUs. And the "fake double" implementation I've seen, using two floats, gives you 5 bits less mantissa than true double ...

Lastly, at double precision, most GPUs are -- not surprisingly -- more or less the same speed as CPUs. Of course it all depends on the amount of data: as soon as you process more than what the CPU's level 2 cache can hold, you will be using the main memory through a (relatively) slow bus.

But speed wise, the much more appealing CPU alternatives are just around the corner: check  Intel's Nehalem -- at 100 gflops it's approx. four times the double precision speed of the fastest Nvidia GPU and it comes with no need to use any CUDA stuff (and thus learn a new API).

Again, CUDA's just a buzzword. :)

.mm

#40

actually a Firestream 9250 has 200gflops and nehalem is not round the corner…