Jump to content
IGNORED

GPU in main, SCIENCE!


LinkoVitch

Recommended Posts

Doesn't the idea of having a highly optimized function handler running on the GPU, with a highly optimized sound and I/O handler running on the DSP, initialized via a script-like setup system and managed by simple and friendly API calls to leverage most of the potential from the hardware while keeping things easy on the ground level sound much more practical than wishing for a non-existent compiler using bonkers theories that have already been proven wrong sound good?

 

If only someone was working on that, eh?

 

 

I suppose the dream compiler would be something like uc65

http://forums.nesdev.com/viewtopic.php?f=2&t=10242

 

Except with the added feature of intelligently handling code/data streaming to the GPU.

 

Where is my barrel of infinite code monkeys?!?

  • Like 3
Link to comment
Share on other sites

Doesn't the idea of having a highly optimized function handler running on the GPU, with a highly optimized sound and I/O handler running on the DSP, initialized via a script-like setup system and managed by simple and friendly API calls to leverage most of the potential from the hardware while keeping things easy on the ground level sound much more practical than wishing for a non-existent compiler using bonkers theories that have already been proven wrong sound good?

 

If only someone was working on that, eh?

 

 

Reinventing the wheel is what keeps me entertained between 'bouts of Merlin Rocksoff on Virtual Jaguar :)

Link to comment
Share on other sites

Well, but the end result of AO's engine was pretty impressive imo. Sure there was no game logic yet, but it was one of the more advanced 3D graphics I have seen on the Jaguar. You mean to say that he could have managed to get it working without the GPU in main stuff it and then it would have been even faster? Or could this be a special case?

Link to comment
Share on other sites

You mean to say that he could have managed to get it working without the GPU in main stuff it and then it would have been even faster? Or could this be a special case?

 

 

GPU in local is hugely faster than GPU in main, so broadly yes.

 

 

Only Owl can answer that one.

 

In this case, swapping probably would slow things down considerably. You'd have to swap out 4k for a rarely called function. However, if indeed (as I suspect) the vast majority of the inner loop code is running in local you cannot use this as a case for 'GPU in main saves the day'.

 

EDIT: Ninja'd by CJ

 

But still, broadly yes. But AO can answer specifically.

Link to comment
Share on other sites

Only Owl can answer that one.

 

I suspect a few things - that he is running GPU in local for most of the render loop, and that he's running smaller single shot code chunks on the GPU in main ram with the 68000 disabled.

 

In this case, swapping probably would slow things down considerably. You'd have to swap out 4k for a rarely called function. However, if indeed (as I suspect) the vast majority of the inner loop code is running in local you cannot use this as a case for 'GPU in main saves the day'.

 

I'd also warrant that had he decided to proceed with the project he would not have written the RPG game code on the GPUs.. In main.. Nobody is that insane, surely?

 

I may be well off base there, only the man himself can answer, but I strongly suspect that is the case.

 

Well, but the end result of AO's engine was pretty impressive imo. Sure there was no game logic yet, but it was one of the more advanced 3D graphics I have seen on the Jaguar. You mean to say that he could have managed to get it working without the GPU in main stuff it and then it would have been even faster? Or could this be a special case?

Link to comment
Share on other sites

Really? You really, truly, believe, after all the games we're released, that we have to prove to you and the world we can't generate a random number, and drag a sprite from an edge of the screen, with a maximum of about 8 things on screen at once? The bullets don't even track, its just an instant kill! Honestly? Are you for real?

 

The hardest part of that entire game is sitting thru the endless THOU SHALT NOTs at the start and then trying to stay awake while you play it.

 

Grow up, read the thread, absorb the facts, and realize that The Cult needs to end.

 

 

OK. Piece of cake for you to duplicate then.

 

  • Like 2
Link to comment
Share on other sites

Yes CJ, you have to prove it. You don't do 3D. You do 2D. and that's awesome. But you're just not a 3D guy.

 

I'm grown up enough to realize that those who try to debunk the GPU in Main thing as anything good either ignore points made in its favor, go round and round saying the same statements over and over again that have already been addressed. Or ignore them entirely. I'm grown up enough to realize that you and others aversion to this may well stem from some type of jealousy or clique mentality.

 

Yes CJ you're going to have to prove it. Walk the Walk. Just like Atari Owl did and Gorf.

 

Really? You really, truly, believe, after all the games we're released, that we have to prove to you and the world we can't generate a random number, and drag a sprite from an edge of the screen, with a maximum of about 8 things on screen at once? The bullets don't even track, its just an instant kill! Honestly? Are you for real?

 

The hardest part of that entire game is sitting thru the endless THOU SHALT NOTs at the start and then trying to stay awake while you play it.

 

Grow up, read the thread, absorb the facts, and realize that The Cult needs to end.

 

 

Link to comment
Share on other sites

I've walked the walk, I don't have anything to prove. You see, the SCIENCE is on my side. It's in this thread. It's in the Klax thread. It's on the U235 blog. It's even on AO's blog, if you care to read it.

 

You don't get it. That's fine, I understand. Comprehension isn't for everyone.

 

I don't know what you think Gorf proved. I certainly don't want to follow in his footsteps. At anything. If you feel something needs to be proven, go find a book on assembly, grab the tools and code it yourself. When you've got 60fps full screen 3D anti-aliased polygons zooming around everywhere, please, come back and prove me wrong.

 

Funny, I don't see you doing that. How come I have to prove something doesn't work, but you can't prove it does? Surely it's much easier for you? I mean it does work, right? Off you go....

 

But wait. You are not a coder. That's what you'll say. And yet, we're supposed to take your word on coding related matters. How's that work, again?

 

So, instead of you challenging me to fail at something, I challenge YOU.

 

Go away, code your GPU in main 3D engine. And come back and show us all what fools we've been all these years. We're waiting!

 

 

 

Yes CJ, you have to prove it. You don't do 3D. You do 2D. and that's awesome. But you're just not a 3D guy.

 

I'm grown up enough to realize that those who try to debunk the GPU in Main thing as anything good either ignore points made in its favor, go round and round saying the same statements over and over again that have already been addressed. Or ignore them entirely. I'm grown up enough to realize that you and others aversion to this may well stem from some type of jealousy or clique mentality.

 

Yes CJ you're going to have to prove it. Walk the Walk. Just like Atari Owl did and Gorf.

 

Edited by CyranoJ
  • Like 1
Link to comment
Share on other sites

I've walked the walk, I don't have anything to prove. You see, the SCIENCE is on my side. It's in this thread. It's in the Klax thread. It's on the U235 blog. It's even on AO's blog, if you care to read it.

 

You don't get it. That's fine, I understand. Comprehension isn't for everyone.

 

Yeeeahh, ok buddy. Have fun.

 

Roommate and I going to play Bubble Bobble now. :)

Link to comment
Share on other sites

Yep, and the only reason you can play that port on the jaguar is because the screen conversion and game sprite replacements are running on the GPU in local. It'd be way too slow if we used your mythical fix-all coding techniques - and guess what? That code is all one big unrolled loop, LOL.

 

Maybe you should ask your GPU in main buddies to match the speed I got using their ossum belief-engine? Walk the walk, you know?

 

Thanks for making my point so succinctly ;)

 

 

Yeeeahh, ok buddy. Have fun.

 

Roommate and I going to play Bubble Bobble now. :)

  • Like 2
Link to comment
Share on other sites

How come suddenly they have to match what you do but you don't have to match what they did? They are not even around anymore. But the stuff they did still is. Can Bubble Bobble be done in main at a runnable speed? I don't know. Still has no bearing on whether its as useless as you say it is. And never said it was a 'fix-all' or Panacea as you guys like throwing around. Here you go again beating the same statements over and over. OK CJ.

 

Yep, and the only reason you can play that port on the jaguar is because the screen conversion and game sprite replacements are running on the GPU in local. It'd be way too slow if we used your mythical fix-all coding techniques - and guess what? That code is all one big unrolled loop, LOL.

 

Maybe you should ask your GPU in main buddies to match the speed I got using their ossum belief-engine? Walk the walk, you know?

 

Thanks for making my point so succinctly ;)

 

Link to comment
Share on other sites

How come I 'have to' match what they did when all they did was wrap some logic around the Atari reference renderer?

 

How come I have to prove that something they didn't do (produce a 3D engine using gpu in main) is not feasable - when I don't believe it is? Yes, it's possible, but it'll run like dogs-balls slow.

 

How does anyone even prove that? It's as flawed as the rest of your un-educated mumblings in this thread! How come you don't have to prove it is? How does that make sense at all? How? How? How!

 

You do know you sound just like Steve Scavoneeeeeee when you go on like this? And he was clearly sane :P

 

Off you go, MAKE what you believe to be true happen. Prove us all wrong. Because I sure as shit can't code something that clearly can't be coded. You think it can, go for it!!!!!! I'll glady admit to being wrong when you show us all proof we are.

 

GPU in main! GPU in main! GPU in main! Did I just summon Gorf, beatlejuice style? LMFAO.

 

 

How come suddenly they have to match what you do but you don't have to match what they did? They are not even around anymore. But the stuff they did still is. Can Bubble Bobble be done in main at a runnable speed? I don't know. Still has no bearing on whether its as useless as you say it is. And never said it was a 'fix-all' or Panacea as you guys like throwing around. Here you go again beating the same statements over and over. OK CJ.

 

Edited by CyranoJ
  • Like 1
Link to comment
Share on other sites

They have talked about the techniques. They have talked about the advantages. Each point which you guys keep ignoring. And then they produced actual proof that can run on our Jags. Its there. We see it. You have yet to match it. This shit's easy! Remember?

 

Whip out the Atari Renderer and match whats seen in Surrounded doing it the standard way and I'll shut up. I'll be the first to defend you next time this is brought up.

 

Until then I'm done.

 

How come I 'have to' match what they did when all they did was wrap some logic around the Atari reference renderer?

 

How come I have to prove that something they didn't do (produce a 3D engine using gpu in main) is not feasable - when I don't believe it is? Yes, it's possible, but it'll run like dogs-balls slow.

 

How does anyone even prove that? It's as flawed as the rest of your un-educated mumblings in this thread! How come you don't have to prove it is? How does that make sense at all? How? How? How!

 

You do know you sound just like Steve Scavoneeeeeee when you go on like this? And he was clearly sane :P

 

Off you go, MAKE what you believe to be true happen. Prove us all wrong. Because I sure as shit can't code something that clearly can't be coded. You think it can, go for it!!!!!! I'll glady admit to being wrong when you show us all proof we are.

 

GPU in main! GPU in main! GPU in main! Did I just summon Gorf, beatlejuice style? LMFAO.

 

 

Link to comment
Share on other sites

If you can't see what any sane person can see - that if 2D is slower, then 3D will be even more so, then there is no chance of changing your mind. How do you think polygons are filled? They're flat on the screen. They're made up of 2D lines. Remember, drawing 2D lines is slower....

 

As I have stated several times, there is nothing to prove. I have said my piece, you have said yours. I'm not going to be drawn into a code-pissing contest with you, what would be the point?

 

I'm certainly not going to code something abstract to not prove a point to just you - which is what you are asking me to do. And I'm certainly not going to try and code anything as dull and worthless as a Surrounded clone. Why would anyone do that, other than to prove GPU in main works? Yes, it works, doesn't speed the system up tho compared to local. And if I did, it wouldn't prove anything. You'd just come up with some other reason to invalidate the point, wouldn't you? Round and round in circles.

 

If you think using the Atari renderer is proof that gpu in main is quicker.. good for you! Yay, Have a street party. Enjoy your jag.

 

Like I said, if you think you can knock this out the park, if you think you can make the Jag perform faster using a slower memory access, if you truly believe all that, the onus is on you to prove it. Not on the rest of the world to not prove it. That's how discoveries are made and documented. No amount of wishing and praying and repeating hypnotic mumblings will make it happen.

 

Owl is close, but again, I bet his main loop is in local. And then he has the issue of not having any game logic or ram left (You'll note, he swaps binaries when you go inside buildings) - really nice demo, though. His own blog even says its a very restricting methodology. Did you not reads his words? Does he have to code something to prove his points? No, he already has. And he admits himself it's edge case useful.

 

Gorf never even wrote a renderer, For all his professed 3D knowledge what did he achieve? Bolting stuff to the Atari code. And whenever he was challenged he hid behind 'I'm not telling' or got stroppy and started insulting people. Great job, Steve!!!!

 

They may have talked about the techniques, they may have talked about the advantages, but they didn't make it happen. And I doubt you will either. I'd love to be proven wrong. But I just don't see any game fully running GPU out in main that is mind mumbingly amazing.

 

I don't know what you are attempting to achieve here, other than a cheap thrill attempting to get a rise. If that's the case, you didn't.

 

*shrug*

 

They have talked about the techniques. They have talked about the advantages. Each point which you guys keep ignoring. And then they produced actual proof that can run on our Jags. Its there. We see it. You have yet to match it. This shit's easy! Remember?

 

Whip out the Atari Renderer and match whats seen in Surrounded doing it the standard way and I'll shut up. I'll be the first to defend you next time this is brought up.

 

Until then I'm done.

 

  • Like 1
Link to comment
Share on other sites

Any chance of getting the 'up is jump' thing fixed on Bubble Bobble?

 

If you can't see what any sane person can see - that if 2D is slower, then 3D will be even more so, then there is no chance of changing your mind. How do you think polygons are filled? They're flat on the screen. They're made up of 2D lines.

Link to comment
Share on other sites

Yup, that's about as relevant to the quote as the rest of the cross examination. However, to answer your question with a question. What's wrong with it? And try in the bubble bobble thread, not here under a completely unrelated post. Remember that comprehension thing I mentioned? :D

------------------

Any chance of getting the 'up is jump' thing fixed on Bubble Bobble?

CyranoJ, on 28 Feb 2014 - 6:46 PM, said:snapback.png

If you can't see what any sane person can see - that if 2D is slower, then 3D will be even more so, then there is no chance of changing your mind. How do you think polygons are filled? They're flat on the screen. They're made up of 2D lines.

Link to comment
Share on other sites

The next counterpoint should be in code, right? A sanity check for the O.P.s findings?

 

I was confused then, I misread that as Object Processor :D I wondered what the Object Processor was finding :D :D :D

 

That is the usual approach of science based studies, you perform an experiment, release your methods and findings and then others can comment on your work and either accept or debunk it etc. This is why I included my payload code that records the times and does the busywork.

 

I cannot see how it can be found to be wrong in it's claims, simply looking at the electrical properties of the system and a bit of reading agrees with it, this was just a way of confirming things. STuff to consider is the difference between DRAM and SRAM, these are two very different memory technologies, excluding everything else in the system these probably add the largest factor to the speed.

 

DRAM is essentially a lot of small capacitors, you charge of empty one to set a bit high or low. As they are capacitors, they leak, so periodically you have to read their current state and top them back up as needed. This process (known as refresh) is usually handled by the hardware of a system transparently to your code. You can tweak how often it happens in the jag by playing with the memcon registers :D you can turn it off too... (I may try that see if I can get a nice rotting bitmap or something :D )

 

SRAM however is a much more complex solution, it uses D Flip flop circuits (http://en.wikipedia.org/wiki/Flip-flop_%28electronics%29#D_flip-flop). These latch onto a state (high or low) and maintain their own state, they are significantly more complex using several transistors per bit! Thus making it very expensive RAM in comparison to DRAM. It does have the benefit of no need to refresh, and also near instantaneous response times. This is why SRAM is used for CPU cache RAM even in modern computers.

 

 

It seems like from the discussions whilst I was asleep :) that there is still a lot of passion around this technology. However people need to remember that speculating on how others have used GPU in main without actually knowing and understanding their approach is dangerous. Just because one person has used something to solve a problem doesn't make that the only way, or the best way to solve the problem. There are possibly other factors outside of the actual code and problem to consider.

 

The GPU WILL be faster than the 68K when running from main RAM. There are 'likely' benefits to the overall system performance if you disable the 68K. However this is also likely to require you to find another way to do the jobs the 68K was doing for you. If the 68K was performing a simple task once every second, a few lines of ASM, nothing terribly performance dependent, it is reasonable to assume that rewriting this to run as GPU code from main RAM would be sufficient to perform the task and also give a slight performance boost to the system. The work required to work this small task into your code living within Local RAM of the GPU, may simply be too much hassle or an impact to bother with. In these cases GPU in main is likely to be a useful solution.. It is not the ONLY or possibly the best solution, but then completely refactoring all your code to make it perfect may likely be as huge undertaking and a lot of work, possibly for a 0.5% gain in performance.

 

Writing code on a system with such limited trade offs is going to ultimately be a balancing act of tradeoffs.

 

I am rambling now.. :D

  • Like 3
Link to comment
Share on other sites

AtariOwls blog addressed speed comparisons of the GPU vs the 68k out in main as far as all that goes as well and no one has disproven that yet.

There's some stuff there but it's all a matter of what you take from it based on your understanding. I'm not sure why you appear to be in full on damage control mode over something I wasn't aware that you actually had personal understanding of. Seems oddly invested somehow?

 

Anyway, here's what Owl said on his blog:

 

Speeds have been typically in the range of 20-90% of the speed of the same code running from GPU local ram. (By which i mean 5 times slower to almost the same speed). It would therefore be foolish for example to put a tight, commonly called routine in main ram, its far better called in local, particularly if it is required to perform LOAD or STORE instructions.

 

Let's look at it from a maths point of view... I believe the speed of the Atari ST 68k at 8MHz was reported as being very roughly about 1MIP... Therefore at 13.3MHz this should be about 1.65MIPS... in theory the GPU can reach 26.6MIPS, in practice this tends to be more like 17MIPS in other words 10x the speed of the 68k, even if we run at 20% its still twice as fast as the 68k and that's not even taking into account the effects on BUS

Is this what you are basing your claims on? That, apparently, given even the worst case scenario of a 20% slower execution speed, that it's effectively twice as fast based on MIPS?

 

MIPS is a pretty wooly way to compare even similar architectures, but practically meaningless between RISC and CISC. For me, the claims are simply misleading and I never understood why he chose to use them here as I'd have thought he should be the first to see how lacking in merit such a claim is. A better way to compare them directly might be to write some routines that perform exactly the same tasks and go from there. Start with the same data, process it the same way, repeat however many times to allow for meaningful results and profile the two.

 

A good example to highlight the misleading nature of the MIPS claim might be to add one binary coded decimal number to a second. The 68k's ABCD instruction vs a GPU implementation. Have the GPU do that and compare how many instructions it takes vs the 68k. Now see why MIPS is often referred to as "Meaningless Indication of Processor Speed" and not something we can use to prove anything one way or the other.

 

So now you can see you also have to consider that the path from A to Z using the 68k might be a very different path using the GPU or DSP and doing so might mean you're working in a completely arbitrary and unproductive way due to the inherent nature of the processor and how it does its thing... comparing even direct like-for-like implementations of the same routines could be unfair as one might not be practical or lend itself to the task (it works both ways).

 

What I'm saying is, it's maybe best not to blindly believe and regurgitate unless you understand the concepts yourself. When you know the background to the information you are armed with or have an understanding of a particular idea or concept in order to accurately represent them, you're much more likely to be well received. You're doing nobody any favours otherwise, least of all yourself. More generally speaking, it's unproductive to simply just accept another's claims regarding performance until you're happy their research was conducted in a controlled and even way and that the conclusions derived from them are scientific and free from any bias... the science behind the pure numbers can be presented in many ways via the magic of statistics... it's why politicians are so fond of its use ;0)

 

And after all that... here's what Owl also said:

 

Is it worth running from main instead of paging code to/from the GPU local?

 

Ummmmmmm.... Sometimes yes, sometimes no. Its a hard question to answer and depends on a great many factors including the BUS load and the code in question.

It. Depends. Same old story as any other aspect of programming. You do what makes sense based on any number of factors. It's not a binary question, not a matter of right and wrong, clever and lame, productive and lazy...

  • Like 3
Link to comment
Share on other sites

Yes CJ, you have to prove it. You don't do 3D. You do 2D. and that's awesome. But you're just not a 3D guy.

I've seen the light. It's clicked, finally!

 

You're one of "those".

 

Someone who really, truly believes that 3D is some kind of voodoo that only a select few predisposed to such wizardry and with medichlorians levels through the roof can ever even think of doing... and not just implementing a few formulas some other guy came up with anyway. Or worse, actually using code someone else wrote anyway.

 

SMFH

 

I'm grown up enough to realize that those who try to debunk the GPU in Main thing as anything good either ignore points made in its favor, go round and round saying the same statements over and over again that have already been addressed. Or ignore them entirely. I'm grown up enough to realize that you and others aversion to this may well stem from some type of jealousy or clique mentality.

Would it be "grown up" enough of me at this point to request you take a long, hard look in the mirror. All that stuff you're saying while you're pointing your finger... you do see the parallels, right?

 

Yes CJ you're going to have to prove it. Walk the Walk. Just like Atari Owl did and Gorf.

I thought you were supposed to be Gorf's mouthpiece on the forums he ejected himself from? You should be well aware that Gorf has never claimed to have written a 3D engine for Jaguar. He's used Atari's and that modified by either himself or JagMod.

  • Like 1
Link to comment
Share on other sites

I'm in the "other" category which is worse. I think I suggested writing a high level assembler that seamlessly takes care of code/data swapping to/from local and retains niceties of high level constructs like IF/THEN/ELSE. I provided a link (uc65) that has nothing to do with the 68k or Jaguar at all.

 

Basically, I nodded in agreement with everyones viewpoint and threw in my own based on zero experience. Had JSII survived my own logic paradox would have made it implode anyway :)

Link to comment
Share on other sites

Only Owl can answer that one.

 

I suspect a few things - that he is running GPU in local for most of the render loop, and that he's running smaller single shot code chunks on the GPU in main ram with the 68000 disabled.

 

In this case, swapping probably would slow things down considerably. You'd have to swap out 4k for a rarely called function. However, if indeed (as I suspect) the vast majority of the inner loop code is running in local you cannot use this as a case for 'GPU in main saves the day'.

 

I'd also warrant that had he decided to proceed with the project he would not have written the RPG game code on the GPUs.. In main.. Nobody is that insane, surely?

 

I may be well off base there, only the man himself can answer, but I strongly suspect that is the case.

 

 

 

Sorry didnt notice this thread too.

 

No, you're not off base.

 

Might as well copy the points here too for completeness.

 

 

For what its worth...

 

Will it fix 3D and double frame rates? No. Not unless your code doesn't double buffer and is right on the tipping point from 2 to 1 frame per draw.

Will it miraculously improve any game? No

Is it a place where one should run code which reads a lot of external data or tight loops? No

 

Is it likely to be of use to the majority of homebrew games? No

Does this matter? Surely not

 

Is it potentially quicker than the 68k? Sometimes

Can it save time instead of blitting chunks of code in and out of RISC local RAM? Yes.

Did it improve the performance of AOP? Yes.

How did I use it? I had an unrolled framework running from main which called the loops which ran in local. This was done in order to keep speed critical code in local, and without needing to swap in code

 

Did i invent it? I never claimed that, I'm expect people discovered it before me. I just wasn't aware of that. And Gorf DID narrow down the rules better than me.

Why didn't i talk about it before SMAC? Because the Jaguar community has always been extremely hostile with people willing to tear down anything one might do. With something as delicate as this, talking about it was asking for trouble. I have had people express a wish that my jaguar equipment explode in my face. I saw no benefit to exposing myself to that.

 

Has the sh**storm that it STILL generates not proven me TOTALLY correct about that?

#

 

And one more question.

 

Had the local RAM been big enough that i would not have had to swap segments would it have been faster still, all in local? Yes. But it wasn't. And using the GPU in main method gave me enough improvement that it was worthwhile. To me.

Edited by Atari_Owl
  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...