OpenZL 0.2.0

OpenZL 0.2.0 OpenZL 0.2.0

Hét hónapnyi fejlesztés után megjelent a 0.2.0 verzió az OpenZL keretrendszerből OpenZL, amely adatveszteség nélküli adatkompresszorok készítésére szolgál.

A keretrendszer egy alapkönyvtárból és eszközökből áll, amelyek speciális tömörítők létrehozására szolgálnak, az SDDL.
nyelven leírtak szerint. A jó speciális tömörítő létrehozásának két lépése van:

  1. Az adatok elemzése a struktúra kinyerésére.
  2. Jó háttérkompresszorok használata, amelyek az előállított struktúrát használják a jó tömörítés eléréséhez.

Az OpenZL eszközöket biztosít mindkét lépéshez.

A projekt C és C++ nyelveken készült, és BSD licenc alatt terjesztik.

Főbb változások

SDDL2

Az SDDL teljes mértékben újraírásra került a tervezési célok elérése érdekében. Míg az első demóverzió egy egyszerűsített végrehajtási környezet volt, az SDDL2 egy teljes értékű fordító: a szintaktikai elemző adatokat küld a szemantikai elemzőnek, amely továbbítja a típussal rendelkező absztrakt szintaktikai fát (AST) az optimalizálónak, míg az optimalizáló irányítja a kódgenerátort, amely a virtuális gép bytekódját generálja.

A kulcsfontosságú eredmény az azonnali szintaktikai elemzés. Amikor a rekesz elhelyezése teljes mértékben meghatározható csak a paraméterek és konstansok által, a motor közvetlenül hozzáfér bármely mezőhöz anélkül, hogy átvizsgálná az előző bájtokat, ami lehetővé teszi a másolás nélküli hozzáférést és több GB/s sávszélességet biztosít.

Magának a nyelvnek is fejlődnie kellett az eszközkészlettel együtt. Most már támogatja a when blokkokat a feltételes elhelyezésekhez, a paraméterezett és névtelen rekordokat, a rekord mezőihez való hozzáférést, valamint a bit- és logikai operátorokat.

A fejlesztők kényelmét illetően a szemantikai elemzés lépése most már felfedi a határozatlan hivatkozásokat, típuseltéréseket és aritmus hibákat a fordítási szakaszban - a forráskód helyének megjelölésével - nem pedig futtatás közben, és megjelent egy VS Code kiterjesztés a .sddl fájlok szintaxisának kiemelésére.

Az új beépített LZ kodek

Az OpenZL mostantól saját LZ-kódexet tartalmaz, amely ZL_GRAPH_LZ néven ismert, valamint egy sorozatos tömörítési profilt a zli segédprogramban. A kódexen folytatódik a munka: a funkciókészlet bővítése és a kis bemeneti adatok feldolgozásának teljesítményének javítása zajlik. Jelenleg a tömörítési funkció zstd szintnek 1 felel meg, 64 KB-os ablakmérettel.

Az OpenZL lehetővé teszi az LZ-conveyer minden szakaszának újratervezését a sebesség növelése érdekében. Grafikus architektúrája szintén lehetővé teszi az entropikus kódolási szakaszok kombinálását, ahelyett, hogy egy olyan egységes konveiert használnánk, amely minden használati forgatókönyv számára egyformán megfelelő. Ezután több szakasz egyetlen műveletbe vonható össze a feldolgozási sebesség növelése érdekében. Ez lehetővé teszi az OpenZL számára, hogy 10%-kal magasabb tömörítési sebességet és 70%-kal gyorsabb késleltetést biztosítson a 1-es szintű Zstandardhoz képest a Silesia burkolaton. tesztjeinkben:

TömörítőTömörítési arányTömörítési sebességKicsomagolási sebesség
OpenZL LZ szint 12.74466 MB/s2288 MB/s
Zstd 1-es szint 64K ablakmérettel2.74419 MB/s1254 MB/s
Zstd 1-es szint2.89424 MB/s1345 MB/s

Nagyon nagy bemeneti adatok támogatása

A zli mostantól óriási bemeneti adatok (több gigabájtnyi) feldolgozását támogatja. Az ilyen adatokat a tömörítés előtt automatikusan kezelhető méretű darabokra (alapértelmezés szerint körülbelül 16 MB) bontják, ami lehetővé teszi a használt memória korlátozását, növeli az adatok lokális elhelyezkedését, és párhuzamos feldolgozási lehetőségeket nyit meg. Az SDDL2 hasonló automatikus darabolási funkciót valósít meg az üzemmód alapján. Új vagy frissített szegmentátorok - CSV, Parquet és szabványos számadatok számára - kerültek létrehozásra, és minden szegmentátor mostantól sorozatba állítható és testreszabható, így a kiválasztott elrendezés megőrizhető a tömörítőben és később újra felhasználható.

Ez tömörítés közben átláthatóan alkalmazásra kerül. Vegye figyelembe, hogy a tanulási fázis eltérő és érintetlen marad, ezért nem alkalmas óriási bemeneti adatok fogadására tananyaggént.

Fejlesztések az online gráf vizualizátorban (próbálkozzanak.)
Most a vizualizátor képes észlelni a tömörítési és kicsomagolási nyomvonalakat az elejétől a végéig.

A stream preview panel allows you to view the bytes actually passing through each edge, and with the trimming controls, even large streams remain easy to work with.

The settings panel combines all display options in one place, and a complete set of keyboard shortcuts – for direction navigation, ordered traversal, expanding and collapsing, and node selection – allows you to conveniently use the tool without a mouse.

Now traces have versions, block-split compression is displayed correctly, and zli can finally generate its own traces using the new flags —trace and —trace-streams-dir.

Vegyes

  • Several codecs have been added to the catalog. The Partition and bitpack codecs now use a unified decoder. The Floating-point bitsplit codec has received special encoders and decoders for fp16, fp32, fp64, and bf16 formats with specialized accelerations. Added range-aware splitting (split_byrange), a length multiplexer, a sentinel codec, lz4 graph, and small utility functions like tryParseInt and splitByParam.
  • API has been organized.
  • Fuzz testing has been improved.
  • The build and packaging process has been enhanced for more platforms.

Forrás: linux.org.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster