Levnější CPU Skylake-X nemají zpomalené AVX-512, jak Intel tvrdil. Obě FMA jsou aktivní

17. 2. 2018

Sdílet

 Autor: Redakce

Intelu se často vyčítá, že u procesorů hodně „segmentuje“, čímž se myslí, že u levnějších procesorů znepřístupňuje řadu z funkcí křemíku, aby tím uživatele přiměl připlatit za vyšší modely. Nastalo to i u highendových procesorů Skylake-X, kde Intel odlišil levnější modely i7-7800X a i7-7820X s šesti a osmi jádry od vyšších nejen tím, že jim deaktivoval část konektivity PCI Express, ale také tak, že u nich zpomalil instrukce AVX-512. Nebo to alespoň tvrdil. Skutečnost je totiž trochu odlišná.

Pokud si vzpomínáte na uvedení těchto procesorů, dle oficiálních informací mělo mít AVX-512 v zmíněných dvou procesorech na rozdíl od verzí Core i9 poloviční propustnost. Podobné je to i v řadě levnějších Xeonů Bronze a Silver a důvod je takový, že Intel v těchto CPU vypnul druhou 512bitovou jednotku FMA, přidanou v rámci serverové verze jádra Skylake. Ta dodává polovinu výkonu dostupného pro AVX-512 a procesor bez ní tyto instrukce počítá jen spojením jednotek AVX/AVX2, které jsou i v běžných jádrech Skylake a dohromady tvoří první z jednotek 512bitových FMA. Procesor je tak sice kompatibilní s instrukcemi AVX-512, ale nemůže s nimi dosáhnout vyššího výkonu než s AVX/AVX2. Výjimkou jsou jen situace, kdy je kód limitován třeba dekódováním instrukcí (takže AVX-512 pomůže tím, že zredukuje počet instrukcí, samotné jednotky provedou stejný počet operací jako s AVX) a ne samotnými výpočetními jednotkami.

Takto měl podle Intelu být výkon ořezán i u Core i7-7800/i7-7820X, což asi moc nepotěšilo řadu uživatelů, kteří chtěli právě tyto nové instrukce využívat nebo pro ně psát aplikace. Už před nějakou dobou ovšem prosákly informace, že v procesorech dostupných ve volném prodeji jako by toto umělé omezení ve skutečnosti chybělo. Benchmarky odpovídají dražším i9-7900X, pokud si odmyslíte rozdíl v počtu jader a taktech. Zdá se tedy, že informace, které Intel k procesorům dával, nebyly správné a ona „segmentace“ AVX-512 byla u Core i7 jen na papíře. Že specifikace „lžou“, je ale v tomto případě lepší, než kdyby měly pravdu a ona jednotka FMA byla skutečně neaktivní.

bitcoin_skoleni

Schéma jádra procesorů Skylake-SP/X. Druhá 512bitová jednotka FMA pro instrukce AVX-512 je umístěna na portu 5. V některých procesorech je vypnutá, čímž se teoretický propustnost výpočtů snižuje na polovinu Schéma jádra procesorů Skylake-SP/X. Druhá 512bitová jednotka FMA pro instrukce AVX-512 (oranžově) je umístěna na portu 5. V některých procesorech je vypnutá, čímž se teoretický propustnost výpočtů snižuje na polovinu

Tato informace už sice chvíli kolovala, ale nyní ji konečně můžeme definitivně potvrdit. Intel totiž po několika měsících nyní specifikace procesorů Core i7-7800X a i7-7820X zpětně opravil a již u nich snížený výkon AVX-512 neuvádí. Kolonka pro počet jednotek FMA u AVX-512 se jako nový údaj objevila v databázi produktů Intelu ARK. A jak se můžete přesvědčit, u všech Skylake-X je nyní již vypsáno, že mají pro AVX-512 k dispozici obě dvě jednotky FMA. Údaje v ARKu by neměly být chybné, protože se shodují s praktickým pozorováním: jak už bylo řečeno, plný výkon u nich ukázalo i testování.

Levnějším modelům tedy po stránce instrukcí SIMD není nic „uříznuto“ a jedou na plném výkonu. Lze je proto směle používat třeba pro onen vývoj programů s těmito instrukcemi a každopádně je to pozitivní zpráva. A zanesení změny původně avizovaných specifikací do databáze ARK snad naznačuje, že nejde jen o nějaké opomenutí a anomálii. Tudíž by snad Intel mohl plný výkon SIMD zachovat i v příštích generacích, tedy Cascade Lake-X a eventuálně v 10nm highendových procesorech založených na architektuře Ice Lake.