ડીપમાઈન્ડે Python માટે JIT કમ્પાઈલર S6 માટે સોર્સ કોડ રીલીઝ કર્યો

S6-ડીપમાઇન્ડ

S6, CPython માટે એકલ JIT કમ્પાઇલર લાઇબ્રેરી છે

ઊંડા મન, આર્ટિફિશિયલ ઇન્ટેલિજન્સ ક્ષેત્રે તેના વિકાસ માટે જાણીતું છે, તાજેતરમાં તેની જાહેરાત કરી હતી S6 પ્રોજેક્ટનો સોર્સ કોડ રિલીઝ કરવાનો નિર્ણય લીધો છે, જે તેણે Python ભાષા માટે JIT કમ્પાઇલરમાંથી વિકસાવી છે.

પ્રોજેક્ટ રસપ્રદ છે કારણ કે એક્સ્ટેંશન લાઇબ્રેરી તરીકે ડિઝાઇન કરવામાં આવી છે જે પ્રમાણભૂત CPython સાથે સંકલિત કરી શકાય છે, જે સંપૂર્ણ CPython સુસંગતતા પૂરી પાડે છે અને ફેરફારની જરૂર નથી દુભાષિયા કોડનો. આ પ્રોજેક્ટ 2019 થી વિકાસમાં છે, પરંતુ કમનસીબે પાછું માપવામાં આવ્યું છે અને હવે વિકાસમાં નથી.

S6 એ 2019 માં ડીપમાઇન્ડમાં જસ્ટ-ઇન-ટાઇમ ("JIT") સંકલન સાથે CPythonને ઝડપી બનાવવા માટે શરૂ કરાયેલ એક પ્રોજેક્ટ હતો. આ કાર્યો સામાન્ય પાયથોન લાઇબ્રેરી તરીકે પ્રદાન કરવામાં આવશે અને CPython દુભાષિયામાં કોઈ ફેરફારની જરૂર રહેશે નહીં. S6 એ પાયથોન માટે કરવા ઇરાદો રાખ્યો હતો જે V8એ Javascript માટે કર્યું હતું (નામ V8 ને અંજલિ છે). કાર્ય CPython સંસ્કરણ 3.7 પર આધારિત હતું. વર્કલોડના આધારે, અમે સામાન્ય બેન્ચમાર્ક્સમાં 9.5x સુધીની ઝડપ જોઈ.

સોર્સ કોડ રીલીઝ કરવાનો નિર્ણય કેમ લેવામાં આવ્યો તેનું મુખ્ય કારણ, તેમાંથી એક અને પહેલેથી જ ઉલ્લેખ કર્યો છે કે પ્રોજેક્ટને સપોર્ટ મળવાનું બંધ થઈ ગયું હતું, અન્ય મુખ્ય કારણ એ આપવામાં આવ્યું હતું કે બનાવેલ વિકાસના આધારે, તે હજુ પણ અજગરને સુધારવા માટે ઉપયોગી થઈ શકે છે. .

અમે આંતરિક રીતે S6 પર કામ કરવાનું બંધ કરી દીધું છે. જેમ કે, આ રીપોઝીટરી આર્કાઇવ કરવામાં આવી છે અને અમે પુલ વિનંતીઓ અથવા સમસ્યાઓ સ્વીકારતા નથી. અમે પાયથોન સમુદાયમાં વાતચીતને ઉત્તેજીત કરવા અને પાયથોનને બહેતર બનાવવા માટે ભાવિ કાર્યને પ્રેરણા આપવા માટે નીચે આપેલ ઓપન સોર્સ અને ડિઝાઇન વિહંગાવલોકન પ્રદાન કર્યું છે.

S6 ની કામગીરી અંગે, આપણે તેનો ઉલ્લેખ કરવો જોઈએ Python માટે S6 JavaScript માટે V8 એન્જિન સાથે સરખાવે છે કાર્યોની દ્રષ્ટિએ તે હલ કરે છે. લાઇબ્રેરી હાલના ceval.c બાયટેકોડ ઇન્ટરપ્રીટર ડ્રાઇવરને તેના પોતાના અમલીકરણ સાથે બદલે છે જે એક્ઝેક્યુશનને ઝડપી બનાવવા JIT કમ્પાઇલેશનનો ઉપયોગ કરે છે.

S6 ચકાસે છે કે શું વર્તમાન ફંક્શન પહેલેથી જ કમ્પાઈલ કરવામાં આવ્યું છે અને, જો એમ હોય તો, સંકલિત કોડને એક્ઝિક્યુટ કરે છે, અને જો નહીં, તો CPython ઈન્ટરપ્રીટર જેવા જ બાઈટકોડ ઈન્ટરપ્રિટેશન મોડમાં ફંક્શનને એક્ઝિક્યુટ કરે છે. અર્થઘટન પ્રક્રિયા કરવામાં આવી રહેલ કાર્ય સાથે સંકળાયેલા એક્ઝિક્યુટેડ સ્ટેટમેન્ટ અને કૉલ્સની સંખ્યા ગણે છે.

ચોક્કસ સીમાચિહ્ન પર પહોંચ્યા પછી, કોડને ઝડપી બનાવવા માટે બિલ્ડ પ્રક્રિયા શરૂ કરવામાં આવે છે જે વારંવાર ચાલે છે. કમ્પાઇલેશન સ્ટ્રોંગજીત મધ્યવર્તી રજૂઆત પર કરવામાં આવે છે, જે ઑપ્ટિમાઇઝેશન પછી, asmjit લાઇબ્રેરીનો ઉપયોગ કરીને લક્ષ્ય સિસ્ટમ મશીન સૂચનાઓમાં રૂપાંતરિત થાય છે.

લોડની પ્રકૃતિ પર આધાર રાખીને, શ્રેષ્ઠ પરિસ્થિતિઓમાં, S6 નિયમિત CPython ની સરખામણીમાં 9,5 ગણો સુધી ટેસ્ટ એક્ઝિક્યુશન સ્પીડમાં વધારો દર્શાવે છે.

જ્યારે 100 પુનરાવર્તનો ચલાવવામાં આવે છે રિચાર્ડ્સ ટેસ્ટ સ્યુટમાંથી, ત્યાં 7 ગણો પ્રવેગક છે, અને જ્યારે Raytrace ટેસ્ટ ચલાવો, જેમાં ઘણું ગણિત હોય છે, તે 3 થી 4,5 ગણું ઝડપી છે.

ઑપ્ટિમાઇઝ કરવા મુશ્કેલ હોય તેવા કાર્યો S6 સાથે એવા પ્રોજેક્ટ છે જે C API નો ઉપયોગ કરે છે, જેમ કે NumPy, તેમજ મોટી સંખ્યામાં મૂલ્યોના પ્રકારોને તપાસવાની જરૂરિયાત સાથે સંબંધિત કામગીરી.

સિંગલ ફંક્શન કોલ્સ માટે પણ ખરાબ પ્રદર્શન જોવા મળે છે જે S6 પાયથોન ઈન્ટરપ્રીટર (વિકાસ અર્થઘટન મોડ ઓપ્ટિમાઈઝેશનના સ્ટેજ પર પહોંચ્યો નથી) ના બિન-ઓપ્ટિમાઇઝ અમલીકરણના ઉપયોગને કારણે ઘણાં સંસાધનોનો ઉપયોગ કરે છે.

ઉદાહરણ તરીકે, અનપૅક સિક્વન્સ ટેસ્ટમાં, જે એરે/ટ્યુપલ્સના મોટા સેટને અનપૅક કરે છે, એક કૉલ 5 ગણો સુધીનો મંદી દર્શાવે છે, અને એક ચક્રીય કૉલ CPython થી 0,97 ઉપજ આપે છે.

છેલ્લે તે વિશે વધુ જાણવા માટે રસ ધરાવતા લોકો માટે, તમારે જાણવું જોઈએ કે JIT કમ્પાઈલર કોડ C++ માં લખાયેલ છે અને હાલમાં CPython 3.7 પર આધારિત છે, તે ઉપરાંત એ હકીકત ઉપરાંત કે સ્રોત કોડ પહેલેથી Apache 2.0 લાયસન્સ હેઠળ ખુલ્લો છે અને તેની સલાહ લઈ શકાય છે. નીચેની લિંકમાંથી.


તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: મિગ્યુએલ gelંજેલ ગેટóન
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.