J'aurais tendance à penser que ce genre d'ISA serait lente (latence entre instructions pour décoder l'info de taille à chaque fois, voir une batterie de switch pour gérer la taille dynamique).
Ça me fait penser à des problèmes un peu similaire (bon, seulement un peu) avec AVX512, pas tant pour gérer un taille dynamique, mais pour gérer la consommation électrique des CPU
"Regular" lets you use any 128-bit wide instructions and "light" 256-bit instructions (shuffles and integer adds/logic/shifts OK, no FP, nothing that powers on the 256-bit multiplier whether int or FP)
"AVX2 heavy" lets you use all 256-bit wide instructions and "light" 512-bit wide ones. Base and turbo frequencies are about 15% lower than baseline.
"AVX512 heavy" lets you use anything. Forces the frequencies to be about 25-30% lower than regular.
Using any instructions outside the current power bin makes the core request a higher power license, which takes a long time. Quoting the Intel optimization guide:
When the core requests a higher license level than its current one, it takes the PCU up to 500 micro- seconds to grant the new license. Until then the core operates at a lower peak capability. During this time period the PCU evaluates how many cores are executing at the new license level and adjusts their frequency as necessary, potentially lowering the frequency. Cores that execute at other license levels are not affected. A timer of approximately 2ms is applied before going back to a higher frequency level. Any condition that would have requested a new license resets the timer.
En gros, il y a 3 modes de puissance (Regular, AVX2 heavy et AVX512 heavy) avec chacun une réduction de la fréquence d'horloge du CPU, et le fait d'utiliser des instructions AVX2 ou AVX512 bascule le CPU vers le mode de puissance adapté pour plusieurs millisecondes.
[^] # Re: Et RISC-V?
Posté par StyMaar . En réponse à la dépêche Sortie du noyau Linux 5.13. Évalué à 4.
Ça me fait penser à des problèmes un peu similaire (bon, seulement un peu) avec AVX512, pas tant pour gérer un taille dynamique, mais pour gérer la consommation électrique des CPU
En gros, il y a 3 modes de puissance (Regular, AVX2 heavy et AVX512 heavy) avec chacun une réduction de la fréquence d'horloge du CPU, et le fait d'utiliser des instructions AVX2 ou AVX512 bascule le CPU vers le mode de puissance adapté pour plusieurs millisecondes.