ఏడు నెలల అభివృద్ధి తర్వాత, ఫ్రేమ్వర్క్ యొక్క వెర్షన్ 0.2.0 విడుదల చేయబడింది. ఓపెన్జెడ్ఎల్నష్టరహిత డేటా కంప్రెసర్లను సృష్టించడానికి రూపొందించబడింది.
ఈ ఫ్రేమ్వర్క్లో ఒక బేస్ లైబ్రరీ మరియు భాషలో వివరించిన ప్రత్యేకమైన కంప్రెసర్లను సృష్టించడానికి టూల్స్ ఉంటాయి. ఎస్.డి.డి.ఎల్..
మంచి ప్రత్యేక కంప్రెసర్ను రూపొందించడానికి రెండు దశలు ఉన్నాయి:
- నిర్మాణాన్ని వెలికితీయడానికి డేటా విశ్లేషణ.
- మంచి కంప్రెషన్ను సాధించడానికి, ఏర్పడిన నిర్మాణాన్ని ఉపయోగించుకునే మంచి బ్యాకెండ్ కంప్రెసర్లను వాడటం.
OpenZL రెండు దశలకూ సాధనాలను అందిస్తుంది.
ఈ ప్రాజెక్ట్ C మరియు C++ భాషలలో వ్రాయబడింది మరియు BSD లైసెన్స్ క్రింద పంపిణీ చేయబడింది.
ప్రధాన మార్పులు
SDDL2
SDDL దాని అసలు రూపకల్పన లక్ష్యాలను సాధించడానికి పూర్తిగా మొదటి నుండి తిరిగి వ్రాయబడింది. అసలు డెమో ఒక సరళీకృత రన్టైమ్ ఎన్విరాన్మెంట్ కాగా, SDDL2 ఒక పూర్తి స్థాయి కంపైలర్: పార్సర్ డేటాను సెమాంటిక్ ఎనలైజర్కు పంపుతుంది, అది తిరిగి టైప్డ్ అబ్స్ట్రాక్ట్ సింటాక్స్ ట్రీ (AST)ని ఆప్టిమైజర్కు పంపుతుంది, మరియు ఆప్టిమైజర్ కోడ్ జెనరేటర్ను నియంత్రిస్తుంది, అది వర్చువల్ మెషీన్ బైట్కోడ్ను ఉత్పత్తి చేస్తుంది.
దీని ముఖ్య ఫలితం తక్షణ పార్సింగ్. కేవలం పారామీటర్లు మరియు స్థిరాంకాలను ఉపయోగించి ఒక రికార్డ్ యొక్క స్థానాన్ని పూర్తిగా నిర్ధారించగలిగినప్పుడు, ఇంజిన్ మునుపటి బైట్లను స్కాన్ చేయకుండా నేరుగా ఏ ఫీల్డ్కైనా వెళుతుంది, దీనివల్ల కాపీ అవసరం లేని యాక్సెస్ మరియు అనేక GB/s థ్రూపుట్ సాధ్యమవుతుంది.
భాష దాని టూల్సెట్తో పాటుగా అభివృద్ధి చెందింది. ఇది ఇప్పుడు షరతులతో కూడిన స్టేట్మెంట్ల కోసం వెన్ క్లాజులు, పారామితీకరించిన మరియు అనామక రికార్డులు, రికార్డ్ ఫీల్డ్ మెంబర్లకు యాక్సెస్, మరియు బిట్వైస్ మరియు లాజికల్ ఆపరేటర్లకు మద్దతు ఇస్తుంది.
డెవలపర్ వైపు, సెమాంటిక్ విశ్లేషణ దశ ఇప్పుడు రన్టైమ్లో కాకుండా కంపైల్ సమయంలోనే (సోర్స్ కోడ్ లొకేషన్తో సహా) నిర్వచించబడని రిఫరెన్స్లు, టైప్ మిస్మ్యాచ్లు మరియు ఆరిటీ ఎర్రర్లను గుర్తిస్తుంది, మరియు .sddl ఫైల్ల సింటాక్స్ హైలైటింగ్ కోసం ఒక VS కోడ్ ఎక్స్టెన్షన్ విడుదల చేయబడింది.
కొత్త అంతర్నిర్మిత LZ కోడెక్
OpenZL ఇప్పుడు ZL_GRAPH_LZ గా సూచించబడిన దాని స్వంత LZ కోడెక్ను, అలాగే zli యుటిలిటీలో ఒక సీక్వెన్షియల్ కంప్రెషన్ ప్రొఫైల్ను కలిగి ఉంది. ఈ కోడెక్పై పని కొనసాగుతోంది, ఇది దాని ఫీచర్ సెట్ను విస్తరిస్తూ మరియు చిన్న ఇన్పుట్ డేటాను ప్రాసెస్ చేసేటప్పుడు పనితీరును మెరుగుపరుస్తుంది. ప్రస్తుతం, ఇది 64 KB కంప్రెషన్ విండోతో, zstd లెవెల్ 1కి సమానమైన కార్యాచరణకు మద్దతు ఇస్తుంది.
OpenZL, LZ పైప్లైన్లోని ప్రతి దశను వేగం కోసం పునఃరూపకల్పన చేయడానికి అనుమతిస్తుంది. దీని గ్రాఫ్ ఆర్కిటెక్చర్, అన్ని వినియోగ సందర్భాలకు సమానంగా సరిపోయే ఒకే పైప్లైన్ను ఉపయోగించడానికి బదులుగా, ఎంట్రోపీ ఎన్కోడింగ్ దశలను కలపడానికి కూడా వీలు కల్పిస్తుంది. ప్రాసెసింగ్ వేగాన్ని మెరుగుపరచడానికి బహుళ దశలను ఒకే ఆపరేషన్గా కలపవచ్చు. దీనివల్ల, సిలేసియా కార్పస్పై Zstandard స్థాయి 1తో పోలిస్తే OpenZL 10% వేగవంతమైన కంప్రెషన్ మరియు 70% వేగవంతమైన డీకంప్రెషన్ను సాధించగలుగుతుంది. మా పరీక్షలు:
| కంప్రెసర్ | కుదింపు నిష్పత్తి | సంపీడన వేగం | డీకంప్రెషన్ వేగం |
|---|---|---|---|
| OpenZL LZ స్థాయి 1 | 2.74 | 11 MB / s | 11 MB / s |
| 64K విండో సైజుతో Zstd స్థాయి 1 | 2.74 | 11 MB / s | 11 MB / s |
| Zstd స్థాయి 1 | 2.89 | 11 MB / s | 11 MB / s |
చాలా పెద్ద ఇన్పుట్ డేటాకు మద్దతు
zli ఇప్పుడు భారీ ఇన్పుట్ డేటాను (అనేక గిగాబైట్ల పరిమాణంలో) ప్రాసెస్ చేయడానికి మద్దతు ఇస్తుంది. కంప్రెషన్కు ముందు, అటువంటి డేటా ఇప్పుడు స్వయంచాలకంగా నిర్వహించదగిన పరిమాణంలోని భాగాలుగా (డిఫాల్ట్గా సుమారు 16 MB) విభజించబడుతుంది, ఇది మెమరీ వినియోగాన్ని పరిమితం చేస్తుంది, డేటా లోకాలిటీని మెరుగుపరుస్తుంది మరియు సమాంతర ప్రాసెసింగ్ను సాధ్యం చేస్తుంది. స్కీమాతో పనిచేసేటప్పుడు SDDL2 కూడా ఇలాంటి స్వయంచాలక చంకింగ్ ఫీచర్ను అమలు చేస్తుంది. ఈ ప్రక్రియలో CSV, Parquet మరియు ప్రామాణిక సంఖ్యా డేటా కోసం కొత్త సెగ్మెంటర్లు సృష్టించబడ్డాయి లేదా నవీకరించబడ్డాయి—మరియు ఇప్పుడు అన్ని సెగ్మెంటర్లు సీరియలైజబుల్ మరియు కాన్ఫిగర్ చేయదగినవిగా ఉన్నాయి, కాబట్టి ఎంచుకున్న లేఅవుట్ను కంప్రెసర్లో సేవ్ చేసి తర్వాత తిరిగి ఉపయోగించుకోవచ్చు.
కంప్రెషన్ సమయంలో ఇది పారదర్శకంగా వర్తింపజేయబడుతుంది. ట్రైనింగ్ పైప్లైన్ భిన్నంగా ఉంటుందని మరియు ప్రభావితం కాదని గమనించండి, కాబట్టి ఇది భారీ ఇన్పుట్ డేటాను శిక్షణా సామగ్రిగా స్వీకరించడానికి రూపొందించబడలేదు.
ఆన్లైన్ గ్రాఫ్ విజువలైజర్లో మెరుగుదలలు (ప్రయత్నించు)
విజువలైజర్ ఇప్పుడు కంప్రెషన్ మరియు డీకంప్రెషన్ ట్రేస్లను మొదలు నుండి చివరి వరకు గుర్తిస్తుంది.
స్ట్రీమ్ ప్రివ్యూ ప్యానెల్ ప్రతి అంచు వెంబడి వాస్తవంగా ప్రవహిస్తున్న బైట్లను చూడటానికి మిమ్మల్ని అనుమతిస్తుంది మరియు ట్రిమ్మింగ్ నియంత్రణలు పెద్ద స్ట్రీమ్లతో కూడా సులభంగా పని చేయడానికి వీలు కల్పిస్తాయి.
సెట్టింగ్స్ ప్యానెల్ అన్ని డిస్ప్లే ఆప్షన్లను ఒకే చోటకి తీసుకువస్తుంది, మరియు దిశాత్మక నావిగేషన్, క్రమబద్ధమైన సంచారం, విస్తరించడం మరియు కుదించడం, మరియు నోడ్ ఎంపిక వంటి పూర్తి స్థాయి హాట్కీలు మౌస్ లేకుండానే ఈ టూల్తో సౌకర్యవంతంగా పనిచేయడానికి మిమ్మల్ని అనుమతిస్తాయి.
ట్రేస్లు ఇప్పుడు వెర్షన్ చేయబడ్డాయి, బ్లాక్-ఆధారిత కంప్రెషన్ సరిగ్గా ప్రదర్శించబడుతుంది మరియు zli చివరకు కొత్త --trace మరియు --trace-streams-dir ఫ్లాగ్లను ఉపయోగించి దాని స్వంత ట్రేస్లను రూపొందించగలదు.
Разное
- కేటలాగ్కు అనేక కోడెక్లు జోడించబడ్డాయి. పార్టిషన్ మరియు బిట్ప్యాక్ కోడెక్లు ఇప్పుడు ఏకీకృత డీకోడర్ను ఉపయోగిస్తాయి. ఫ్లోటింగ్-పాయింట్ బిట్స్ప్లిట్ కోడెక్ ఇప్పుడు fp16, fp32, fp64, మరియు bf16 ఫార్మాట్ల కోసం ప్రత్యేకమైన ఎన్కోడర్లు మరియు డీకోడర్లను, ప్రత్యేకమైన యాక్సిలరేషన్తో కలిగి ఉంది. రేంజ్-అవేర్ స్ప్లిటింగ్ (split_byrange), ఒక లెంగ్త్ మల్టిప్లెక్సర్, సెంటినెల్ కోడెక్, ఒక lz4 గ్రాఫ్, మరియు tryParseInt మరియు splitByParam వంటి చిన్న సహాయక ఫంక్షన్లు జోడించబడ్డాయి.
- API సరళీకరించబడింది.
- మెరుగైన ఫజ్ టెస్టింగ్.
- మరిన్ని ప్లాట్ఫారమ్ల కోసం బిల్డ్ మరియు ప్యాకేజింగ్ ప్రక్రియను మెరుగుపరచడం జరిగింది.
మూలం: linux.org.ru
