Jump to content

Intel or AMD


Recommended Posts

Looks like we need a 64 core Threadripper :cry:

 

Joking aside, does using a separate thread mean it can or will be moved to another core ?

Gigabyte Aorus X570S Master - Ryzen 5900X - Gskill 64GB 3200/CL14@3600/CL14 - Asus 1080ti EK-waterblock - 4x Samsung 980Pro 1TB - 1x Samsung 870 Evo 1TB - 1x SanDisc 120GB SSD - Heatkiller IV - MoRa3-360LT@9x120mm Noctua F12 - Corsair AXi-1200 - TiR5-Pro - Warthog Hotas - Saitek Combat Pedals - Asus PG278Q 27" QHD Gsync 144Hz - Corsair K70 RGB Pro - Win11 Pro/Linux - Phanteks Evolv-X 

Link to comment
Share on other sites

Hopefully with Vulkan, more cores will be more important then single core clock speed as it is now.

I have a feeling that an AMD build to prep for Vulkan might be a wise choice. That is unless Intel drops a competitor to the 3600/3700X at a similar price out of the blue.

Link to comment
Share on other sites

Joking aside, does using a separate thread mean it can or will be moved to another core ?

 

unless explicitly limited by the program or user (cpu affinity), any thread, in any process, can be scheduled to run on any available core.

 

that is the main purpose of an operating system, to manage limited resources between various programs (in this case limited cpu resources).

 

if it didn't do this, you could not run hundreds of software programs (with their thousands of threads) on a 4-core cpu. there would be too many threads for the limited number of cpu's and only a few programs would work at a time.

Link to comment
Share on other sites

I'm not spreading misinformation. You are getting your definitions confused. DCS does not use multi threading. I'm not sure why you keep saying this.

 

"In computer architecture, multithreading is the ability of a central processing unit (CPU) (or a single core in a multi-core processor) to provide multiple threads of execution concurrently, supported by the operating system. This approach differs from multiprocessing. In a multithreaded application, the threads share the resources of a single or multiple cores, which include the computing units, the CPU caches, and the translation lookaside buffer (TLB)."

 

https://en.wikipedia.org/wiki/Multithreading_(computer_architecture)

 

You can easily test this yourself by turning off Hyperthreading in BIOS or ProcessLasso. It makes no difference whatsoever in performance in DCS.

 

You can message the developers if you need to and they will confirm this. DCS testers use the 9700K which does not Hyperthread.

 

Video editing and rendering packages do though. If you look at the gaming benchmarks I linked to in previous posts you'll see that the 9700K does very well in various gaming benchmarks but not as well as the 9900K or AMD processors in productivity benchmarks.


Edited by Sn8ke_iis
typo

 

 

Link to comment
Share on other sites

I'm not spreading misinformation. You are getting your definitions confused. DCS does not use multi threading. I'm not sure why you keep saying this.

 

"In computer architecture, multithreading is the ability of a central processing unit (CPU) (or a single core in a multi-core processor) to provide multiple threads of execution concurrently, supported by the operating system.

 

YES! this is exactly what DCS is doing.

 

please, please open your favorite "process info" tool and see if the DCS process has more than one thread. (it does)

 

then look at the cpu usage of each of those threads. are those threads using cpu time? (yes)

 

think of this scenario - DCS can render graphics AND play at sound concurrently, at the same time on two different threads. this is literally the definition of a "multithreaded" application.

 

i don't know how to explain this more clearly

Link to comment
Share on other sites

Sigh...I've already done that thanks. No one here has said that DCS does not use more than one thread. That's not what multithreading/hyperthreading means. I'm not aware of any program or game that only uses one thread. There are a few background processes in Windows Task manager that show only one thread being executed. If multithreading actually meant using more than one thread then pretty much every program uses multithreading which is obviously not the case. As I said DCS does not use multithreading and you are getting your definitions confused. DCS does not utilize logical cores only physical cores.

 

The simplest explanation I can think of is it's like 2 people using the same calculator simultaneously in parallel, e.g. if one person is adding 2 + 2 and the other is adding 3 + 3 then they would enter (2 +) (3+) (2) (3) and get the result (=4) (=6).

 

Instead of being stubborn you should actually read the links I've been posting here and on other threads, it wasn't for my benefit. I've already read them. If you had went to the wiki page you would have read below the first paragraph I already posted...

 

https://en.wikipedia.org/wiki/Multithreading_(computer_architecture)

 

"Where multiprocessing systems include multiple complete processing units in one or more cores, multithreading aims to increase utilization of a single core by using thread-level parallelism, as well as instruction-level parallelism. As the two techniques are complementary, they are sometimes combined in systems with multiple multithreading CPUs and with CPUs with multiple multithreading cores."

 

https://en.wikipedia.org/wiki/Multiprocessing

 

https://www.techopedia.com/definition/24297/multithreading-computer-architecture

 

"Threading can be useful in a single-processor system by allowing the main execution thread to be responsive to user input, while the additional worker thread can execute long-running tasks that do not need user intervention in the background. Threading in a multiprocessor system results in true concurrent execution of threads across multiple processors and is therefore faster. However, it requires more careful programming to avoid non-intuitive behavior such as racing conditions, deadlocks, etc."

 

p75GqOG.png

 

 

2wGZTfI.png

 

Hyperthreading OFF

11-01-2020, 15:20:27 DCS.exe benchmark completed, 1252 frames rendered in 35.844 s

Average framerate : 34.9 FPS

Minimum framerate : 33.4 FPS

Maximum framerate : 35.8 FPS

1% low framerate : 32.2 FPS

0.1% low framerate : 31.7 FPS

 

JghFS50.png

 

tevsQVj.jpg

 

Hyperthreading ON

 

11-01-2020, 15:33:58 DCS.exe benchmark completed, 1539 frames rendered in 43.078 s

Average framerate : 35.7 FPS

Minimum framerate : 34.1 FPS

Maximum framerate : 37.9 FPS

1% low framerate : 32.9 FPS

0.1% low framerate : 31.4 FPS

 

As is clearly shown in the benchmarks and screenshots there is no significant difference in DCS performance with Hyperthreading On or Off. This is why the 9700K is marketed towards gamers and not content creators. Only software like rendering and video editing suites actually use hyperthreading/multithreading.

 

Does this make more sense now?

 

?u=https%3A%2F%2Fwww.thelastdragontribute.com%2Fwp-content%2Fuploads%2F2014%2F07%2FBruce-Leroy-I-AM.png&f=1&nofb=1

 

 

Link to comment
Share on other sites

i forgot to ask.

 

if DCS is not multithreaded, then why does it have more than 1 thread in the process?

Because it's called multiprocessing, not multithreading.

 

 

Multiprocessing use more cores. Multithreading use more on each of the cores.

Attache ta tuque avec d'la broche.

Link to comment
Share on other sites

Intel or AMD

 

Multithreading use more on each of the cores.

 

they might, but it’s not guaranteed. multithreaded programs have more than one thread and can use any number of cpu cores.

 

there is no magic to it. you can use cpu affinity to test this yourself. just set a multithreaded process to use a single core. the process still runs.

 

edit: maybe the following will help

 

do you remember Windows 95? it supported muiltithreading programs (processes with more than 1 thread) back in 1995... yet, there were no multi-core cpu's to run it on until 2005, about 10 years later.

 

multi-processing (more than one cpu) is not a requirement for multithreading or multithreaded execution.

 

the only requirement for "multithreading" is for there to be more than one thread in the process.


Edited by etherbattx
Link to comment
Share on other sites

with regards to hyperthreading (HT). how does one create a program to use hyperthreads?

 

there js no api in windows to do this

 

I can't answer that, I'm not a software engineer. I know Adobe Premiere Pro uses multi-threading, maybe there is a FAQ on their website. Or you can read up on the Vulkan API.

 

 

Link to comment
Share on other sites

What are you asking exactly then? I'm not sure I understand your question. You can't determine whether a program uses a processor's multi-threading capabilities by looking at the number of threads quantitatively in task manager.

 

the only requirement for "multithreading" is for there to be more than one thread in the process.

 

 

That's not what multithreading/hyperthreading means.


Edited by Sn8ke_iis
Clarification for those with very poor reading comprehension

 

 

Link to comment
Share on other sites

with regards to hyperthreading (HT). how does one create a program to use hyperthreads?

 

there js no api in windows to do this

Hyperthreading, refers to a very specific hardware technology created by Intel, which allows a single processor core to interleave two threads. Hyperthreading is hardware (by including an extra set of CPU registers)

hyperthread-intelslide.gif

Attache ta tuque avec d'la broche.

Link to comment
Share on other sites

Well, until Vulkan is released, DCS sticks to 1 (+1 for AI) Core. Vulkan was mentioned in the last newsletter, so let's hope we get news soon.

 

Currently, the 9700K is probably the best choice if the primary focus is DCS. The Hyperthreading of the 9900k will give no benefits and only create higher temperatures.

 

The Ryzen 3 Processors are currently a good alternative, but before Vulkan not really an significant improvement.

Intel I9 10900k @5.1GHz | MSI MEG Z490 Unify | Corsair Vengeance 64GB - 3600MHz | EVGA RTX 3090 FTW3
VPC T-50 Base /w Viper & Hornet Grip | VPC Rotor TCS Pro w/ Hawk-60 Grip | TM TPR
LG C2 42" | Reverb G2 | TIR 5 | PointCtrl | OpenKneeboard

Link to comment
Share on other sites

What are you asking exactly then? I'm not sure I understand your question. You can't determine whether a program uses a processor's multi-threading capabilities by looking at the number of threads quantitatively in task manager.

 

That's not what multithreading/hyperthreading means.

 

i think you are confusing terms. multithreading and hyperthreading are two completely different things.

 

multithreading/multithreaded - a SOFTWARE construct where you break the execution task into separate threads. you create multiple threads with the CreateThread() API in the windows operations system. multithreading has been supported in Windows NT since 1993 and in Windows 95 since 1995, 12 years before Intel released the first dual core cpu.

a program is considered to be 'multithreaded' if it calls CreateThread() more than once and has more than 1 thread in the process.

 

 

hyperthreads - is completely different. it is a HARDWARE construct, where some of the fetch, decode work can be done by the core in parallel. windows supports this by treating the extra pipeline as a VIRTUAL core, to simplify the scheduling of tasks. you can NOT create hyperthreads in your program and you can't target them in your algorithms.

the setting to enable hyperthreads is in the BIOS, not the software program. it's done in HARDWARE and managed by windows.

when designing and writing software, HT can be ignored. there is nothing DCS or any other program can do do with or without a hyperthread.

Link to comment
Share on other sites

Hyperthreading, refers to a very specific hardware technology created by Intel, which allows a single processor core to interleave two threads. Hyperthreading is hardware (by including an extra set of CPU registers)

yes, exactly. it's a hardware construct and enabled/disabled in the BIOS

 

HT's can not be created, adjusted, tweaked or targeted by a software program. to DCS, they are completely invisible.

 

when one of the DCS threads is ready to run, the operation system may schedule/assign it to any of the cpu cores (real or virtual) to execute. the only way you can 'adjust' or control this is through the cpu affinity setting (process lasso, manual adjustment in task manager, etc)

Link to comment
Share on other sites

Hyper-Threading Technology is a form of simultaneous multithreading technology (SMT).

 

So, hyperthreading can't do much for single threaded (or almost) workloads like DCS.


Edited by Demon_

Attache ta tuque avec d'la broche.

Link to comment
Share on other sites

The reason why you are seeing no FPS difference in DCS by using hyperthreading is that the core thread singlehandedly saturates one CPU and that is your FPS cap. All the other threads use so little CPU that you can probably fit them into another core. If you were on a single core CPU with hyperthreading, you would see a difference.

 

 

If you have more than one physical core, hyperthreading does nothing for DCS because the load is spread too unevenly over its threads.

Good, fast, cheap. Choose any two.

Come let's eat grandpa!

Use punctuation, save lives!

Link to comment
Share on other sites

That's not what multithreading/hyperthreading means.

 

 

That's exactly what multithreading means. Hyperthreading is something different entirely as other users have explained.

Good, fast, cheap. Choose any two.

Come let's eat grandpa!

Use punctuation, save lives!

Link to comment
Share on other sites

Intel or AMD

 

If you were on a single core CPU with hyperthreading, you would see a difference

 

yes mostly likely. and it would interesting to see the amount of difference in the real world.

 

people sometimes think

2 hyperthreads = twice the performance

but since the cpu execution unit is shared and only able to process one thread at a time, the results are not even close to 2x

 

even intel’s own technical literature makes multiple references to “up to” 20% increase. and most likely they are testing with optimized workloads to enhance the increase.

 

for most users with desktop pc’s HT’jng can be ignored, other than being able to brag about how many threads they have! :)

Link to comment
Share on other sites

but since the cpu execution unit is shared and only able to process one thread at a time, the results are not even close to 2x

 

 

It really depends a LOT on what you are doing. If you have a pure computation load that is evenly spread over several threads with little IO, you're probably right.


Edited by sobek

Good, fast, cheap. Choose any two.

Come let's eat grandpa!

Use punctuation, save lives!

Link to comment
Share on other sites

i think you are confusing terms. multithreading and hyperthreading are two completely different things.

 

Hyperthreading is just Intel's proprietary marketing term for CPU multithreading because some marketing guy thought it sounded cool.

 

AMD uses the term simultaneous multithreading (SMT) for their CPUs.

 

https://en.wikipedia.org/wiki/Simultaneous_multithreading

 

https://stackoverflow.com/questions/5593328/software-threads-vs-hardware-threads

 

At this point you are kind of just being pedantic if you want to argue that more than one software thread is multithreading and it's not really relevant to the OP's question or people who are doing a new build or trying to decide between Intel and AMD. You should have just stated the difference between software and hardware multithreading in the first place. Now as one poster mentioned they are just confused and it's not really helping anybody.

 

 

Link to comment
Share on other sites

  • Recently Browsing   0 members

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