Recent

Author Topic: Instruction-level parallelism  (Read 339 times)

LemonParty

  • Hero Member
  • *****
  • Posts: 564
Instruction-level parallelism
« on: June 15, 2026, 06:05:17 pm »
Has someone study the pointed topic?
How many instructions can modern CPUs execute in parallel?
Lazarus v. 4.99. FPC v. 3.3.1. Windows 11

LeP

  • Sr. Member
  • ****
  • Posts: 451
Re: Instruction-level parallelism
« Reply #1 on: June 15, 2026, 06:37:01 pm »
Has someone study the pointed topic?
How many instructions can modern CPUs execute in parallel?

From Intel docs, see attachments.
Un Sistema per domarli, un IDE per trovarli, un codice per ghermirli e nel framework incatenarli.
An operating system to tame them, an IDE to find them, a code to catch them and in the framework chain them.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12959
  • FPC developer.
Re: Instruction-level parallelism
« Reply #2 on: June 15, 2026, 07:35:33 pm »
Has someone study the pointed topic?
How many instructions can modern CPUs execute in parallel?

Depends if directly or in a loop. In a loop more instructions can be dispatched from the uop cache.  Apple ARMs are wider than x86s (but ARMs require more instructions to do the same as a strict load/store instruction set)

Anyway, roughly in the order of 6-8, but that might require a specific mix of integer,float and vector instructions, so this is often not achieved.

LemonParty

  • Hero Member
  • *****
  • Posts: 564
Re: Instruction-level parallelism
« Reply #3 on: June 15, 2026, 07:55:05 pm »
LeP, great table.
Thank you for answers.
Lazarus v. 4.99. FPC v. 3.3.1. Windows 11

MathMan

  • Hero Member
  • *****
  • Posts: 532
Re: Instruction-level parallelism
« Reply #4 on: June 15, 2026, 08:11:33 pm »
@LemonParty

Further annotated readings:

https://www.agner.org/optimize/
http://instlatx64.atw.hu/
https://uops.info/

Similar things have been done for ARM / Apple Mx, though I haven't followed up thoroughly. A bit of searching should reveal ...

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12959
  • FPC developer.
Re: Instruction-level parallelism
« Reply #5 on: June 15, 2026, 10:13:00 pm »
The table shows 6 macro ops/clock  (1/6) for the fastest instructions, so 6 per cycle.  Note that "mov reg,reg" (both regs same size) are not emitted, but solved by register rename.

Googles AI says something similar:

Quote
It looks like you are asking about the micro-operation (µop) emission, decode, or dispatch throughput of Intel's Golden Cove architecture (used in 12th-14th Gen Core P-Cores). Golden Cove widened the pipeline significantly compared to previous Intel architectures, handling multiple instructions per cycle depending on the stage:

Decode & Emission

- MITE (Legacy Decoders): Can decode up to 6 instructions per cycle (up from 4 in prior architectures like Sunny Cove).

- DSB (µop Cache): Can emit/deliver up to 8 µops per cycle to the µop queue.Back-End Execution (Dispatch & Issue)

- Allocation / Rename: The back-end can dispatch up to 8 instructions per cycle to the rename/allocation buffers.

- Execution Ports: The core features 12 execution ports, allowing it to issue up to 12 µops to the functional units (e.g., ALUs, AGUs, and FPU) simultaneously in a single cycle.Retirement: Can retire up to 12 µops per cycle.

Note that that such peak values are rare. Besides the instructions/cycle limit, for the decoders there is also a byte limit (16 bytes per cycle, but that value is a bit old, maybe increased in very recent CPUs).

LeP

  • Sr. Member
  • ****
  • Posts: 451
Re: Instruction-level parallelism
« Reply #6 on: June 16, 2026, 12:23:51 am »
This is the last Intel optimization manual V2: https://cdrdv2.intel.com/v1/dl/getContent/787036
Un Sistema per domarli, un IDE per trovarli, un codice per ghermirli e nel framework incatenarli.
An operating system to tame them, an IDE to find them, a code to catch them and in the framework chain them.

 

TinyPortal © 2005-2018