DeepMind විසින් Python සඳහා JIT සම්පාදකයක් වන S6 සඳහා මූල කේතය නිකුත් කරන ලදී

S6-ගැඹුරු මනස

S6, යනු CPython සඳහා වූ ස්වාධීන JIT සම්පාදක පුස්තකාලයකි

ගැඹුරු මනස, කෘත්‍රිම බුද්ධි ක්ෂේත්‍රයේ එහි වර්ධනයන් සඳහා ප්‍රසිද්ධ, මෑතකදී නිවේදනය කරන ලදී S6 ව්‍යාපෘතියේ මූල කේතය නිකුත් කිරීමට තීරණය කර ඇත, එය ඔහු Python භාෂාව සඳහා JIT සම්පාදකයකින් සංවර්ධනය කරන ලදී.

ව්යාපෘතිය සිත්ගන්නා සුළුය නිසා දිගු පුස්තකාලයක් ලෙස නිර්මාණය කර ඇත සම්මත CPython සමඟ ඒකාබද්ධ කළ හැකි, කුමන සම්පූර්ණ CPython ගැළපුම සපයන අතර වෙනස් කිරීමක් අවශ්‍ය නොවේ පරිවර්තක කේතයෙන්. මෙම ව්‍යාපෘතිය 2019 වසරේ සිට සංවර්ධනය වෙමින් පවතින නමුත් අවාසනාවන්ත ලෙස නැවත පරිමාණය කර ඇති අතර එය තවදුරටත් සංවර්ධනයේ නොමැත.

S6 යනු නියමිත වේලාවට ("JIT") සම්පාදනය සමඟ CPython වේගවත් කිරීම සඳහා 2019 දී DeepMind තුළ ආරම්භ කරන ලද ව්‍යාපෘතියකි. මෙම කාර්යයන් සාමාන්‍ය පයිතන් පුස්තකාලයක් ලෙස සපයනු ලබන අතර CPython පරිවර්තකයේ කිසිදු වෙනසක් අවශ්‍ය නොවේ. S6 ජාවාස්ක්‍රිප්ට් සඳහා V8 කළ දේ පයිතන් සඳහා කිරීමට අදහස් කළේය (නම V8 ට උපහාරයකි). කාර්යය CPython අනුවාදය 3.7 මත පදනම් විය. කාර්ය භාරය මත පදනම්ව, අපි පොදු මිණුම් සලකුණු වල 9.5x දක්වා වේගවත් කිරීම් දුටුවෙමු.

මූලාශ්‍ර කේතය නිකුත් කිරීමට තීරණය කිරීමට ප්‍රධාන හේතුව, ඒවායින් එකක් සහ දැනටමත් සඳහන් කර ඇති පරිදි ව්‍යාපෘතියට සහය දැක්වීම නැවැත්වීම, තවත් ප්‍රධාන හේතුවක් ලෙස දක්වා ඇත්තේ නිර්මාණය කරන ලද වර්ධනයන් මත පදනම්ව, මේවා තවමත් python වැඩිදියුණු කිරීමට ප්‍රයෝජනවත් විය හැකි බවයි. .

අපි S6 අභ්‍යන්තරව වැඩ කිරීම නවත්වා ඇත. එනිසා, මෙම ගබඩාව සංරක්ෂණය කර ඇති අතර අපි ඇදීමේ ඉල්ලීම් හෝ ගැටළු භාර නොගනිමු. Python ප්‍රජාව තුළ සංවාද උත්තේජනය කිරීමට සහ Python වැඩිදියුණු කිරීම සඳහා අනාගත වැඩ සඳහා පෙළඹවීමට අපි විවෘත මූලාශ්‍ර සහ නිර්මාණ දළ විශ්ලේෂණයක් පහතින් ලබා දුන්නෙමු.

S6 හි ක්‍රියාකාරිත්වය සම්බන්ධයෙන්, අපි එය සඳහන් කළ යුතුය Python සඳහා S6, JavaScript සඳහා V8 එන්ජිම සමඟ සංසන්දනය කරයි කාර්යයන් අනුව එය විසඳයි. පුස්තකාලය දැනට පවතින ceval.c bytecode භාෂා පරිවර්තක ධාවකය වෙනුවට JIT සම්පාදනය ක්‍රියාත්මක කිරීම වේගවත් කිරීම සඳහා භාවිතා කරන තමන්ගේම ක්‍රියාත්මක කිරීමකින් ප්‍රතිස්ථාපනය කරයි.

S6 වත්මන් ශ්‍රිතය දැනටමත් සම්පාදනය කර ඇත්දැයි පරීක්ෂා කරයි සහ, එසේ නම්, සම්පාදනය කරන ලද කේතය ක්‍රියාත්මක කරයි, එසේ නොවේ නම්, CPython පරිවර්තකයට සමාන bytecode අර්ථකථන මාදිලියකින් ශ්‍රිතය ක්‍රියාත්මක කරයි. අර්ථ නිරූපණය මඟින් ක්‍රියාවට නංවන ලද ශ්‍රිතයට සම්බන්ධ ක්‍රියාත්මක කරන ලද ප්‍රකාශ සහ ඇමතුම් ගණන ගණනය කරයි.

නිශ්චිත සන්ධිස්ථානයකට ළඟා වූ පසු, කේතය වේගවත් කිරීම සඳහා ගොඩනැගීමේ ක්රියාවලිය ආරම්භ වේ නිතර දුවන. ප්‍රශස්තිකරණයෙන් පසුව asmjit පුස්තකාලය භාවිතයෙන් ඉලක්කගත පද්ධති යන්ත්‍ර උපදෙස් බවට පරිවර්තනය කෙරෙන strongjit අතරමැදි නිරූපණය මත සම්පාදනය සිදු කෙරේ.

බර පැටවීමේ ස්වභාවය අනුව, ප්‍රශස්ත තත්ව යටතේ, සාමාන්‍ය CPython හා සසඳන විට S6 පරීක්ෂණ ක්‍රියාත්මක කිරීමේ වේගය 9,5 ගුණයක් දක්වා වැඩි වීමක් පෙන්නුම් කරයි.

පුනරාවර්තන 100 ක් ක්රියාත්මක කරන විට රිචඩ්ස් පරීක්ෂණ කට්ටලයෙන්, 7 ගුණයක ත්වරණයක් ඇත, සහ ගණිතය ගොඩක් අඩංගු Raytrace පරීක්ෂණය ධාවනය කරන විට, එය 3 සිට 4,5 ගුණයකින් වේගවත් වේ.

ප්‍රශස්ත කිරීමට අපහසු කාර්යයන් S6 සමඟ C API භාවිතා කරන ව්‍යාපෘති වේ, NumPy වැනි, මෙන්ම විශාල අගයන් ගණනක වර්ග පරීක්ෂා කිරීමේ අවශ්‍යතාවයට අදාළ මෙහෙයුම්.

තනි ක්‍රියාකාරී ඇමතුම් සඳහා දුර්වල ක්‍රියාකාරිත්වය ද දක්නට ලැබේ S6 පයිතන් පරිවර්තකයේ ප්‍රශස්ත නොවන ක්‍රියාත්මක කිරීම හේතුවෙන් සම්පත් විශාල ප්‍රමාණයක් පරිභෝජනය කරයි (සංවර්ධනය අර්ථකථන මාදිලි ප්‍රශස්තිකරණයේ අදියරට පැමිණ නැත).

උදාහරණයක් ලෙස, Unpack Sequence පරීක්ෂණයේදී, විශාල arrays/tuples කට්ටල අසුරන විට, එක් ඇමතුමක් 5 ගුණයක් දක්වා මන්දගාමී වීමක් පෙන්නුම් කරයි, සහ චක්‍රීය ඇමතුමක් CPython වෙතින් 0,97 ලබා ගනී.

අවසානයේ ඒ ගැන වැඩි විස්තර දැන ගැනීමට කැමති අය සඳහා, JIT සම්පාදක කේතය C++ වලින් ලියා ඇති අතර දැනට CPython 3.7 මත පදනම් වී ඇති බව ඔබ දැන සිටිය යුතුය, ඊට අමතරව මූල කේතය Apache 2.0 බලපත්‍රය යටතේ විවෘතව පවතින අතර උපදෙස් ලබා ගත හැක. පහත සබැඳියෙන්.


ලිපියේ අන්තර්ගතය අපගේ මූලධර්මවලට අනුකූල වේ කතුවැකි ආචාර ධර්ම. දෝෂයක් වාර්තා කිරීමට ක්ලික් කරන්න මෙන්න.

අදහස් පළ කිරීමට ප්රථම වන්න

ඔබේ අදහස තබන්න

ඔබේ ඊ-මේල් ලිපිනය පළ කරනු නොලැබේ. අවශ්ය ක්ෂේත්ර දක්වා ඇති ලකුණ *

*

*

  1. දත්ත සඳහා වගකිව යුතු: මිගෙල් ඇන්ජල් ගැටන්
  2. දත්තවල අරමුණ: SPAM පාලනය කිරීම, අදහස් කළමනාකරණය.
  3. නීත්‍යානුකූලභාවය: ඔබේ කැමැත්ත
  4. දත්ත සන්නිවේදනය: නෛතික බැඳීමකින් හැර දත්ත තෙවන පාර්ශවයකට සන්නිවේදනය නොකෙරේ.
  5. දත්ත ගබඩා කිරීම: ඔක්සෙන්ටස් නෙට්වර්ක්ස් (EU) විසින් සත්කාරකත්වය දක්වන දත්ත සමුදාය
  6. අයිතිවාසිකම්: ඕනෑම වේලාවක ඔබට ඔබේ තොරතුරු සීමා කිරීමට, නැවත ලබා ගැනීමට සහ මකා දැමීමට හැකිය.