Saatos tujuh bulan pamekaran, vérsi 0.2.0 tina kerangka ieu dirilis. OpenZL, dirancang pikeun nyieun kompresor data lossless.
Rangka kerja ieu diwangun ku perpustakaan dasar sareng alat-alat pikeun nyiptakeun kompresor khusus anu dijelaskeun dina basa SDDL.
Aya dua léngkah pikeun nyieun kompresor khusus anu saé:
- Analisis data pikeun ngekstrak struktur.
- Ngagunakeun kompresor backend anu saé anu ngamangpaatkeun struktur anu dihasilkeun pikeun ngahontal komprési anu saé.
OpenZL nyayogikeun alat pikeun dua tahapan éta.
Proyék ieu ditulis dina C sareng C++ sareng disebarkeun dina lisénsi BSD.
Parobihan ageung
SDDL2
SDDL ditulis ulang sagemblengna ti mimiti pikeun ngahontal tujuan desain aslina. Sanaos démo aslina mangrupikeun lingkungan runtime anu disederhanakeun, SDDL2 mangrupikeun kompiler anu lengkep: parser ngirimkeun data ka semantic analyzer, anu teras ngirimkeun tangkal sintaksis abstrak (AST) anu diketik ka optimizer, sareng optimizer ngontrol generator kode, anu ngahasilkeun bytecode mesin virtual.
Hasil konci na nyaéta parsing instan. Nalika lokasi rékaman tiasa ditangtukeun sacara lengkep nganggo parameter sareng konstanta nyalira, mesin langsung luncat ka widang naon waé tanpa nyeken byte sateuacanna, ngamungkinkeun aksés tanpa salinan sareng throughput sababaraha GB/s.
Basa éta sorangan geus mekar bareng jeung pakakasna. Ayeuna basa éta ngadukung klausa when pikeun pernyataan kondisional, rékaman anu diparameterisasi sareng anonim, aksés ka anggota widang rékaman, sareng operator bitwise sareng logis.
Di sisi pamekar, léngkah analisis semantik ayeuna ngaidéntifikasi rujukan anu teu didefinisikeun, ketidakcocokan tipe, sareng kasalahan arity dina waktos kompilasi—sareng lokasi kode sumber—tinimbang dina waktos runtime, sareng éksténsi VS Code pikeun panyorot sintaksis file .sddl parantos dileupaskeun.
Kodek LZ bawaan anyar
OpenZL ayeuna ngawengku codec LZ sorangan, anu digambarkeun salaku ZL_GRAPH_LZ, ogé profil komprési sekuensial dina utilitas zli. Padamelan dina codec ieu masih lumangsung, ngalegaan set fiturna sareng ningkatkeun kinerja nalika ngolah data input alit. Ayeuna, éta ngadukung fungsi anu sami sareng zstd level 1, kalayan jandela komprési 64 KB.
OpenZL ngamungkinkeun unggal tahapan pipa LZ didesain ulang pikeun kecepatan. Arsitektur grafikna ogé ngamungkinkeun pikeun ngagabungkeun tahapan encoding entropi, tinimbang nganggo hiji pipa anu sami-sami cocog pikeun sadaya kasus panggunaan. Sababaraha tahapan teras tiasa digabungkeun kana hiji operasi pikeun ningkatkeun kecepatan pamrosésan. Ieu ngamungkinkeun OpenZL pikeun ngahontal komprési 10% langkung gancang sareng dekompresi 70% langkung gancang dibandingkeun sareng Zstandard level 1 dina Silesia corpus. tés kami:
| Kompresor | Rasio Komprési | Kecepatan Kompresi | Kagancangan Dekompresi |
|---|---|---|---|
| OpenZL LZ tingkat 1 | 2.74 | 466 MB / s | 2288 MB / s |
| Zstd tingkat 1 kalayan ukuran jandela 64K | 2.74 | 419 MB / s | 1254 MB / s |
| Zstd tingkat 1 | 2.89 | 424 MB / s | 1345 MB / s |
Dukungan pikeun data input anu ageung pisan
zli ayeuna ngadukung ngolah data input anu ageung (ukuranana sababaraha gigabyte). Sateuacan komprési, data sapertos kitu ayeuna sacara otomatis dibagi kana potongan anu ukuranana tiasa diatur (sakitar 16 MB sacara standar), ngawatesan panggunaan mémori, ningkatkeun lokalitas data, sareng ngamungkinkeun pamrosésan paralel. SDDL2 nerapkeun fitur potongan otomatis anu sami nalika damel sareng skéma. Segmentor énggal didamel atanapi diénggalan dina prosésna—pikeun CSV, Parquet, sareng data numerik standar—sareng sadaya segmenter ayeuna tiasa diserialisasi sareng dikonfigurasi, janten tata letak anu dipilih tiasa disimpen dina kompresor sareng dianggo deui engké.
Ieu diterapkeun sacara transparan nalika komprési. Catet yén pipeline latihan béda sareng tetep teu kapangaruhan, janten henteu dirancang pikeun nampi data input anu ageung salaku bahan latihan.
Peningkatan dina visualizer grafik online (nyobaan)
Visualizer ayeuna ngakuan tapak komprési sareng dekompresi ti awal dugi ka akhir.
Panel pratinjau aliran ngamungkinkeun anjeun ningali byte anu sabenerna ngalir di sapanjang unggal sisi, sareng kontrol pamotongan ngajaga aliran ageung tetep gampang dianggo.
Panel setélan ngahijikeun sadaya pilihan tampilan dina hiji tempat, sareng sakumpulan tombol pintas anu lengkep—navigasi arah, traversal anu teratur, ngembang sareng ngaleutikan, sareng pilihan simpul—ngamungkinkeun anjeun pikeun damel sareng alat ieu kalayan merenah tanpa kedah nganggo beurit.
Traces ayeuna tos di-versi, komprési dumasar blok ditampilkeun kalayan leres, sareng zli tungtungna tiasa ngahasilkeun traces sorangan nganggo flag --trace sareng --trace-streams-dir anu énggal.
Разное
- Sababaraha codec parantos ditambahkeun kana katalog. Codec Partition sareng bitpack ayeuna nganggo decoder terpadu. Codec floating-point bitsplit ayeuna kalebet encoder sareng decoder khusus pikeun format fp16, fp32, fp64, sareng bf16 kalayan akselerasi khusus. Pamisahan anu sadar rentang (split_byrange), multiplexer panjang, codec sentinel, grafik lz4, sareng fungsi pembantu minor sapertos tryParseInt sareng splitByParam parantos ditambahkeun.
- API-na parantos disederhanakeun.
- Uji fuzz anu ditingkatkeun.
- Prosés ngawangun sareng ngabungkus anu langkung saé pikeun langkung seueur platform.
sumber: linux.org.ru
