Hlavní navigace

Názor k článku LiMux: příběh mnichovského Linuxu od Lael Ophir - Optimalizace pomocí SSEx se vyplatí hlavně u kodeků....

  • Článek je starý, nové názory již nelze přidávat.
  • 3. 9. 2014 16:11

    Lael Ophir (neregistrovaný)

    Optimalizace pomocí SSEx se vyplatí hlavně u kodeků. Tam se typicky používají různé code paths pro různé kombinace rozšíření instrukční sady a případně velikostí cache CPU. Jinými slovy pokud chcete optimalizovat, stejně se nevyhnete různým code paths.
    MSVC sice podporuje SSEx, ale v praxi vám to moc nepomůže. Zrychlení kódu prostou rekompilací je minimální. Co potřebujete je *ručně* použít SSEx/AVXx instrukce a poladit velikosti bufferů podle velikosti cache. SSEx/AVXx instrukce můžete použít pomocí inline assembleru. Lepší je ale použít Compiler Intrinsics, protože jim překladač "rozumí" a ví co dělají, takže může víc optimalizovat.
    http://msdn.microsoft.com/en-us/library/26td21ds(v=vs.100).aspx

    Navíc směšujete věci, které nemají souvislost. Máme 32-bitové CPU bez SSE2, 32-bitové s SSE2, 32-bitové s SSE3, 64-bitové s SSE2, a pak řadu 64-bitových s SSE3-4.2, AVX a dalšími extensions (plus existuje AMD, které má podporu extensions odlišnou). S vaším přístupem byste například odřízl podporu SSE2 a SSE3 na 32-bitových CPU.