LLVM સર્જક નવી મોજો પ્રોગ્રામિંગ ભાષા વિકસાવે છે

એલએલવીએમના સ્થાપક અને મુખ્ય આર્કિટેક્ટ અને સ્વિફ્ટ પ્રોગ્રામિંગ લેંગ્વેજના નિર્માતા ક્રિસ લેટનર અને ટેન્સરફ્લો અને જેએએક્સ જેવા Google AI પ્રોજેક્ટના ભૂતપૂર્વ વડા ટિમ ડેવિસે નવી પ્રોગ્રામિંગ ભાષા, મોજો રજૂ કરી, જે સંશોધન વિકાસ અને ઉપયોગમાં સરળતા સાથે જોડાયેલી છે. ઉચ્ચ-પ્રદર્શન અંતિમ ઉત્પાદનોની રચના કરવાની ક્ષમતા સાથે ઝડપી પ્રોટોટાઇપિંગ. પ્રથમ પાયથોન ભાષાના પરિચિત વાક્યરચનાના ઉપયોગ દ્વારા પ્રાપ્ત થાય છે, અને બીજું મશીન કોડમાં કમ્પાઇલ કરવાની ક્ષમતા, મેમરી-સેફ મિકેનિઝમ્સ અને હાર્ડવેર પ્રવેગક સાધનોના ઉપયોગ દ્વારા પ્રાપ્ત થાય છે.

આ પ્રોજેક્ટ મશીન લર્નિંગના ક્ષેત્રમાં વિકાસ માટે ઉપયોગ પર કેન્દ્રિત છે, પરંતુ તે સામાન્ય હેતુની ભાષા તરીકે રજૂ કરવામાં આવે છે જે સિસ્ટમ પ્રોગ્રામિંગ ટૂલ્સ સાથે પાયથોનની ક્ષમતાઓને વિસ્તૃત કરે છે અને વિશાળ શ્રેણીના કાર્યો માટે યોગ્ય છે. ઉદાહરણ તરીકે, ભાષા ઉચ્ચ-પ્રદર્શન કમ્પ્યુટિંગ, ડેટા પ્રોસેસિંગ અને ટ્રાન્સફોર્મેશન જેવા ક્ષેત્રોને લાગુ પડે છે. Mojo ની એક રસપ્રદ વિશેષતા એ છે કે ટેક્સ્ટ એક્સ્ટેંશન ".mojo" ઉપરાંત કોડ ફાઇલો (ઉદાહરણ તરીકે, "helloworld.🔥") માટે એક્સ્ટેંશન તરીકે ઇમોજી અક્ષર "🔥" નો ઉલ્લેખ કરવાની ક્ષમતા છે.

હાલમાં, ભાષા સઘન વિકાસના તબક્કે છે અને પરીક્ષણ માટે માત્ર ઓનલાઈન ઈન્ટરફેસ ઓફર કરવામાં આવે છે. સ્થાનિક સિસ્ટમો પર ચાલવા માટે અલગ એસેમ્બલીને પછીથી પ્રકાશિત કરવાનું વચન આપવામાં આવે છે, ઇન્ટરેક્ટિવ વેબ પર્યાવરણના સંચાલન પર પ્રતિસાદ પ્રાપ્ત કર્યા પછી. કમ્પાઇલર, JIT અને પ્રોજેક્ટ સંબંધિત અન્ય વિકાસ માટેનો સ્રોત કોડ આંતરિક આર્કિટેક્ચર પૂર્ણ થયા પછી ખોલવાની યોજના છે (બંધ દરવાજા પાછળ કાર્યકારી પ્રોટોટાઇપ વિકસાવવા માટેનું મોડેલ એલએલવીએમ, રણકાર અને રણકારના વિકાસના પ્રારંભિક તબક્કાની યાદ અપાવે છે. સ્વિફ્ટ). મોજો વાક્યરચના પાયથોન ભાષા પર આધારિત હોવાથી, અને ટાઇપ સિસ્ટમ C/C++ ની નજીક છે, ભવિષ્યમાં તેઓ C/C++ અને Python થી Mojo માં લખેલા વર્તમાન પ્રોજેક્ટના અનુવાદને સરળ બનાવવા માટે સાધનો વિકસાવવાની યોજના ધરાવે છે, તેમજ પાયથોન કોડ અને મોજોને જોડીને હાઇબ્રિડ પ્રોજેક્ટ વિકસાવવા.

આ પ્રોજેક્ટ ગણતરીઓ કરવા માટે વિજાતીય સિસ્ટમોના ઉપલબ્ધ હાર્ડવેર સંસાધનોને સામેલ કરવા માટે રચાયેલ છે. ઉદાહરણ તરીકે, GPUs, સ્પેશિયલાઇઝ્ડ મશીન લર્નિંગ એક્સિલરેટર્સ અને પ્રોસેસર ઇન્સ્ટ્રક્શન વેક્ટર્સ (SIMD) નો ઉપયોગ મોજો એપ્લીકેશન ચલાવવા અને ગણતરીઓને સમાંતર કરવા માટે કરી શકાય છે. હાલના CPython ઓપ્ટિમાઇઝેશન કાર્યમાં જોડાવાને બદલે પાયથોન ભાષાના અલગ સબસેટ વિકસાવવા માટે આપવામાં આવેલા કારણોમાં સંકલન, સિસ્ટમ પ્રોગ્રામિંગ ક્ષમતાઓનું એકીકરણ અને મૂળભૂત રીતે અલગ આંતરિક આર્કિટેક્ચરનો ઉપયોગ શામેલ છે જે કોડને GPU અને વિવિધ પર ચલાવવા માટે પરવાનગી આપે છે. હાર્ડવેર પ્રવેગક. જો કે, મોજો ડેવલપર્સ શક્ય તેટલું CPython સાથે સુસંગત રહેવાનો ઇરાદો ધરાવે છે.

મોજોનો JIT નો ઉપયોગ કરીને અર્થઘટન મોડમાં અને એક્ઝિક્યુટેબલ ફાઈલો (AOT, અહેડ-ઓફ-ટાઇમ) બંનેમાં સંકલન માટે વાપરી શકાય છે. કમ્પાઈલર પાસે ઓટોમેટિક ઓપ્ટિમાઈઝેશન, કેશીંગ અને ડિસ્ટ્રીબ્યુટેડ કમ્પાઈલેશન માટે બિલ્ટ-ઈન આધુનિક ટેકનોલોજી છે. મોજો ભાષામાં સ્ત્રોત ગ્રંથોને LLVM પ્રોજેક્ટ દ્વારા વિકસાવવામાં આવેલ અને ડેટા ફ્લો ગ્રાફની પ્રક્રિયાને ઑપ્ટિમાઇઝ કરવા માટે વધારાની ક્ષમતાઓ પૂરી પાડવા માટે નિમ્ન-સ્તરના મધ્યવર્તી કોડ MLIR (મલ્ટી-લેવલ ઇન્ટરમીડિયેટ રિપ્રેઝન્ટેશન)માં રૂપાંતરિત કરવામાં આવે છે. કમ્પાઈલર તમને મશીન કોડ જનરેટ કરવા માટે MLIR ને સપોર્ટ કરતા વિવિધ બેકએન્ડનો ઉપયોગ કરવાની પરવાનગી આપે છે.

ગણતરીઓને ઝડપી બનાવવા માટે વધારાના હાર્ડવેર મિકેનિઝમ્સનો ઉપયોગ કરીને સઘન ગણતરીઓ દરમિયાન C/C++ એપ્લીકેશન્સ કરતાં શ્રેષ્ઠ કામગીરી પ્રાપ્ત કરવાનું શક્ય બને છે. ઉદાહરણ તરીકે, મેન્ડેલબ્રોટ સેટ જનરેટ કરવા માટેની એપ્લિકેશનનું પરીક્ષણ કરતી વખતે, મોજો ભાષામાં સંકલિત એપ્લિકેશન જ્યારે AWS ક્લાઉડ (r7iz.metal-16xl) માં એક્ઝિક્યુટ કરવામાં આવે ત્યારે C++ (6 સે. વિ.) માં અમલીકરણ કરતાં 0.03 ગણી ઝડપી હોવાનું બહાર આવ્યું હતું. 0.20 સેકન્ડ.), અને પ્રમાણભૂત CPython 35 (3.10.9 સેકન્ડ વિ. 0.03 સેકન્ડ) નો ઉપયોગ કરતી વખતે પાયથોન એપ્લિકેશન કરતાં 1027 હજાર ગણી ઝડપી અને PYPY (1500 સેકન્ડ વિ. 0.03 સેકન્ડ) નો ઉપયોગ કરતી વખતે 46.1 ગણી ઝડપી. .

મશીન લર્નિંગ સમસ્યાઓ હલ કરવાના ક્ષેત્રમાં કામગીરીનું મૂલ્યાંકન કરતી વખતે, ટેન્સરફ્લો લાઇબ્રેરી પર આધારિત સોલ્યુશનની તુલનામાં, મોજો ભાષામાં લખાયેલ AI સ્ટેક મોડ્યુલર ઇન્ફરન્સ એન્જિન, સિસ્ટમ પર ભાષા મોડેલની પ્રક્રિયા કરતી વખતે 3 ગણું ઝડપી હતું ઇન્ટેલ પ્રોસેસર, ભલામણ જનરેશન મોડલના અમલીકરણની પ્રક્રિયા કરતી વખતે 6.4 ગણું ઝડપી અને દ્રશ્ય માહિતીની પ્રક્રિયા કરવા માટે મોડેલો સાથે કામ કરતી વખતે 2.1 ગણું ઝડપી. AMD પ્રોસેસર્સનો ઉપયોગ કરતી વખતે, Mojo નો ઉપયોગ કરતી વખતે 3.2, 5 અને 2.2 ગણો અને ARM પ્રોસેસર્સનો ઉપયોગ કરતી વખતે - અનુક્રમે 5.3, 7.5 અને 1.7 ગણો ફાયદો થયો હતો. PyTorch-આધારિત સોલ્યુશન Intel CPUs પર 1.4, 1.1 અને 1.5 ગણો, AMD CPUs પર 2.1, 1.2 અને 1.5 ગણો અને ARM CPUs પર 4, 4.3 અને 1.3 ગણો મોજો કરતાં પાછળ છે.

LLVM સર્જક નવી મોજો પ્રોગ્રામિંગ ભાષા વિકસાવે છે

ભાષા સ્ટેટિક ટાઈપિંગ અને રસ્ટની યાદ અપાવે તેવા લો-લેવલ મેમરી-સેફ ફીચર્સનું સમર્થન કરે છે, જેમ કે રેફરન્સ લાઈફટાઇમ ટ્રેકિંગ અને બોરો ચેકર. પોઈન્ટર્સ સાથે સલામત કાર્ય માટેની સુવિધાઓ ઉપરાંત, ભાષા નિમ્ન-સ્તરના કાર્ય માટે સુવિધાઓ પણ પ્રદાન કરે છે, ઉદાહરણ તરીકે, પોઇન્ટર પ્રકારનો ઉપયોગ કરીને અસુરક્ષિત મોડમાં મેમરીની સીધી ઍક્સેસ, વ્યક્તિગત SIMD સૂચનાઓને કૉલ કરવા અથવા ટેન્સરકોર્સ અને AMX જેવા હાર્ડવેર એક્સ્ટેન્શન્સને ઍક્સેસ કરવા. .

LLVM સર્જક નવી મોજો પ્રોગ્રામિંગ ભાષા વિકસાવે છે

ક્લાસિક અને ઑપ્ટિમાઇઝ પાયથોન કોડના વિભાજનને સરળ બનાવવા માટે તમામ ચલો માટે સ્પષ્ટ પ્રકારની વ્યાખ્યાઓ સાથે ફંક્શન માટે, "def" ને બદલે અલગ કીવર્ડ "fn" નો ઉપયોગ કરવાનો પ્રસ્તાવ છે. એ જ રીતે વર્ગો માટે, જો તમારે સંકલન દરમિયાન મેમરીમાં ડેટાને સ્ટેટિકલી પેક કરવાની જરૂર હોય (જેમ કે C માં), તો તમે "ક્લાસ" ને બદલે "સ્ટ્રક્ચર" પ્રકારનો ઉપયોગ કરી શકો છો. ફક્ત C/C++ ભાષાઓમાં મોડ્યુલો આયાત કરવાનું પણ શક્ય છે, ઉદાહરણ તરીકે, ગણિતની લાઇબ્રેરીમાંથી cos ફંક્શનને આયાત કરવા માટે, તમે "math.h" import cos"માંથી સ્પષ્ટ કરી શકો છો.

સોર્સ: opennet.ru

એક ટિપ્પણી ઉમેરો