DeepMind خلاص سرچینه S6، د CPython لپاره د JIT کمپیلر تطبیق سره یو کتابتون

ډیپ مائنډ ، د مصنوعي استخباراتو په برخه کې د خپلو پرمختګونو لپاره پیژندل شوی ، د S6 پروژې سرچینې کوډ خلاص کړی ، کوم چې د Python ژبې لپاره د JIT کمپیلر رامینځته کړی. پروژه په زړه پورې ده ځکه چې دا د تمدید کتابتون په توګه ډیزاین شوی چې د معیاري CPython سره مدغم کیږي، د CPython سره بشپړ مطابقت یقیني کوي او د ژباړونکي کوډ تعدیل ته اړتیا نلري. دا پروژه له 2019 راهیسې وده کوي، مګر له بده مرغه دا بنده شوه او نور پرمختګ نه کوي. څنګه چې رامینځته شوي پرمختګونه ممکن د پایتون ښه کولو لپاره ګټور وي ، نو پریکړه وشوه چې کوډ خلاص کړئ سرچینه. د JIT کمپیلر کوډ په C++ کې لیکل شوی او د CPython 3.7 پر بنسټ والړ دی. او د اپاچی 2.0 جواز لاندې خلاص سرچینه ده.

د دندو په شرایطو کې چې دا کولی شي حل کړي، د Python لپاره S6 د جاواسکریپټ لپاره د V8 انجن سره پرتله کوي. کتابتون د موجوده بایټکوډ ژباړونکي هینډلر ceval.c په خپل پلي کولو سره بدلوي چې د اجرا کولو ګړندي کولو لپاره د JIT تالیف کاروي. S6 ګوري چې ایا اوسنی فنکشن دمخه تالیف شوی او که داسې وي ، تالیف شوی کوډ اجرا کوي ، او که نه ، فنکشن د بایټکوډ تشریح حالت کې پرمخ وړي ، د CPython ژباړونکي ته ورته. د تفسیر په جریان کې، د اجرا شوي لارښوونو او تلیفونونو شمیر شمیرل کیږي چې د پروسس شوي فعالیت سره تړاو لري. یو ټاکلي هدف ته رسیدو وروسته، د تالیف پروسه پیل کیږي ترڅو په مکرر ډول اجرا شوي کوډ ګړندی کړي. تالیف په منځمهاله قوي جیټ نمایش کې ترسره کیږي، کوم چې د اصلاح کولو وروسته، د اسمجیټ کتابتون په کارولو سره د هدف سیسټم ماشین لارښوونو ته بدلیږي.

د کاري بار په نوعیت پورې اړه لري، S6 د غوره شرایطو لاندې د منظم CPython په پرتله د ازموینې اجرا کولو سرعت کې 9.5 ځله زیاتوالی ښیې. کله چې د ریچارډز ټیسټ سوټ 100 تکرارونه پرمخ وړي، د 7x سرعت لیدل کیږي، او کله چې د Raytrace ټیسټ چلول کیږي، کوم چې د ریاضياتي محاسبې لوی مقدار پکې شامل وي، د 3-4.5x سرعت لیدل کیږي.

د هغو کارونو په منځ کې چې د S6 په کارولو سره اصلاح کول ستونزمن دي هغه پروژې دي چې C API کاروي، لکه NumPy، او همدارنګه د لوی شمیر ارزښتونو ډولونو چک کولو اړتیا سره تړلي عملیات. د Python ژباړونکي د S6 د خپل غیر مطلوب پلي کولو کارولو له امله د سرچینې - ګړندي فعالیتونو واحد کالونو لپاره ټیټ فعالیت هم لیدل کیږي (پرمختګ د تشریح حالت اصلاح کولو مرحلې ته نه دی رسیدلی). د مثال په توګه، د Unpack Sequence ټیسټ کې، کوم چې د سرونو/ټوپلونو لوی سیټونه خلاصوي، د یو واحد زنګ سره تر 5 ځله پورې سست دی، او د سایکلیک کال سره فعالیت د CPython څخه 0.97 دی.

سرچینه: opennet.ru

Add a comment