Teljesítmény növelés SIMD utasításkészlet segítségével
DOI:
https://doi.org/10.32968/psaie.2023.2.5Keywords:
SIMD, SSE, AVX, optimizationAbstract
A számítógépes alkalmazás fejlesztés hosszú múltra tekint vissza. A hardver folyamatos fejlődésével mind a szoftverek, mind pedig a alkalmazások készítését lehetővé tevő programozási nyelvek és keretrendszerek is együtt változtak. Ahogy haladunk az időben előre, úgy váltak elérhetővé az egyre nagyobb kapacitású számítógépek. Ez hatással volt a fejlesztési folyamatra is, hiszen megjelentek a magasabb szintű programozási nyelvek, egyre magasabb szintű API-k váltak elérhetővé, lassan eltűntek a pointerek, memória foglalások és felszabadítások is a programozás területéről. A magas szintű nyelvekre való váltással azonban egyre inkább eltűnt a programok optimalizálása vagy annak lehetősége, mivel bizonyos hatékonyságot növelő lehetőségek a magasabb szintű nyelvekben nem vagy csak korlátozottan elérhetőek. Jelen cikk ezért a hétköznapi programozás köreiben “elfeledett”, a modern CPU-k által támogatott SSE/AVX SIMD párhuzamosítási lehetőségek adta előnyökkel foglalkozik mélyebben. Bemutatásra kerül, hogy a CPU-ban olyan tartalékok vannak, amelyekkel bizonyos teljesítménykorlátok messze kitolhatók.