Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
But at what AI complexity? You can't just go by body count or on-screen results and conclude that comparable looking games in terms of amount of content require comparable workloads and should perform similarly on the same hardware. AI is one of those features that can expand limitlessly. Heck, we haven't got a computer with enough power to simulate one human brain yet, so clearly simulating a city is going to be an impossibly complex job. One so complex, it's not the slightest bit realistic in the solution used, but the approximations can be improved exponentially to provide more realistic results.Heck, Scarface The World is Yours was a pretty good open world game on the Wii, honestly, it had more NPC's running around than Watch Dogs does.
Why are we ignoring the SPEs for AI? Ray tracing for line-of-sight and audio awareness, spatial searching for proximity tests, etc. are part of AI and great (or moderate) fits for SPEs.Against the in-order 3.2Ghz PPE in PlayStation 3?
Why are we ignoring the SPEs for AI? Ray tracing for line-of-sight and audio awareness, spatial searching for proximity tests, etc. are part of AI and great (or moderate) fits for SPEs.
You're right. AIs don't need to react to other AIs instantly, it'd be more realistic to leave it a frame or two to mimic human reactions.AI agents wouldn't need to be aware of other AI's decision making (in fact, that'd go beyond AI to precognition!). Each agent only needs evaluate its place. This is serial processing. And I'm sure clever algorithms can create fancy multi-dimensional datasets that encapsulate the various state of play for key objects for fast evaluation, calculating them all individually and then creating an overarching representation.
You assume that Wii U's CPU can't do it and you probably ignore advantages that it has...AI agents wouldn't need to be aware of other AI's decision making (in fact, that'd go beyond AI to precognition!). Each agent only needs evaluate its place. This is serial processing. And I'm sure clever algorithms can create fancy multi-dimensional datasets that encapsulate the various state of play for key objects for fast evaluation, calculating them all individually and then creating an overarching representation.
But even if not, Wii U's maths powers are poop, but these are important in AI. Calculating distances, intercepts, collisions, mathematical weightings, etc. Cell may not be the best at churning through finite state machines, but Wii U certainly has its own fair share of AI shortcomings such that it shouldn't be assumed Espresso can handle everything AI that PS360 can.
You have quoted a lot of other peoples opinions from 2006/7. Im not really going to address the individual problems in this post because I feel there are people on this forum with far more knowledge who can do so. But I would suggest you fact check things before you post them, just because someone said it on the internet doesn't make it so.
Opinions of people that worked on hardware and has relevance today...
Just noticed Cell has only one thread per core...
IIRC every console cpu since the PS2 had SIMD and SPE's are inherently a part of cell's architecture, to not take them into account is reducing cell to a dual core 1.6ghz in-order dual issue (I think) CPU - they are meant to be used by design.You can play SIMD and SPE card if you want as a last resort
In the history of "normal applications" I'm rather certain there has never been code 100MB in size or anywhere near that, and since all code exhibits locality breaking large code into smaller pieces becomes an exercise in caching. In addition if you've ever coded or looked into coding a game/3d engine you would know the access patterns to large data sets don't always exhibit the problem you're pointing out. SPE's do have branch hint instructions."Next you would think that the PS3 (just like the 360) would be able to segment the game control plus AI code into one core and the graphics rendering code into another core. However that is not possible! Since the total application code may be about 100 MB and the SPE only has 256KB of memory, only about 1/400 of the total code can fit in one SPE memory. Also since there isn't any branch prediction capabilities in an SPE, branching should be done as little as possible (although I believe that the complier can insert code to cause pre-fetches so there may not be a big issue with branching).
IIRC SPE's can initiate DMA transactions on there own and therefore traverse complex data structures on there own, I don't remember if there is "special ways" to get data from the PPU cache to an SPE LS w/o hitting memory first. If I'm not mistaken software pipelining was used to mitigate the latency incurred by DMA transfers, but I could be wrong - don't really remember.Even if code can be found that can be segmented, data between the PPE and the SPE has to be passed back and forth via DMA which very slow compared of a pointer to the data like the 360.
That is a brazen assumption on your part.Wii U GPU has Wii GPU in itself thus inherited its 1MB SRAM texture cache and 2.25MB Framebuffer that likely can serve different role otherwise it would be a waste of silicon for Nintendo.
I'm bored and have some time, so I'll bite.
IIRC every console cpu since the PS2 had SIMD (You're assuming I didn't know) and SPE's are inherently a part of cell's architecture, to not take them into account is reducing cell to a dual core 1.6ghz in-order dual issue (I think) CPU - they are meant to be used by design. Cell is Tri-Core 3.2Ghz,.. Its dual issue.
In the history of "normal applications" I'm rather certain there has never been code 100MB in size or anywhere near that, and since all code exhibits locality breaking large code into smaller pieces becomes an exercise in caching. In addition if you've ever coded or looked into coding a game/3d engine you would know the access patterns to large data sets don't always exhibit the problem you're pointing out. SPE's do have branch hint instructions. Really? Ok.
IIRC SPE's can initiate DMA transactions on there own and therefore traverse complex data structures on there own, I don't remember if there is "special ways" to get data from the PPU cache to an SPE LS w/o hitting memory first. If I'm not mistaken software pipelining was used to mitigate the latency incurred by DMA transfers, but I could be wrong - don't really remember.
That is a brazen assumption on your part.
Anyway this is all kinda OT for this thread so I'll shut up now, sorry for the interruption.
"We use the eDRAM in the Wii U for the actual framebuffers, intermediate framebuffer captures, as a fast scratch memory for some CPU intense work and for other GPU memory writes."
http://hdwarriors.com/general-impression-of-wii-u-edram-explained-by-shinen/
They can access with CPU the 32MB pool in GPU directly, so its probably possible to access other two if not already used...
"I believe if you program only against one main CPU (like we do for pretty much most emus), you would find that the PS3/Xenon CPUs in practice are only about 20% faster than the Wii CPU.
You can't read (or jumped on one post and didn't bother reading the thread). I had acknowledged Wii U has some strengths, but was challenging the view that Cell and Xenon were lacking by pointing out a good part of modern AI involves lots of maths and that's an Espresso weakness.You assume that Wii U's CPU can't do it and you probably ignore advantages that it has...
The ring bus, I believe. Yep.I don't remember if there is "special ways" to get data from the PPU cache to an SPE LS w/o hitting memory first.
I'm not assuming anything, you were talking about "pulling cards", how can you pull a card that is in everyones hand? Cell has one PPU @ 3.2 ghz, it handles two threads - IIRC they are scheduled in a round robin static fashion - hence the 1.6ghz number.IIRC every console cpu since the PS2 had SIMD (You're assuming I didn't know) and SPE's are inherently a part of cell's architecture, to not take them into account is reducing cell to a dual core 1.6ghz in-order dual issue (I think) CPU - they are meant to be used by design. Cell is Tri-Core 3.2Ghz,.. Its dual issue.
Assuming your source is accurate, thank you I learned something new, edram/esram for gpu's as far as I know has never been implemented being directly addressable by the CPU or any other bus master besides (maybe) DMA. You also mention the texture cache... I see no support of that claim in your link. However I'd like to point out you point out problems with cell's local stores yet you don't point out the problems with this access pattern, why?"We use the eDRAM in the Wii U for the actual framebuffers, intermediate framebuffer captures, as a fast scratch memory for some CPU intense work and for other GPU memory writes."
While everything is hooked up to the EIB cache's aren't normally directly addressable, so unless something special was built in to the bus interface of the PPU... but I might be missing something in regards to cache coherence in regards to DMA (dirty bit causing transfer to hit cache). I looked through your article and couldn't find anything to clear that up.The ring bus, I believe. Yep.
Aren't all access's to a SPU's local store done through DMA? If so unless the DMA unit is cache coherent you can't go straight from cache to local store, hence the cache line/s would need to be flushed (used to update RAM - I'm not sure that is the right term) first. I'm unclear on this behavior and never really bothered looking it up.What do you mean by 'hitting memory'? You can send a package from any core to any other core via the EIB without having to go out to and back from RAM.
Apparently PPU can directly access SPU local store directly, but it is more efficient to use DMA.Aren't all access's to a SPU's local store done through DMA? If so unless the DMA unit is cache coherent you can't go straight from cache to local store, hence the cache line/s would need to be flushed (used to update RAM - I'm not sure that is the right term) first. I'm unclear on this behavior and never really bothered looking it up.
BTW - I looked up the Wii-U CPU and according to wikipedia it can retire four instructions per clock, I'm not sure how many of those are ALU ops though.