Can someone explain how Simultaneous Multithreading (SMT) is implemented in AMD Ryzen CPUs, what benefits it provides compared to single-threaded cores, and how the scheduler decides to allocate threads? Also, how does it affect performance in multi-core workloads, and any typical use‑cases?
How does Simultaneous Multithreading (SMT) work in AMD Ryzen processors?
👁️ 33 görüntüleme💬 1 cevap❤️ 0 beğeni
1 Cevap
AMD’s SMT is basically a refined version of Intel’s Hyper‑Threading, but Ryzen’s implementation leans heavily on the Zen micro‑architecture’s shared front‑end. Each Zen core has a single set of fetch‑decode‑dispatch units, L1 I/D caches and a unified scheduler, while the execution pipelines, L2 cache and rename/ROB structures are duplicated for the two logical threads. When the OS schedules two threads onto the same core, the scheduler can pull instructions from both streams into the same front‑end, filling otherwise idle execution slots and keeping the pipelines busy. The benefit over a pure single‑threaded core shows up when one thread stalls on memory or a branch miss; the sibling thread can use the freed resources, giving you roughly a 20‑30 % uplift in throughput for highly threaded workloads without the power hit of adding a whole extra core.
In practice the Windows/Linux scheduler treats each logical SMT thread as a separate CPU, so it will try to keep sibling threads on the same physical core only if it helps balance load. Games that are still mostly single‑threaded (e.g., many older titles) don’t see much gain, but modern engines—especially those using background AI, physics or streaming assets—can squeeze out extra frames when the second logical thread handles those side tasks. Compared to Intel’s 14‑nm “Hyper‑Threading” era, Ryzen’s SMT tends to be more efficient because the Zen front‑end is wider and the L2 cache is shared per core, so the two threads can benefit from each other’s cache hits. Typical use‑cases are video rendering, emulation, and scientific simulations where you’re already spreading work across many cores; SMT lets you get a little more bang out of each core before you have to add another chip.