Cold, Hard Cache Insomniacs Cache Simulator
Vložit
- čas přidán 29. 07. 2024
- In this 2017 GDC session, Insomniac Games' Andreas Fredriksson presents Insomniac Games' Cache Simulator, an in-house tool developed to gain additional insights into cache performance and utilization of arbitrary CPU code.
Join the GDC mailing list: www.gdconf.com/subscribe
Follow GDC on Twitter: / official_gdc
GDC talks cover a range of developmental topics including game design, programming, audio, visual arts, business management, production, online games, and much more. We post a fresh GDC video every day. Subscribe to the channel to stay on top of regular updates, and check out GDC Vault for thousands of more in-depth talks from our archives.
So this is how they archive such amazing visuals in old hardware that is not ridiculously powerful hardware, by being extremely memory efficient and taking the time to optimize every part of the Game!
Simply Amazing!
As someone who's been playing around with CheatEngine a lot, this smells like familiar black magic of the forbidden arts of modding, cheating and reverse engineering.
using what was already there in a clever way - love to see it. cant wait to see the legacy of what this turns into
thank you for releasing this talk!
mind-blowing
Did the people with questions at the end not listen to the beginning of the talk?? The first thing he covered was how this compares to cachegrind and hardware performance counters.
Insomniac I love you guys!
Edit: This is what we call a true optimisation. *cough*Ubisoft*cough*
Well insomniac make games for singular system PlayStation mainly there games have to be infinitely optimised whereas Ubisoft make games for any thing called a computer they'll never be optimised
@@machinefannatic99 I'm sure ubisoft has optimization tools too. You can't make 4-5 big AAA ass games without breaking that fast every year.
They probably have super fast pipeline also remote teams from different countries-different time etc.
ThePaypay88 doesn't matter how many optimising tools you have you can't make a well optimised game when it has to work for a dozen devices. Insomniac games are locked 30 and locked 60 because they work for one device a PlayStation so they can squeeze as much performance on it that they want
@@machinefannatic99 Not at the time of this presentation, when they used to be independent.
Keep local cache positions in parallel array ( also : avoiding the GetPosition() call entirely )
Result : 650 us/frame saved
Wow. Just Wow. I didn't get most of it, just concepts and ideas and I'm amazed by the knowledge needed to work on this level. I'm not scared by assembler or c++, yet doing this is so much outside the "normal" programming that I'm simply unable to think about it... Just the fact that you add a significant performance boost by changing the order of properties is simply baffling (from the algorithm perspective).
I understand the problem itself, but I would be only able to do some pragma comments, like "optimize this loop to fit into the cache" :-D. I know that I'm just some random programmer, but it nice to be reminded how the gods think.
its not rocket science. ( maybe it is because game devs usually hired to work on rockets since they are pretty similiar)
but you just read books , do some experiments take some classes. It's just different kind of path in computer science. That's not flashy like AI or web development but hero we need.
@@ThePaypay88 I get it, it's just that If you want to program the game, you go from really high concepts (city life manager) to really low concepts (this instruction misses L1) and you just cannot grasp all of it (and then there is the rest of the game).
Which is I guess why indies tend to be pretty demanding all things considering. I just cannot read upon AI, physics, game algorithms, Unreal architecture, c++ principles, networking, ... and add this layer on top of it. It's simply impossible. But the people that can work on this level are the guys who make Tsushima loading speeds or Factorio scale possible, I guess.
My respect is partly based on the fact that they actually can spend time on these things. I assume that working on that was incredibly rewarding.
@@GonziHere i mean thats why most indies use game engines which hopefully do some optimization ( not to extent like this ) obviously.
its time-money balance.
check Chermo on youtube , he has lots of good tutorials
@@UgurkanAtes Yep, I watch Chermo - but that's pretty much what I mean... he barely touches on these topics (for obvious reasons).
Really great talk. Interesting that this would be released publicly just after PS5 was released. PS5 has a ton of cache customizations so it makes sense they would use something like this as well.
It wasn't. This is from 2017, just was only on the site and not on CZcams yet.
@@Rakkoonn I thought those on the site weren't public. There is a lot you can't watch there. But yes it was a great talk.
Isn't Andreas Fredriksson Swedish? 😀 Great presentation by the way. Heja Insomniac!
Hmm.. this got me curious, now i wanna implement it into Unity 👀
Well the author (Anderson) and Mike Acton (former engine director at Insomniac, his "boss" he mentions in the talk) work both at Unity now on DOTS.
Sound very promising for Untiy
@@snaldan7228 I know Anderson, is two heads up from me, he's my managers manager :P
Pretty good and lmao I was calling myself embedded developer , embedded developer my ass ( me )
One thing I didn't understand , why they are not using Valgrind since all playstations are based on some kind of openBSD(linux?). Maybe this cache sim was before and they were using VR-windows-xbox games ?
3:03 - he references valgrind at that timestamp
@@Shl0kk yeah but he says its on linux so they dont use it. I guess they develop games on windows and just compile for Sony machine ? IDK how console exclusive development works really. But what im guessing sony have some glorofied IDE access via ssh to devkits or something . So they probably use VStudio and connect to devkits. But what i dont understand since they compile for linux(ps4 code) i thought valgrind would work
IDK really
@@UgurkanAtes Perhaps windows is their preferred development environment ... but I think it's due to their engines needing to work on more than just playstations, hence, why he did that demo on simulating a jaguar console - and also, apparently, because valgrind is really slow
@@Shl0kk yeah thats what i said ( all this work was before sony acquisition ) they were doing pc vr games , mobile and xbox -pc stuff
@@UgurkanAtes Yes, development for consoles is usually done on Windows in Visual Studio and then remotely deployed to a console devkit.
Maybe there would be some way to get valgrind working on it, but the devkits don't give you the same level of access to the core OS as you'd get on a PC. The underlying OS might be based on FreeBSD (or some other open source OS), but you can only really use it via the tools provided by the manufacturer. So it might be tricky to get that working unless it's something that's already supported.
Even if you could get that to work, having something you can use on Windows is more convenient because then you don't need a devkit.
1st
second
@@senorbill374 third