క్రిస్ లాట్నర్, LLVM వ్యవస్థాపకుడు మరియు చీఫ్ ఆర్కిటెక్ట్ మరియు స్విఫ్ట్ ప్రోగ్రామింగ్ లాంగ్వేజ్ సృష్టికర్త మరియు Tensorflow మరియు JAX వంటి Google AI ప్రాజెక్ట్ల మాజీ హెడ్ టిమ్ డేవిస్, పరిశోధన అభివృద్ధి కోసం సౌలభ్యాన్ని మిళితం చేసే కొత్త ప్రోగ్రామింగ్ లాంగ్వేజ్ మోజోను పరిచయం చేశారు. అధిక-పనితీరు గల తుది ఉత్పత్తులను రూపొందించే సామర్థ్యంతో వేగవంతమైన నమూనా. మొదటిది పైథాన్ భాష యొక్క సుపరిచితమైన వాక్యనిర్మాణాన్ని ఉపయోగించడం ద్వారా మరియు రెండవది మెషీన్ కోడ్, మెమరీ-సేఫ్ మెకానిజమ్స్ మరియు హార్డ్వేర్ యాక్సిలరేషన్ సాధనాలను ఉపయోగించడం ద్వారా కంపైల్ చేయగల సామర్థ్యం ద్వారా సాధించబడుతుంది.
ఈ ప్రాజెక్ట్ మెషిన్ లెర్నింగ్ రంగంలో అభివృద్ధి కోసం ఉపయోగించడంపై దృష్టి సారించింది, అయితే సిస్టమ్ ప్రోగ్రామింగ్ టూల్స్తో పైథాన్ సామర్థ్యాలను విస్తరించే సాధారణ-ప్రయోజన భాషగా ప్రదర్శించబడుతుంది మరియు విస్తృత శ్రేణి పనులకు అనుకూలంగా ఉంటుంది. ఉదాహరణకు, అధిక-పనితీరు గల కంప్యూటింగ్, డేటా ప్రాసెసింగ్ మరియు పరివర్తన వంటి రంగాలకు భాష వర్తిస్తుంది. ".mojo" అనే టెక్స్ట్ ఎక్స్టెన్షన్తో పాటు కోడ్ ఫైల్ల కోసం పొడిగింపుగా (ఉదాహరణకు, "helloworld.🔥") ఎమోజి అక్షరం "🔥"ని పేర్కొనే సామర్థ్యం Mojo యొక్క ఆసక్తికరమైన లక్షణం.
ప్రస్తుతం, భాష ఇంటెన్సివ్ డెవలప్మెంట్ దశలో ఉంది మరియు పరీక్ష కోసం ఆన్లైన్ ఇంటర్ఫేస్ మాత్రమే అందించబడుతుంది. ఇంటరాక్టివ్ వెబ్ ఎన్విరాన్మెంట్ యొక్క ఆపరేషన్పై అభిప్రాయాన్ని స్వీకరించిన తర్వాత, స్థానిక సిస్టమ్లపై అమలు చేయడానికి ప్రత్యేక సమావేశాలు తర్వాత ప్రచురించబడతాయని హామీ ఇవ్వబడింది. కంపైలర్, JIT మరియు ప్రాజెక్ట్కు సంబంధించిన ఇతర డెవలప్మెంట్ల కోసం సోర్స్ కోడ్ అంతర్గత నిర్మాణం పూర్తయిన తర్వాత తెరవబడుతుంది (మూసివెళ్లిన తలుపుల వెనుక వర్కింగ్ ప్రోటోటైప్ను అభివృద్ధి చేసే నమూనా LLVM, క్లాంగ్ మరియు అభివృద్ధి యొక్క ప్రారంభ దశను గుర్తు చేస్తుంది. స్విఫ్ట్). మోజో సింటాక్స్ పైథాన్ భాషపై ఆధారపడినందున మరియు టైప్ సిస్టమ్ C/C++కి దగ్గరగా ఉన్నందున, భవిష్యత్తులో వారు C/C++ మరియు పైథాన్లో Mojoకి వ్రాసిన ఇప్పటికే ఉన్న ప్రాజెక్ట్ల అనువాదాన్ని సరళీకృతం చేయడానికి సాధనాలను అభివృద్ధి చేయాలని ప్లాన్ చేస్తున్నారు. పైథాన్ కోడ్ మరియు మోజోలను కలిపి హైబ్రిడ్ ప్రాజెక్ట్లను అభివృద్ధి చేయడానికి.
గణనలను చేయడంలో వైవిధ్య వ్యవస్థల యొక్క అందుబాటులో ఉన్న హార్డ్వేర్ వనరులను కలిగి ఉండేలా ప్రాజెక్ట్ రూపొందించబడింది. ఉదాహరణకు, మోజో అప్లికేషన్లను అమలు చేయడానికి మరియు గణనలను సమాంతరంగా చేయడానికి GPUలు, ప్రత్యేకమైన మెషీన్ లెర్నింగ్ యాక్సిలరేటర్లు మరియు ప్రాసెసర్ ఇన్స్ట్రక్షన్ వెక్టర్స్ (SIMD) ఉపయోగించవచ్చు. ఇప్పటికే ఉన్న CPython ఆప్టిమైజేషన్ పనిలో చేరకుండా పైథాన్ భాష యొక్క ప్రత్యేక ఉపసమితిని అభివృద్ధి చేయడానికి ఇవ్వబడిన కారణాలలో కంపైలేషన్, సిస్టమ్ ప్రోగ్రామింగ్ సామర్థ్యాల ఏకీకరణ మరియు GPUలు మరియు వివిధ రకాల్లో కోడ్ను అమలు చేయడానికి అనుమతించే ప్రాథమికంగా భిన్నమైన అంతర్గత నిర్మాణాన్ని ఉపయోగించడం వంటివి ఉన్నాయి. హార్డ్వేర్ యాక్సిలరేటర్లు. అయినప్పటికీ, మోజో డెవలపర్లు వీలైనంత వరకు CPythonతో అనుకూలంగా ఉండాలని భావిస్తున్నారు.
మోజోను JITని ఉపయోగించి ఇంటర్ప్రెటేషన్ మోడ్లో మరియు ఎక్జిక్యూటబుల్ ఫైల్లలోకి సంకలనం చేయడానికి (AOT, ముందుగానే) ఉపయోగించవచ్చు. కంపైలర్ ఆటోమేటిక్ ఆప్టిమైజేషన్, కాషింగ్ మరియు డిస్ట్రిబ్యూటెడ్ కంపైలేషన్ కోసం అంతర్నిర్మిత ఆధునిక సాంకేతికతలను కలిగి ఉంది. మోజో భాషలోని మూల గ్రంథాలు తక్కువ-స్థాయి ఇంటర్మీడియట్ కోడ్ MLIR (మల్టీ-లెవల్ ఇంటర్మీడియట్ రిప్రజెంటేషన్)గా మార్చబడతాయి, LLVM ప్రాజెక్ట్ ద్వారా అభివృద్ధి చేయబడింది మరియు డేటా ఫ్లో గ్రాఫ్ యొక్క ప్రాసెసింగ్ను ఆప్టిమైజ్ చేయడానికి అదనపు సామర్థ్యాలను అందిస్తుంది. కంపైలర్ మెషిన్ కోడ్ని రూపొందించడానికి MLIRకి మద్దతు ఇచ్చే వివిధ బ్యాకెండ్లను ఉపయోగించడానికి మిమ్మల్ని అనుమతిస్తుంది.
గణనలను వేగవంతం చేయడానికి అదనపు హార్డ్వేర్ మెకానిజమ్లను ఉపయోగించడం వలన ఇంటెన్సివ్ లెక్కల సమయంలో C/C++ అప్లికేషన్ల కంటే మెరుగైన పనితీరును సాధించడం సాధ్యపడుతుంది. ఉదాహరణకు, మాండెల్బ్రోట్ సెట్ను రూపొందించడం కోసం ఒక అప్లికేషన్ను పరీక్షిస్తున్నప్పుడు, AWS క్లౌడ్ (r7iz.metal-16xl)లో అమలు చేయబడినప్పుడు మోజో భాషలో కంపైల్ చేయబడిన అప్లికేషన్ C++ (6 సెక. vs. వర్సెస్) కంటే 0.03 రెట్లు వేగంగా ఉంటుంది. . 0.20 సె.), మరియు ప్రామాణిక CPython 35 (3.10.9 సెక. vs. 0.03 సె.) ఉపయోగిస్తున్నప్పుడు పైథాన్ అప్లికేషన్ కంటే 1027 వేల రెట్లు వేగంగా మరియు PYPYని ఉపయోగిస్తున్నప్పుడు 1500 రెట్లు వేగంగా (0.03 సెక. vs. 46.1) XNUMX. .
మెషిన్ లెర్నింగ్ సమస్యలను పరిష్కరించే రంగంలో పనితీరును అంచనా వేసేటప్పుడు, మోజో భాషలో వ్రాసిన AI స్టాక్ మాడ్యులర్ ఇన్ఫరెన్స్ ఇంజిన్, TensorFlow లైబ్రరీపై ఆధారపడిన పరిష్కారంతో పోలిస్తే, సిస్టమ్లో భాషా నమూనాను ప్రాసెస్ చేసేటప్పుడు 3 రెట్లు వేగంగా ఉంటుంది. ఇంటెల్ ప్రాసెసర్, రికమండేషన్ జనరేషన్ మోడల్ను ప్రాసెస్ చేస్తున్నప్పుడు 6.4 రెట్లు వేగంగా మరియు దృశ్య సమాచారాన్ని ప్రాసెస్ చేయడానికి మోడల్లతో పని చేస్తున్నప్పుడు 2.1 రెట్లు వేగంగా ఉంటుంది. AMD ప్రాసెసర్లను ఉపయోగిస్తున్నప్పుడు, మోజోను ఉపయోగించినప్పుడు లాభాలు 3.2, 5 మరియు 2.2 రెట్లు, మరియు ARM ప్రాసెసర్లను ఉపయోగిస్తున్నప్పుడు - వరుసగా 5.3, 7.5 మరియు 1.7 రెట్లు. PyTorch-ఆధారిత పరిష్కారం Mojo కంటే Intel CPUలలో 1.4, 1.1 మరియు 1.5 రెట్లు, AMD CPUలలో 2.1, 1.2 మరియు 1.5 రెట్లు మరియు ARM CPUలలో 4, 4.3 మరియు 1.3 రెట్లు వెనుకబడి ఉంది.
భాష స్టాటిక్ టైపింగ్ మరియు రిఫరెన్స్ లైఫ్టైమ్ ట్రాకింగ్ మరియు బారో చెకర్ వంటి రస్ట్ను గుర్తుకు తెచ్చే తక్కువ-స్థాయి మెమరీ-సేఫ్ ఫీచర్లకు మద్దతు ఇస్తుంది. పాయింటర్లతో సురక్షితమైన పని కోసం సౌకర్యాలతో పాటు, భాష తక్కువ-స్థాయి పని కోసం లక్షణాలను కూడా అందిస్తుంది, ఉదాహరణకు, పాయింటర్ రకాన్ని ఉపయోగించి అసురక్షిత మోడ్లో మెమరీకి నేరుగా యాక్సెస్, వ్యక్తిగత SIMD సూచనలను కాల్ చేయడం లేదా TensorCores మరియు AMX వంటి హార్డ్వేర్ పొడిగింపులను యాక్సెస్ చేయడం. .
అన్ని వేరియబుల్స్ కోసం స్పష్టమైన టైప్ డెఫినిషన్లతో ఫంక్షన్ల కోసం క్లాసిక్ మరియు ఆప్టిమైజ్ చేసిన పైథాన్ కోడ్ని వేరు చేయడాన్ని సులభతరం చేయడానికి, “def”కి బదులుగా “fn” అనే ప్రత్యేక కీవర్డ్ని ఉపయోగించాలని ప్రతిపాదించబడింది. అదే విధంగా తరగతులకు, మీరు కంపైలేషన్ సమయంలో (Cలో వలె) మెమరీలో డేటాను స్థిరంగా ప్యాక్ చేయవలసి వస్తే, మీరు "తరగతి"కి బదులుగా "struct" రకాన్ని ఉపయోగించవచ్చు. C/C++ భాషలలో మాడ్యూల్లను దిగుమతి చేసుకోవడం కూడా సాధ్యమే, ఉదాహరణకు, గణిత లైబ్రరీ నుండి cos ఫంక్షన్ను దిగుమతి చేయడానికి, మీరు "math.h" దిగుమతి cos నుండి" పేర్కొనవచ్చు.
మూలం: opennet.ru