OpenZL 0.2.0

OpenZL 0.2.0 OpenZL 0.2.0

ከሰባት ወራት ልማት በኋላ፣ የማዕቀፉ ስሪት 0.2.0 ተለቋል። ኦፕንዚኤል, ኪሳራ የሌላቸውን የውሂብ መጭመቂያዎችን ለመፍጠር የተነደፈ።

ማዕቀፉ በቋንቋው ውስጥ የተገለጹ ልዩ መጭመቂያዎችን ለመፍጠር መሰረታዊ ቤተ መጻሕፍት እና መሳሪያዎችን ያካትታል ኤስዲኤልኤል.
ጥሩ የሆነ ኮምፕረሰር ለመፍጠር ሁለት ደረጃዎች አሉ፡

  1. አወቃቀርን ለማውጣት የውሂብ ትንተና።
  2. ጥሩ መጭመቂያ ለማግኘት የተገኘውን መዋቅር የሚጠቀሙ ጥሩ የኋላ ክፍል መጭመቂያዎችን መጠቀም።

OpenZL ለሁለቱም ደረጃዎች መሳሪያዎችን ያቀርባል።

ፕሮጀክቱ የተጻፈው በC እና C++ ሲሆን በBSD ፈቃድ ስር ይሰራጫል።

ዋና ለውጦች

SDDL2

SDDL የመጀመሪያውን የዲዛይን ግቦቹን ለማሳካት ከመሠረቱ ሙሉ በሙሉ እንደገና ተጽፏል። የመጀመሪያው ማሳያ ቀለል ያለ የሩጫ ጊዜ አካባቢ ቢሆንም፣ SDDL2 ሙሉ በሙሉ የተጠናከረ ኮምፒውሰር ነው፡ ተንታኙ መረጃን ወደ ፍቺ ተንታኙ ያስተላልፋል፣ ይህም በተራው የተተየበ ረቂቅ የአገባብ ዛፍ (AST) ወደ ኦፕሬተሩ ያስተላልፋል፣ እና ኦፕሬተሩ ምናባዊ የማሽን ባይትኮድ የሚያመነጨውን የኮድ ጀነሬተር ይቆጣጠራል።

ዋናው ውጤት ፈጣን መተንተን ነው። የአንድ መዝገብ ቦታ መለኪያዎችን እና ቋሚዎችን ብቻ በመጠቀም ሙሉ በሙሉ ሊታወቅ ሲችል፣ ሞተሩ ቀደም ሲል የነበሩትን ባይቶች ሳይቃኝ በቀጥታ ወደ ማንኛውም መስክ ይዘላል፣ ይህም ቅጂ-አልባ መዳረሻ እና የበርካታ GB/s ፍሰት እንዲኖር ያስችላል።

ቋንቋው ራሱ ከመሳሪያዎቹ ስብስብ ጎን ለጎን ተሻሽሏል። አሁን ለሁኔታዊ መግለጫዎች፣ ለፓራሜትሪዝድ እና ለማይታወቁ መዝገቦች፣ ለሪከርድ የመስክ አባላት መዳረሻ እና ለቢትዊዝ እና ለሎጂካል ኦፕሬተሮች የቀረቡ አንቀጾችን ይደግፋል።

በገንቢው በኩል፣ የትርጓሜ ትንተና ደረጃ አሁን ያልተገለጹ ማጣቀሻዎችን፣ የአይነት አለመጣጣሞችን እና የአሪቲ ስህተቶችን በኮምፒዩተር ጊዜ - ከምንጭ ኮድ ቦታ ጋር - በማስኬድ ጊዜ ሳይሆን ይለያል፣ እና የ.sddl ፋይሎችን የአገባብ ማድመቂያ ለማድረግ የVS ኮድ ቅጥያ ተለቋል።

አዲስ አብሮ የተሰራ የLZ ኮዴክ

OpenZL አሁን እንደ ZL_GRAPH_LZ የሚወክለውን የራሱን የLZ ኮዴክ እንዲሁም በ zli መገልገያ ውስጥ ተከታታይ የመጭመቂያ መገለጫ ያካትታል። በኮዴኩ ላይ ያለው ስራ በመካሄድ ላይ ነው፣ የባህሪ ስብስቡን እያሰፋ እና አነስተኛ የግብዓት ውሂብ ሲያስኬድ አፈፃፀሙን እያሻሻለ ነው። በአሁኑ ጊዜ፣ ከ zstd ደረጃ 1 ጋር እኩል የሆነ ተግባርን ይደግፋል፣ 64 ኪባ የመጭመቂያ መስኮት አለው።

OpenZL የLZ ቧንቧ እያንዳንዱ ደረጃ ለፍጥነት እንደገና እንዲታደስ ያስችለዋል። የግራፍ አርክቴክቸሩ ለሁሉም የአጠቃቀም ጉዳዮች በእኩል መጠን የሚስማማ ነጠላ የቧንቧ መስመር ከመጠቀም ይልቅ የኢንትሮፒ ኢንኮዲንግ ደረጃዎችን ለማጣመር ያስችላል። ከዚያም በርካታ ደረጃዎች የማቀነባበሪያ ፍጥነትን ለማሻሻል ወደ አንድ ክወና ሊጣመሩ ይችላሉ። ይህም OpenZL በሲሊሲያ ኮርፐስ ላይ ካለው Zstandard ደረጃ 1 ጋር ሲነጻጸር 10% ፈጣን መጭመቂያ እና 70% ፈጣን መጭመቂያ እንዲያገኝ ያስችለዋል። ፈተናዎቻችን:

መጭመቂያመጨናነቅ ሬሾየመጭመቂያ ፍጥነትየመጭመቂያ ፍጥነት
OpenZL LZ ደረጃ 12.74466 ሜባ / ሰ2288 ሜባ / ሰ
የ64K የመስኮት መጠን ያለው የZstd ደረጃ 12.74419 ሜባ / ሰ1254 ሜባ / ሰ
የ Zstd ደረጃ 12.89424 ሜባ / ሰ1345 ሜባ / ሰ

በጣም ትልቅ የግብዓት ውሂብ ድጋፍ

zli አሁን ግዙፍ የግብዓት ውሂብን (በመጠን በርካታ ጊጋባይት) ማቀናበርን ይደግፋል። ከመጨመቁ በፊት፣ እንዲህ ዓይነቱ መረጃ አሁን በራስ-ሰር ወደ ማስተዳደር በሚችሉ መጠን ያላቸው ቁርጥራጮች (በነባሪ በግምት 16 ሜባ) ይከፈላል፣ የማህደረ ትውስታ አጠቃቀምን ይገድባል፣ የውሂብ አካባቢን ያሻሽላል እና ትይዩ ሂደትን ያስችላል። SDDL2 ከንድፍ ጋር ሲሰራ ተመሳሳይ አውቶማቲክ የመቁረጥ ባህሪን ይተገብራል። አዲስ ክፍልፋዮች በሂደቱ ውስጥ ተፈጥረዋል ወይም ተዘምነዋል - ለCSV፣ ለፓርኬት እና ለመደበኛ የቁጥር ውሂብ - እና ሁሉም ክፍልፋዮች አሁን ሊዘረዘሩ እና ሊዋቀሩ የሚችሉ ናቸው፣ ስለዚህ የተመረጠው አቀማመጥ በኮምፕሬተር ውስጥ ሊቀመጥ እና በኋላ ላይ እንደገና ጥቅም ላይ ሊውል ይችላል።

ይህ በመጨመቂያ ወቅት በግልጽ ይተገበራል። የስልጠናው መስመር የተለየ እና ምንም ተጽእኖ እንደሌለው ልብ ይበሉ፣ ስለዚህ ግዙፍ የግብዓት መረጃዎችን እንደ የሥልጠና ቁሳቁስ ለመቀበል የተነደፈ አይደለም።

በኦንላይን ግራፍ ቪዥዋሌር ላይ የተደረጉ ማሻሻያዎች (ሞክር)
የእይታ ባለሙያው አሁን ከጅምሩ እስከ መጨረሻው ድረስ የመጭመቂያ እና የመጨመቂያ ዱካዎችን ያውቃል።

የዥረት ቅድመ እይታ ፓነል ባይቶቹ በእያንዳንዱ ጠርዝ ላይ በትክክል ሲፈሱ እንዲያዩ ያስችልዎታል፣ እና የመከርከሚያ መቆጣጠሪያዎች ትላልቅ ዥረቶችን እንኳን ለመስራት ቀላል ያደርጉታል።

የቅንብሮች ፓነል ሁሉንም የማሳያ አማራጮች በአንድ ቦታ ያመጣቸዋል፣ እና ሙሉ የሆትኪዎች ስብስብ - አቅጣጫዊ አሰሳ፣ የተደረደረ መተላለፊያ፣ መስፋፋት እና መሰባበር፣ እና የኖድ ምርጫ - ያለ መዳፊት ከመሳሪያው ጋር በቀላሉ እንዲሰሩ ያስችልዎታል።

ዱካዎች አሁን ተቀይረዋል፣ በብሎክ ላይ የተመሠረተ መጭመቂያ በትክክል ይታያል፣ እና zli በመጨረሻ አዲሱን --trace እና --trace-streams-dir ባንዲራዎችን በመጠቀም የራሱን ዱካዎች መፍጠር ይችላል።

Разное

  • በርካታ ኮዴኮች ወደ ካታሎጉ ታክለዋል። የክፍፍል እና የቢትፓክ ኮዴኮች አሁን የተዋሃደ ዲኮደር ይጠቀማሉ። የፍሎንግ-ነጥብ ቢትስፕሊት ኮዴክ አሁን ለfp16፣ fp32፣ fp64 እና bf16 ቅርጸቶች ልዩ ፍጥነት ያላቸውን የተቀየሱ ኢንኮደሮችን እና ዲኮደሮችን ያካትታል። ክልል-አውቆ ስፒቲንግ (split_byrange)፣ ርዝመት መልቲፕሌክሰር፣ የሴንቲኔል ኮዴክ፣ lz4 ግራፍ እና እንደ tryParseInt እና splitByParam ያሉ ጥቃቅን አጋዥ ተግባራት ታክለዋል።
  • ኤፒአይው ተሻሽሏል።
  • የተሻሻለ የፉዝ ሙከራ።
  • ለተጨማሪ መድረኮች የተሻሻለ የግንባታ እና የማሸጊያ ሂደት።

ምንጭ: linux.org.ru