The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.

    Is hyperthreading even meaningful.....

    Discussion in 'Hardware Components and Aftermarket Upgrades' started by HopelesslyFaithful, Apr 29, 2012.

  1. HopelesslyFaithful

    HopelesslyFaithful Notebook Virtuoso

    Reputations:
    1,552
    Messages:
    3,271
    Likes Received:
    164
    Trophy Points:
    0
    Is hyperthreading even meaning full with quad cores and above?
     
  2. H.A.L. 9000

    H.A.L. 9000 Occam's Chainsaw

    Reputations:
    6,415
    Messages:
    5,296
    Likes Received:
    552
    Trophy Points:
    281
    I don't understand the question?
     
  3. HopelesslyFaithful

    HopelesslyFaithful Notebook Virtuoso

    Reputations:
    1,552
    Messages:
    3,271
    Likes Received:
    164
    Trophy Points:
    0
    IB i5 has no hyperthreading and i7 does....does it even matter? I know hyperthreading helped single cores but you have 4 cores...why have a virtual 8 cores? Does that even help?
     
  4. H.A.L. 9000

    H.A.L. 9000 Occam's Chainsaw

    Reputations:
    6,415
    Messages:
    5,296
    Likes Received:
    552
    Trophy Points:
    281
    Hyperthreading is just filling in the gaps in code execution across threads. Nothing more.

    With IVB's performance level, I'd say it won't matter. Plus it will probably help keep thermals down.
     
  5. HopelesslyFaithful

    HopelesslyFaithful Notebook Virtuoso

    Reputations:
    1,552
    Messages:
    3,271
    Likes Received:
    164
    Trophy Points:
    0
    so not worth the extra 100 bucks :) i find the price between the i5 and i7 ridiculous 250 for i5k and 350 for i7k and the only difference is 100mhz and 2mb cache and hyperthreading lol. Never seen such a pointless difference before. Thanks for the reply HAL
     
  6. eurasianlynx

    eurasianlynx Notebook Enthusiast

    Reputations:
    0
    Messages:
    27
    Likes Received:
    0
    Trophy Points:
    5
  7. s2odin

    s2odin Merrica!

    Reputations:
    1,085
    Messages:
    859
    Likes Received:
    2
    Trophy Points:
    31
    You do know the "k" at the end means it has an unlocked multiplier, right?
     
  8. HopelesslyFaithful

    HopelesslyFaithful Notebook Virtuoso

    Reputations:
    1,552
    Messages:
    3,271
    Likes Received:
    164
    Trophy Points:
    0
    yes i know and my point was there is so little difference between the two i tink a 40% price increase is dumb
     
  9. funky monk

    funky monk Notebook Deity

    Reputations:
    233
    Messages:
    1,485
    Likes Received:
    1
    Trophy Points:
    55
    The i5's have always been better valued. That's just how price tiering works. Once you get to the higher end you get diminishing returns.

    As for how much of an improvement hyperthreading gives, it often only comes to 20%-ish. It's nothing like having double the number of cores.
     
  10. Krane

    Krane Notebook Prophet

    Reputations:
    706
    Messages:
    4,653
    Likes Received:
    108
    Trophy Points:
    131
    Absolutely; but only if you have the programs thats optimized to take advantage of it.

    So the first determination in calculating use/price is to know if the programs you use most often are designed with that function in mind.

    Editing programs are, so it will be of great importance to me when I update my next workstation.
    However, you neglected to mention that that percentage increase comes at relatively no cost. Something that can't be said for adding additional CPUs or even cores.
     
  11. Syberia

    Syberia Notebook Deity

    Reputations:
    596
    Messages:
    1,611
    Likes Received:
    1
    Trophy Points:
    56
    If you're gaming, it will make little to no difference. If you're doing something seriously multithreaded like CAD or video work, it might make 20-30% difference. At any rate, I don't think it's worth the price difference; note the two i5 machines in my sig :p
     
  12. HopelesslyFaithful

    HopelesslyFaithful Notebook Virtuoso

    Reputations:
    1,552
    Messages:
    3,271
    Likes Received:
    164
    Trophy Points:
    0
    so lets say for purpose of understanding. the i5 and i7 are equal clocks (overclock the i5 by 100mhz). You run folding@home, which is heavy cpu and heavy multithreaded. Your i7 will out perform the i5 even with same clocks because the i5 is 4 threads and not 8?

    Just like if I turned off the hyperthreading on my 720qm it would run worse for F@H
     
  13. H.A.L. 9000

    H.A.L. 9000 Occam's Chainsaw

    Reputations:
    6,415
    Messages:
    5,296
    Likes Received:
    552
    Trophy Points:
    281
    I wouldn't be that enthusiastic about it... but it does help. Marginally.

    Again... 20-30% is being awfully optimistic. The real number is around 10%. Hyperthreading isn't creating two whole new threads. It's a virtual thread per hyperthreaded core... and on top of that, that virtual thread can only use the execution gaps in the main thread for code execution.

    Intel has probably gotten their prioritization perfected to the point where they don't need hyperthreading for IVB. IMHO, it really wasn't needed on Sandy Bridge.
     
  14. Generic User #2

    Generic User #2 Notebook Deity

    Reputations:
    179
    Messages:
    846
    Likes Received:
    0
    Trophy Points:
    30
    ^ you sure that the hyperthread runs as slave to the native thread? I don't remember reading any lit that says that. In fact, I haven't read anything that says one thread is different than the other thread.


    This is what I've read:

    *Intel doubled the number of registers on each core (so now theres enough memory for two threads worth of thread -data)
    *Each thread will want to use a specific pipeline in the CPU
    *If each thread is requesting a different pipeline, then both run simultaneously. Otherwise, one of the threads is blocked.

    in conclusion, if the two threads never share the same execution units, then you doubled your throughput at the cost of the die space of the extra registers. This will never be the case however. In the bad cases, you save the time it takes to context switch between threads.



    Windows has some logic on how to pair threads together, although, I'm not sure how smart it actually is.
     
  15. H.A.L. 9000

    H.A.L. 9000 Occam's Chainsaw

    Reputations:
    6,415
    Messages:
    5,296
    Likes Received:
    552
    Trophy Points:
    281
    100% positive. The actual physical cores will always get priority over HT "threads".
     
  16. HopelesslyFaithful

    HopelesslyFaithful Notebook Virtuoso

    Reputations:
    1,552
    Messages:
    3,271
    Likes Received:
    164
    Trophy Points:
    0
    What does unclewebb have to say about this :)
     
  17. Generic User #2

    Generic User #2 Notebook Deity

    Reputations:
    179
    Messages:
    846
    Likes Received:
    0
    Trophy Points:
    30
    which whitepaper did you read this from?
     
  18. H.A.L. 9000

    H.A.L. 9000 Occam's Chainsaw

    Reputations:
    6,415
    Messages:
    5,296
    Likes Received:
    552
    Trophy Points:
    281
    It's the way the technology works. It's what it was created for... to increase efficiency-per-clock. Since HT threads aren't real full threads, priority will be given to the main thread first, then delegated to other threads and HT threads.

    You can see it clear as day in Windows 7 in the task manager. Watch which cores are active most... Core0 and Core2. Core1 and Core3 are HT, for i5's anyway.

    Plus, has anyone seen this? This is on an i7 3770k...

    [​IMG]
     
  19. jclausius

    jclausius Notebook Virtuoso

    Reputations:
    6,160
    Messages:
    3,265
    Likes Received:
    2,573
    Trophy Points:
    231
    Hyperthreading has nothing to do "virtualized threads" or using "execution gaps" for code execution. Hyperthreading (aka Simultaneous Multithreading Technology, SMT) is a process in which the Intel HT CPU duplicates certain sections of the processor.

    From the Windows - Hyper-threading Doc:

    The BIOS will start up the logical processors. A list of all of the logical processors that have been started is created by the BIOS and provided to the operating system in the Multiple APIC Description Table (MADT). The BIOS passes the MADT to the operating system, and Windows will attempt to utilize the logical processors in the same sequence as the BIOS listed them in the MADT. So, each logical processor that is contained within an HT processor appears to the operating system as an individual processor. It so happens that each physical CPU will get the lower number priority then the virtualized HT CPU.

    In regards to thread to processor assignment, the scheduler in Windows XP (BIG ASSUMPTION on my part here that this also applies to Vista/7) will identify HT processors and favors dispatching threads onto inactive physical processors wherever possible. This is due to the way the physical CPUs were reported in the MADT. Each physical CPU is reported with lower numbers than a HT CPU. This way, if processor #1 is busy, Windows can assign a thread to CPU#2 - which would be the second physical core.


    If truly interested for more details, take a look at:

    Introduction to Multithreading, Superthreading and Hyperthreading

    Hyper-threading - Wikipedia, the free encyclopedia

    Windows Support for Hyper-Threading Technology

    MS isn't one to change technology, so it is a safe bet that this part of Windows has only been optimized in Win 7.
     
  20. H.A.L. 9000

    H.A.L. 9000 Occam's Chainsaw

    Reputations:
    6,415
    Messages:
    5,296
    Likes Received:
    552
    Trophy Points:
    281
    I never said anything about duplication, but it never duplicates the real hardware architecture.

    From Wiki:
    Also, the duplication "feature" may lie in the hardware itself, but the HT threads are just that... they are NOT complete threads. That's why the performance level doesn't increase in a linear progression with HT.
     
  21. HTWingNut

    HTWingNut Potato

    Reputations:
    21,580
    Messages:
    35,370
    Likes Received:
    9,878
    Trophy Points:
    931
    Soooo, what is this telling us? Hyperthreading can actually be a slight detriment to performance in some cases and perhaps as much as 25% improvement in others? They'd probably be better off increasing clock speeds 10% than fussing with HT.
     
  22. H.A.L. 9000

    H.A.L. 9000 Occam's Chainsaw

    Reputations:
    6,415
    Messages:
    5,296
    Likes Received:
    552
    Trophy Points:
    281
    I looked into what you've said there. I thought that was interesting. Seems Windows 7 schedules a LOT like XP. Windows Server 08 R2 schedules very VERY consistently even. My Latitude is running Server 08 R2 which is based off NT 6.1 like Windows 7... same kernel even... but thread scheduling is different. Much different.

    EDIT: Even with that taken into consideration though, I still only get a maximum of 15% improvement with HT on (vs off).
     
  23. jclausius

    jclausius Notebook Virtuoso

    Reputations:
    6,160
    Messages:
    3,265
    Likes Received:
    2,573
    Trophy Points:
    231
    No, I never said you did. That was from Wikipedia. Here's the quote,

    To me, this means there are some, but not all, elements of the CPU duplicated. There must be extra room for a thread's Program Counter, as well as other L1 registers close to the execution of the current instruction to maintain the context of two threads.

    In regards to the 10-30% increase, other articles suggest the perf improvement is somewhere around the 20% mark, depending on how threaded your applications are. The main reasoning is that since the not all of the entire processor is duplicated, since the other registers are not duplicated in hardware, if the executing thread encounters a simple cache miss or requires another CPU resource not at hand, which is a common case, that thread must stall. That explains why perf numbers are not greater.