Hello,
I want to ask this here, since theres really much technical talk here and I know for sure that the devs of factorio are real cracks in topics like this.
The new CPU's by AMD, Ryzen, came out this week. In the technical news I read that people are complaining about them a little since theyve seen good benchmark results from these cpus. Now they see that they don't behave that well (compared to Intel's newer i7 CPU's) in games in Resolutions like 720p or even 1080p. AMD Responded to this, saying that games are not optimized for these new CPU's.
As a Softwaredeveloper myself, I'm really interested in this. How do you actually optimize games for specific CPU's? Isnt the CPU considered to be used as a blackbox like most hardware nowadays? When you develop general software, you don't consider a cpu to be of one kind or another. Its like simply given that you command the cpu to run commands and thats all.
I would really love to get a little technical insight on how I should imagine optimization of a game for a certain CPU.
Greetings,
Ravior
How are games optimized for specific CPU's? (f.e. Ryzen)
-
- Inserter
- Posts: 31
- Joined: Sat Aug 09, 2014 9:05 pm
- Contact:
Re: How are games optimized for specific CPU's? (f.e. Ryzen)
Well, you can't just admit you've shoved a piece of shite to customers. You make some evasive unverifiable statement to explain why people don't get what they've expected. Preferably in such statement you don't give any concrete names or direct accusations.
That's exactly what you have here.
As for AMD and benchmarks, AMD is known to compensate the quality of a processor core with the numbers they come in. It is a safe bet that in any price range the amd processor comes with twice as much cores as intel one.
Having many cores is obviously good for multithreaded tasks.
And quite a bit of benchmarks are mutithreaded. Moreover, some of them, for example those with FFT or compression algorithms, or videos, etc... may even be split into threads ahead of time.
So in those, multitude of cores comes in handy.
Most algorithms of the consumer grade programs (games mostly), on the other hand, are quite often too entangled to be split into concurrent tasks in a way that would bring a notable speedup. Hence most of them only use single thread of all available.
There's also been a detailed discussion of multithreading in this thread.. The wall of text there is worthy of a scientific symposium on computer architecture, but if you look up posts by factorio staff, those are really on topic.
That's my bet on amd failures.
As for optimizing a program for a CPU, this does happen, when you're going full out.
There are proprietary libraries written with intimate knowledge of the underlying architecture.
There are also, tricks, that allow a program to generate less work for the machine on a particular architecture.
This for example is easily googlabe from intel:
http://www.intel.com/content/www/us/en/ ... anual.html
Guess there might be found something similar for AMD.
This doesn't often happens in game development (notorious game engines do that however).
That's exactly what you have here.
As for AMD and benchmarks, AMD is known to compensate the quality of a processor core with the numbers they come in. It is a safe bet that in any price range the amd processor comes with twice as much cores as intel one.
Having many cores is obviously good for multithreaded tasks.
And quite a bit of benchmarks are mutithreaded. Moreover, some of them, for example those with FFT or compression algorithms, or videos, etc... may even be split into threads ahead of time.
So in those, multitude of cores comes in handy.
Most algorithms of the consumer grade programs (games mostly), on the other hand, are quite often too entangled to be split into concurrent tasks in a way that would bring a notable speedup. Hence most of them only use single thread of all available.
There's also been a detailed discussion of multithreading in this thread.. The wall of text there is worthy of a scientific symposium on computer architecture, but if you look up posts by factorio staff, those are really on topic.
That's my bet on amd failures.
As for optimizing a program for a CPU, this does happen, when you're going full out.
There are proprietary libraries written with intimate knowledge of the underlying architecture.
There are also, tricks, that allow a program to generate less work for the machine on a particular architecture.
This for example is easily googlabe from intel:
http://www.intel.com/content/www/us/en/ ... anual.html
Guess there might be found something similar for AMD.
This doesn't often happens in game development (notorious game engines do that however).
I do mods. Modding wiki is friend, it teaches how to mod. Api docs is friend too...
I also update mods, some of them even work.
Recently I did a mod tutorial.
I also update mods, some of them even work.
Recently I did a mod tutorial.
Re: How are games optimized for specific CPU's? (f.e. Ryzen)
Isn't that a job for the compiler? Well maybe stuff like memory locality, cache optimization and such. But those are generic in nature.
I guess that game developers don't really do such optimizations as one of their goals. But if they are highly successful (like for example a popular game engine) then they might be approached by the manufacturers offering libraries and such to make the engine more optimized for their specific CPU.
I guess that game developers don't really do such optimizations as one of their goals. But if they are highly successful (like for example a popular game engine) then they might be approached by the manufacturers offering libraries and such to make the engine more optimized for their specific CPU.
Re: How are games optimized for specific CPU's? (f.e. Ryzen)
"AMD Responded to this, saying that games are not optimized for these new CPU's."
AMD never said that. Whatever they said applied to the platform and every aspect of it. And knowing how to optimize isnt done in a quick explanation, you need at least some basic understanding of programming.
AMD never said that. Whatever they said applied to the platform and every aspect of it. And knowing how to optimize isnt done in a quick explanation, you need at least some basic understanding of programming.
-
- Inserter
- Posts: 31
- Joined: Sat Aug 09, 2014 9:05 pm
- Contact:
Re: How are games optimized for specific CPU's? (f.e. Ryzen)
Hello there, and thank you for your rather unfriendly reply.aober93 wrote:"AMD Responded to this, saying that games are not optimized for these new CPU's."
AMD never said that. Whatever they said applied to the platform and every aspect of it. And knowing how to optimize isnt done in a quick explanation, you need at least some basic understanding of programming.
As I've stated, I'm a developer myself. So I think I have at least some basic understanding of programming.
Please go ahead and explain it if you can.