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

ఈ భాష స్టాటిక్ టైపింగ్కు మరియు రస్ట్ను గుర్తుచేసే రిఫరెన్స్ లైఫ్టైమ్ ట్రాకింగ్, బారో చెకర్ వంటి లో-లెవల్ మెమరీ సేఫ్టీ ఫీచర్లకు మద్దతు ఇస్తుంది. పాయింటర్ సేఫ్టీ ఫీచర్లతో పాటు, ఈ భాష పాయింటర్ టైప్ను ఉపయోగించి అన్సేఫ్ మోడ్లో డైరెక్ట్ మెమరీ యాక్సెస్, వ్యక్తిగత SIMD ఇన్స్ట్రక్షన్లను ఇన్వోక్ చేయడం, మరియు టెన్సర్కోర్స్, AMX వంటి హార్డ్వేర్ ఎక్స్టెన్షన్లను యాక్సెస్ చేయడం వంటి లో-లెవల్ సామర్థ్యాలను కూడా అందిస్తుంది.

అన్ని వేరియబుల్స్ కోసం స్పష్టంగా నిర్వచించబడిన రకాలు ఉన్న ఫంక్షన్ల కొరకు, క్లాసిక్ మరియు ఆప్టిమైజ్డ్ పైథాన్ కోడ్ను వేరు చేయడాన్ని సులభతరం చేయడానికి, 'def'కు బదులుగా ప్రత్యేక 'fn' కీవర్డ్ను ఉపయోగించాలని ప్రతిపాదించబడింది. అదేవిధంగా, క్లాస్ల కొరకు, కంపైల్ సమయంలో మెమరీలో స్టాటిక్ డేటా ప్యాకింగ్ అవసరమైతే (C లో వలె), 'class'కు బదులుగా 'struct' రకాన్ని ఉపయోగించవచ్చు. C/C++ మాడ్యూల్స్ను సులభంగా ఇంపోర్ట్ చేయడం కూడా సాధ్యమే. ఉదాహరణకు, math లైబ్రరీ నుండి cos ఫంక్షన్ను ఇంపోర్ట్ చేయడానికి, మీరు "from "math.h" import cos" అని పేర్కొనవచ్చు.
మూలం: opennet.ru
