Chris Lattner ស្ថាបនិក និងជាប្រធានស្ថាបត្យករនៃ LLVM និងអ្នកបង្កើតភាសាសរសេរកម្មវិធី Swift និង Tim Davis អតីតប្រធានគម្រោង Google AI ដូចជា Tensorflow និង JAX បានណែនាំភាសាសរសេរកម្មវិធីថ្មី Mojo ដែលរួមបញ្ចូលគ្នានូវភាពងាយស្រួលនៃការប្រើប្រាស់សម្រាប់ការអភិវឌ្ឍន៍ការស្រាវជ្រាវ និង ការបង្កើតគំរូយ៉ាងឆាប់រហ័សជាមួយនឹងសក្តានុពលក្នុងការបង្កើតផលិតផលចុងក្រោយដែលមានប្រសិទ្ធភាពខ្ពស់។ ទីមួយត្រូវបានសម្រេចតាមរយៈការប្រើប្រាស់វាក្យសម្ព័ន្ធដែលធ្លាប់ស្គាល់នៃភាសា Python និងទីពីរតាមរយៈសមត្ថភាពក្នុងការចងក្រងជាកូដម៉ាស៊ីន យន្តការសុវត្ថិភាពសម្រាប់ការចងចាំ និងការប្រើប្រាស់ឧបករណ៍បង្កើនល្បឿនផ្នែករឹង។
គម្រោងនេះផ្តោតលើការប្រើប្រាស់សម្រាប់ការអភិវឌ្ឍន៍ក្នុងវិស័យរៀនម៉ាស៊ីន ប៉ុន្តែត្រូវបានបង្ហាញជាភាសាគោលបំណងទូទៅដែលពង្រីកសមត្ថភាពរបស់ Python ជាមួយនឹងឧបករណ៍សរសេរកម្មវិធីប្រព័ន្ធ និងសមរម្យសម្រាប់កិច្ចការដ៏ធំទូលាយមួយ។ ជាឧទាហរណ៍ ភាសាអាចអនុវត្តបានចំពោះផ្នែកដូចជា ការគណនាដែលមានប្រសិទ្ធភាពខ្ពស់ ដំណើរការទិន្នន័យ និងការបំប្លែង។ លក្ខណៈពិសេសគួរឱ្យចាប់អារម្មណ៍របស់ Mojo គឺសមត្ថភាពក្នុងការបញ្ជាក់តួអក្សរ emoji "🔥" ជាផ្នែកបន្ថែមសម្រាប់ឯកសារកូដ (ឧទាហរណ៍ "helloworld.🔥") បន្ថែមពីលើផ្នែកបន្ថែមអក្សរ ".mojo" ។
បច្ចុប្បន្ន ភាសាស្ថិតក្នុងដំណាក់កាលនៃការអភិវឌ្ឍន៍ដែលពឹងផ្អែកខ្លាំង ហើយមានតែចំណុចប្រទាក់អនឡាញប៉ុណ្ណោះដែលត្រូវបានផ្តល់ជូនសម្រាប់ការសាកល្បង។ ការជួបប្រជុំគ្នាដាច់ដោយឡែកសម្រាប់ដំណើរការលើប្រព័ន្ធមូលដ្ឋានត្រូវបានសន្យាថានឹងចេញផ្សាយនៅពេលក្រោយ បន្ទាប់ពីទទួលបានមតិកែលម្អលើប្រតិបត្តិការនៃបរិស្ថានបណ្ដាញអន្តរកម្ម។ កូដប្រភពសម្រាប់អ្នកចងក្រង JIT និងការអភិវឌ្ឍន៍ផ្សេងទៀតដែលទាក់ទងនឹងគម្រោងត្រូវបានគ្រោងនឹងបើកបន្ទាប់ពីស្ថាបត្យកម្មខាងក្នុងត្រូវបានបញ្ចប់ (គំរូសម្រាប់ការបង្កើតគំរូការងារនៅពីក្រោយទ្វារបិទជិតគឺនឹកឃើញដល់ដំណាក់កាលដំបូងនៃការអភិវឌ្ឍន៍ LLVM, Clang និង ស្វ៊ីត) ។ ដោយសារវាក្យសម្ព័ន្ធ Mojo មានមូលដ្ឋានលើភាសា Python ហើយប្រព័ន្ធប្រភេទគឺនៅជិត C/C++ នាពេលអនាគត ពួកគេគ្រោងនឹងបង្កើតឧបករណ៍ដើម្បីសម្រួលដល់ការបកប្រែគម្រោងដែលមានស្រាប់ដែលសរសេរក្នុង C/C++ និង Python ទៅ Mojo ក៏ដូចជា ដើម្បីអភិវឌ្ឍគម្រោងកូនកាត់ដែលរួមបញ្ចូលគ្នារវាងកូដ Python និង Mojo ។
គម្រោងនេះត្រូវបានរចនាឡើងដើម្បីចូលរួមជាមួយធនធានផ្នែករឹងដែលមាននៃប្រព័ន្ធផ្សេងៗគ្នាក្នុងការអនុវត្តការគណនា។ ឧទាហរណ៍ GPUs ឧបករណ៍បង្កើនល្បឿនសិក្សាម៉ាស៊ីនឯកទេស និងវ៉ិចទ័រណែនាំដំណើរការ (SIMD) អាចត្រូវបានប្រើដើម្បីដំណើរការកម្មវិធី Mojo និងការគណនាស្របគ្នា។ ហេតុផលដែលត្រូវបានលើកឡើងសម្រាប់ការបង្កើតសំណុំរងដាច់ដោយឡែកនៃ Python ជាជាងការចូលរួមក្នុងការងារបង្កើនប្រសិទ្ធភាព CPython ដែលមានស្រាប់គឺផ្តោតលើការចងក្រង ការរួមបញ្ចូលនៃសមត្ថភាពសរសេរកម្មវិធីប្រព័ន្ធ និងការប្រើប្រាស់ស្ថាបត្យកម្មផ្ទៃក្នុងខុសគ្នាជាមូលដ្ឋានដែលអនុញ្ញាតឱ្យកូដដំណើរការលើ GPU និងផ្សេងៗ។ ឧបករណ៍បង្កើនល្បឿនផ្នែករឹង។ ទោះជាយ៉ាងណាក៏ដោយ អ្នកអភិវឌ្ឍន៍ Mojo មានបំណងរក្សាភាពឆបគ្នាជាមួយ CPython តាមដែលអាចធ្វើទៅបាន។
Mojo អាចត្រូវបានប្រើទាំងក្នុងរបៀបបកស្រាយដោយប្រើ JIT និងសម្រាប់ការចងក្រងជាឯកសារដែលអាចប្រតិបត្តិបាន (AOT, មុនពេលវេលា)។ កម្មវិធីចងក្រងមានភ្ជាប់មកជាមួយនូវបច្ចេកវិជ្ជាទំនើបសម្រាប់ការបង្កើនប្រសិទ្ធភាពដោយស្វ័យប្រវត្តិ ឃ្លាំងសម្ងាត់ និងការចងក្រងចែកចាយ។ អត្ថបទប្រភពនៅក្នុងភាសា Mojo ត្រូវបានបំប្លែងទៅជាកូដកម្រិតមធ្យមកម្រិតទាប MLIR (ការតំណាងកម្រិតមធ្យមពហុកម្រិត) ដែលបង្កើតឡើងដោយគម្រោង LLVM និងផ្តល់នូវសមត្ថភាពបន្ថែមសម្រាប់បង្កើនប្រសិទ្ធភាពដំណើរការនៃក្រាហ្វលំហូរទិន្នន័យ។ កម្មវិធីចងក្រងអនុញ្ញាតឱ្យអ្នកប្រើកម្មវិធីខាងក្រោយផ្សេងៗដែលគាំទ្រ MLIR ដើម្បីបង្កើតកូដម៉ាស៊ីន។
ការប្រើប្រាស់យន្តការផ្នែករឹងបន្ថែមដើម្បីបង្កើនល្បឿននៃការគណនាធ្វើឱ្យវាអាចសម្រេចបាននូវដំណើរការដែលប្រសើរជាងកម្មវិធី C/C++ កំឡុងពេលគណនាដែលពឹងផ្អែកខ្លាំង។ ឧទាហរណ៍ នៅពេលសាកល្បងកម្មវិធីសម្រាប់បង្កើតសំណុំ Mandelbrot កម្មវិធីដែលបានចងក្រងជាភាសា Mojo នៅពេលប្រតិបត្តិក្នុង AWS cloud (r7iz.metal-16xl) ប្រែទៅជាលឿនជាងការអនុវត្តន៍ក្នុង C++ ដល់ទៅ 6 ដង (0.03 វិ។ . 0.20 វិ។) និងលឿនជាងកម្មវិធី Python 35 ពាន់ដង នៅពេលប្រើស្តង់ដារ CPython 3.10.9 (0.03 sec. vs. 1027 sec.) និង 1500 ដងលឿនជាងពេលប្រើ PYPY (0.03 sec. vs. 46.1 sec.) .
នៅពេលវាយតម្លៃការអនុវត្តក្នុងវិស័យដោះស្រាយបញ្ហាការរៀនម៉ាស៊ីន AI stack Modular Inference Engine ដែលសរសេរជាភាសា Mojo បើប្រៀបធៀបទៅនឹងដំណោះស្រាយផ្អែកលើបណ្ណាល័យ TensorFlow គឺលឿនជាង 3 ដងនៅពេលដំណើរការគំរូភាសានៅលើប្រព័ន្ធដែលមាន ប្រព័ន្ធដំណើរការ Intel លឿនជាង 6.4 ដងនៅពេលដំណើរការការប្រតិបត្តិនៃគំរូនៃការណែនាំ និង 2.1 ដងលឿនជាងនៅពេលធ្វើការជាមួយម៉ូដែលសម្រាប់ដំណើរការព័ត៌មានដែលមើលឃើញ។ នៅពេលប្រើប្រព័ន្ធដំណើរការ AMD ការកើនឡើងនៅពេលប្រើ Mojo គឺ 3.2, 5 និង 2.2 ដង ហើយនៅពេលប្រើប្រព័ន្ធដំណើរការ ARM - 5.3, 7.5 និង 1.7 ដងរៀងគ្នា។ ដំណោះស្រាយដែលមានមូលដ្ឋានលើ PyTorch យឺតជាង Mojo ដោយ 1.4, 1.1 និង 1.5 ដងលើស៊ីភីយូ Intel, 2.1, 1.2 និង 1.5 ដងលើស៊ីភីយូ AMD និង 4, 4.3 និង 1.3 ដងនៅលើស៊ីភីយូ ARM ។

ភាសានេះគាំទ្រការវាយអក្សរឋិតិវន្ត និងមុខងារសុវត្ថិភាពនៃការចងចាំកម្រិតទាបដែលរំឮកដល់ Rust ដូចជាការតាមដានពេញមួយជីវិតយោង និងឧបករណ៍ពិនិត្យខ្ចី។ បន្ថែមពីលើគ្រឿងបរិក្ខារសម្រាប់ការងារប្រកបដោយសុវត្ថិភាពជាមួយនឹងទ្រនិច ភាសាក៏ផ្តល់នូវមុខងារសម្រាប់ការងារកម្រិតទាបផងដែរ ឧទាហរណ៍ ការចូលប្រើអង្គចងចាំដោយផ្ទាល់ក្នុងទម្រង់មិនសុវត្ថិភាពដោយប្រើប្រភេទទ្រនិច ការហៅទូរសព្ទទៅការណែនាំអំពី SIMD នីមួយៗ ឬការចូលប្រើផ្នែកបន្ថែមផ្នែករឹងដូចជា TensorCores និង AMX .

ដើម្បីសម្រួលការបំបែកកូដ Python បុរាណ និងធ្វើឱ្យប្រសើរសម្រាប់មុខងារដែលមានការកំណត់ប្រភេទច្បាស់លាស់សម្រាប់អថេរទាំងអស់ វាត្រូវបានស្នើឱ្យប្រើពាក្យគន្លឹះដាច់ដោយឡែក "fn" ជំនួសឱ្យ "def" ។ ស្រដៀងគ្នានេះដែរ សម្រាប់ថ្នាក់ ប្រសិនបើអ្នកត្រូវការខ្ចប់ទិន្នន័យជាលក្ខណៈឋិតិវន្តក្នុងអង្គចងចាំ កំឡុងពេលចងក្រង (ដូចនៅក្នុង C) អ្នកអាចប្រើប្រភេទ "struct" ជំនួសឱ្យ "ថ្នាក់" ។ វាក៏អាចធ្វើទៅបានផងដែរក្នុងការនាំចូលម៉ូឌុលជាភាសា C/C++ ឧទាហរណ៍ ដើម្បីនាំចូលមុខងារ cos ពីបណ្ណាល័យគណិតវិទ្យា អ្នកអាចបញ្ជាក់ "ពី "math.h" នាំចូល cos ។
ប្រភព: opennet.ru
