ДеепМинд С6 отвореног кода, библиотека са имплементацијом ЈИТ компајлера за ЦПитхон

ДеепМинд, познат по својим развојима у области вештачке интелигенције, отворио је изворни код пројекта С6, који је развио ЈИТ компајлер за језик Пајтон. Пројекат је занимљив јер је дизајниран као библиотека проширења која се интегрише са стандардним ЦПитхон-ом, обезбеђујући пуну компатибилност са ЦПитхон-ом и не захтевајући модификацију кода интерпретатора. Пројекат се развија од 2019. године, али је, нажалост, прекинут и више се не развија. Пошто креирани развоји могу бити корисни за побољшање Питхон-а, одлучено је да се код отвореног кода. ЈИТ компајлерски код је написан у Ц++ и заснован је на ЦПитхон 3.7. и отвореног кода под лиценцом Апацхе 2.0.

У погледу задатака које може да реши, С6 за Питхон се пореди са В8 мотором за ЈаваСцрипт. Библиотека замењује постојећи обрађивач бајткода цевал.ц са сопственом имплементацијом која користи ЈИТ компилацију да би убрзала извршење. С6 проверава да ли је тренутна функција већ компајлирана и, ако јесте, извршава преведени код, а ако није, покреће функцију у режиму интерпретације бајткода, слично ЦПитхон интерпретеру. Током интерпретације, број извршених инструкција и позива повезаних са функцијом која се обрађује се броји. Након достизања одређене прекретнице, покреће се процес компилације да би се убрзао често извршавани код. Компилација се врши у средњу стронгјит репрезентацију, која се након оптимизације конвертује у машинске инструкције циљног система користећи асмјит библиотеку.

У зависности од природе оптерећења, С6 под оптималним условима показује повећање брзине извршења теста до 9.5 пута у поређењу са обичним ЦПитхон-ом. Приликом покретања 100 итерација Ричардсовог тестног пакета, примећује се убрзање од 7к, а када се покреће Раитраце тест, који укључује велику количину математичких прорачуна, примећује се убрзање од 3-4.5к.

Међу задацима које је тешко оптимизовати коришћењем С6 су пројекти који користе Ц АПИ, као што је НумПи, као и операције које се односе на потребу провере типова великог броја вредности. Ниске перформансе се такође примећују за појединачне позиве ресурсно интензивних функција због употребе сопствене неоптимизоване имплементације Питхон интерпретера (развој није достигао фазу оптимизације режима интерпретације). На пример, у тесту Унпацк Секуенце, који распакује велике скупове низова/торки, са једним позивом долази до успоравања до 6 пута, а са цикличним позивом перформансе су 5 од ЦПитхон-а.

Извор: опеннет.ру

Купите поуздан хостинг за сајтове са ДДоС заштитом, ВПС ВДС сервере 🔥 Купите поуздан веб хостинг са DDoS заштитом, VPS VDS сервере | ProHoster