ຜູ້ສ້າງ LLVM ພັດທະນາພາສາການຂຽນໂປຼແກຼມ Mojo ໃໝ່

Chris Lattner, ຜູ້ກໍ່ຕັ້ງແລະຫົວຫນ້າສະຖາປະນິກຂອງ LLVM ແລະຜູ້ສ້າງພາສາການຂຽນໂປລແກລມ Swift, ແລະ Tim Davis, ອະດີດຫົວຫນ້າໂຄງການ AI ຂອງ Google ເຊັ່ນ Tensorflow ແລະ JAX, ໄດ້ນໍາສະເຫນີພາສາການຂຽນໂປລແກລມໃຫມ່, Mojo, ເຊິ່ງລວມເອົາຄວາມສະດວກໃນການນໍາໃຊ້ເພື່ອການພັດທະນາການຄົ້ນຄວ້າແລະ. prototyping ຢ່າງ​ວ່ອງ​ໄວ​ທີ່​ມີ​ທ່າ​ແຮງ​ໃນ​ການ​ສ້າງ​ຜະ​ລິດ​ຕະ​ພັນ​ທີ່​ມີ​ປະ​ສິດ​ທິ​ພາບ​ສູງ​. ທໍາອິດແມ່ນບັນລຸໄດ້ໂດຍຜ່ານການນໍາໃຊ້ syntax ທີ່ຄຸ້ນເຄີຍຂອງພາສາ Python, ແລະທີສອງໂດຍຜ່ານຄວາມສາມາດໃນການລວບລວມເຂົ້າໄປໃນລະຫັດເຄື່ອງຈັກ, ກົນໄກຄວາມຈໍາທີ່ປອດໄພ, ແລະການນໍາໃຊ້ເຄື່ອງມືເລັ່ງຮາດແວ.

ໂຄງການແມ່ນສຸມໃສ່ການນໍາໃຊ້ສໍາລັບການພັດທະນາໃນພາກສະຫນາມຂອງການຮຽນຮູ້ເຄື່ອງຈັກ, ແຕ່ໄດ້ຖືກນໍາສະເຫນີເປັນພາສາທົ່ວໄປທີ່ຂະຫຍາຍຄວາມສາມາດຂອງ Python ດ້ວຍເຄື່ອງມືການຂຽນໂປຼແກຼມລະບົບແລະເຫມາະສົມສໍາລັບວຽກງານທີ່ກວ້າງຂວາງ. ຕົວຢ່າງ, ພາສາແມ່ນໃຊ້ໄດ້ກັບຂົງເຂດຕ່າງໆເຊັ່ນ: ຄອມພິວເຕີທີ່ມີປະສິດທິພາບສູງ, ການປະມວນຜົນຂໍ້ມູນ ແລະການປ່ຽນແປງ. ລັກສະນະທີ່ຫນ້າສົນໃຈຂອງ Mojo ແມ່ນຄວາມສາມາດໃນການກໍານົດຕົວອັກສອນ emoji "🔥" ເປັນສ່ວນຂະຫຍາຍສໍາລັບໄຟລ໌ລະຫັດ (ຕົວຢ່າງ, "helloworld.🔥"), ນອກເຫນືອໄປຈາກນາມສະກຸນຂໍ້ຄວາມ ".mojo".

ໃນປັດຈຸບັນ, ພາສາແມ່ນຢູ່ໃນຂັ້ນຕອນຂອງການພັດທະນາທີ່ເຂັ້ມງວດແລະມີພຽງແຕ່ການໂຕ້ຕອບອອນໄລນ໌ເທົ່ານັ້ນທີ່ສະເຫນີສໍາລັບການທົດສອບ. ສະພາແຫ່ງແຍກຕ່າງຫາກສໍາລັບການເຮັດວຽກໃນລະບົບທ້ອງຖິ່ນແມ່ນສັນຍາວ່າຈະໄດ້ຮັບການຈັດພີມມາຕໍ່ມາ, ຫຼັງຈາກໄດ້ຮັບຄໍາຄຶດຄໍາເຫັນກ່ຽວກັບການດໍາເນີນງານຂອງສະພາບແວດລ້ອມເວັບແບບໂຕ້ຕອບ. ລະຫັດແຫຼ່ງສໍາລັບການລວບລວມ, JIT ແລະການພັດທະນາອື່ນໆທີ່ກ່ຽວຂ້ອງກັບໂຄງການແມ່ນໄດ້ຖືກວາງແຜນທີ່ຈະເປີດຫຼັງຈາກສະຖາປັດຕະຍະກໍາພາຍໃນສໍາເລັດ (ຮູບແບບສໍາລັບການພັດທະນາແບບຈໍາລອງການເຮັດວຽກຫລັງປິດປະຕູແມ່ນ reminiscent ຂອງຂັ້ນຕອນເບື້ອງຕົ້ນຂອງການພັດທະນາ LLVM, Clang ແລະ. Swift). ເນື່ອງຈາກ syntax Mojo ແມ່ນອີງໃສ່ພາສາ Python, ແລະລະບົບປະເພດແມ່ນຢູ່ໃກ້ກັບ C / C ++, ໃນອະນາຄົດພວກເຂົາວາງແຜນທີ່ຈະພັດທະນາເຄື່ອງມືເພື່ອເຮັດໃຫ້ການແປພາສາຂອງໂຄງການທີ່ມີຢູ່ແລ້ວທີ່ຂຽນໃນ C / C ++ ແລະ Python ເປັນ Mojo, ເຊັ່ນດຽວກັນກັບ. ເພື່ອພັດທະນາໂຄງການປະສົມທີ່ປະສົມປະສານລະຫັດ Python ແລະ Mojo.

ໂຄງ​ການ​ດັ່ງ​ກ່າວ​ໄດ້​ຖືກ​ອອກ​ແບບ​ໃຫ້​ມີ​ສ່ວນ​ຮ່ວມ​ຂອງ​ຊັບ​ພະ​ຍາ​ກອນ​ຮາດ​ແວ​ທີ່​ມີ​ຢູ່​ຂອງ​ລະ​ບົບ heterogeneous ໃນ​ການ​ປະ​ຕິ​ບັດ​ການ​ຄິດ​ໄລ່​. ຕົວຢ່າງເຊັ່ນ, GPUs, ເຄື່ອງເລັ່ງການຮຽນຮູ້ເຄື່ອງຈັກພິເສດ, ແລະ vector instruction vectors (SIMD) ສາມາດຖືກນໍາໃຊ້ເພື່ອດໍາເນີນການຄໍາຮ້ອງສະຫມັກ Mojo ແລະການຄິດໄລ່ຂະຫນານ. ເຫດຜົນທີ່ໄດ້ຮັບສໍາລັບການພັດທະນາຊຸດຍ່ອຍແຍກຕ່າງຫາກຂອງພາສາ Python ແທນທີ່ຈະເຂົ້າຮ່ວມວຽກງານການເພີ່ມປະສິດທິພາບ CPython ທີ່ມີຢູ່ແລ້ວປະກອບມີການສຸມໃສ່ການລວບລວມ, ການປະສົມປະສານຂອງຄວາມສາມາດໃນການຂຽນໂປຼແກຼມຂອງລະບົບ, ແລະການນໍາໃຊ້ສະຖາປັດຕະຍະກໍາພາຍໃນທີ່ແຕກຕ່າງກັນໂດຍພື້ນຖານທີ່ອະນຸຍາດໃຫ້ລະຫັດດໍາເນີນການໃນ GPUs ແລະຕ່າງໆ. ເຄື່ອງເລັ່ງຮາດແວ. ຢ່າງໃດກໍຕາມ, ນັກພັດທະນາ Mojo ຕັ້ງໃຈທີ່ຈະເຂົ້າກັນໄດ້ກັບ CPython ເທົ່າທີ່ເປັນໄປໄດ້.

Mojo ສາມາດນໍາໃຊ້ໄດ້ທັງໃນຮູບແບບການຕີຄວາມຫມາຍໂດຍໃຊ້ JIT, ແລະສໍາລັບການລວບລວມເຂົ້າໄປໃນໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້ (AOT, ລ່ວງຫນ້າ). compiler ມີການກໍ່ສ້າງໃນເຕັກໂນໂລຊີທີ່ທັນສະໄຫມສໍາລັບການເພີ່ມປະສິດທິພາບອັດຕະໂນມັດ, caching ແລະການລວບລວມການແຈກຢາຍ. ຂໍ້ຄວາມແຫຼ່ງຂໍ້ມູນໃນພາສາ Mojo ຖືກປ່ຽນເປັນລະຫັດລະດັບປານກາງລະດັບຕ່ໍາ MLIR (Multi-Level Intermediate Representation), ພັດທະນາໂດຍໂຄງການ LLVM ແລະສະຫນອງຄວາມສາມາດເພີ່ມເຕີມສໍາລັບການເພີ່ມປະສິດທິພາບຂອງເສັ້ນສະແດງເສັ້ນສະແດງຂໍ້ມູນ. compiler ອະນຸຍາດໃຫ້ທ່ານໃຊ້ backends ຕ່າງໆທີ່ສະຫນັບສະຫນູນ MLIR ເພື່ອສ້າງລະຫັດເຄື່ອງຈັກ.

ການນໍາໃຊ້ກົນໄກຮາດແວເພີ່ມເຕີມເພື່ອເລັ່ງການຄໍານວນເຮັດໃຫ້ມັນເປັນໄປໄດ້ທີ່ຈະບັນລຸການປະຕິບັດທີ່ເຫນືອກວ່າຄໍາຮ້ອງສະຫມັກ C / C ++ ໃນລະຫວ່າງການຄິດໄລ່ແບບສຸມ. ຕົວຢ່າງເຊັ່ນ, ເມື່ອທົດສອບຄໍາຮ້ອງສະຫມັກສໍາລັບການສ້າງຊຸດ Mandelbrot, ຄໍາຮ້ອງສະຫມັກທີ່ລວບລວມໃນພາສາ Mojo ເມື່ອຖືກປະຕິບັດໃນ AWS cloud (r7iz.metal-16xl) ກາຍເປັນ 6 ເທົ່າໄວກວ່າການປະຕິບັດໃນ C ++ (0.03 ວິນາທີ. vs. . .

ໃນເວລາທີ່ການປະເມີນປະສິດທິພາບໃນຂະແຫນງການແກ້ໄຂບັນຫາການຮຽນຮູ້ເຄື່ອງຈັກ, 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 ເທົ່າໃນ CPU Intel, 2.1, 1.2 ແລະ 1.5 ເທົ່າໃນ CPUs AMD ແລະ 4, 4.3 ແລະ 1.3 ເທົ່າໃນ ARM CPUs.

ຜູ້ສ້າງ LLVM ພັດທະນາພາສາການຂຽນໂປຼແກຼມ Mojo ໃໝ່

ພາສາດັ່ງກ່າວຮອງຮັບການພິມແບບຄົງທີ່ ແລະຄຸນສົມບັດທີ່ປອດໄພໃນໜ່ວຍຄວາມຈຳລະດັບຕໍ່າທີ່ລະນຶກເຖິງ Rust ເຊັ່ນ: ການຕິດຕາມຕະຫຼອດຊີວິດການອ້າງອີງ ແລະຕົວກວດສອບການກູ້ຢືມ. ນອກເຫນືອຈາກສິ່ງອໍານວຍຄວາມສະດວກສໍາລັບການເຮັດວຽກທີ່ປອດໄພດ້ວຍຕົວຊີ້, ພາສາຍັງສະຫນອງຄຸນນະສົມບັດສໍາລັບການເຮັດວຽກໃນລະດັບຕ່ໍາ, ຕົວຢ່າງ, ການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາໂດຍກົງໃນໂຫມດທີ່ບໍ່ປອດໄພໂດຍໃຊ້ປະເພດ Pointer, ໂທຫາຄໍາແນະນໍາຂອງ SIMD ສ່ວນບຸກຄົນ, ຫຼືການເຂົ້າເຖິງສ່ວນຂະຫຍາຍຮາດແວເຊັ່ນ TensorCores ແລະ AMX .

ຜູ້ສ້າງ LLVM ພັດທະນາພາສາການຂຽນໂປຼແກຼມ Mojo ໃໝ່

ເພື່ອງ່າຍການແຍກລະຫັດ Python ຄລາສສິກແລະເພີ່ມປະສິດທິພາບສໍາລັບຫນ້າທີ່ທີ່ມີຄໍານິຍາມປະເພດທີ່ຊັດເຈນສໍາລັບຕົວແປທັງຫມົດ, ມັນໄດ້ຖືກສະເຫນີໃຫ້ໃຊ້ຄໍາທີ່ແຍກຕ່າງຫາກ "fn" ແທນ "def". ເຊັ່ນດຽວກັນສໍາລັບຫ້ອງຮຽນ, ຖ້າທ່ານຕ້ອງການບັນຈຸຂໍ້ມູນຢູ່ໃນຫນ່ວຍຄວາມຈໍາໃນລະຫວ່າງການລວບລວມ (ເຊັ່ນໃນ C), ທ່ານສາມາດນໍາໃຊ້ປະເພດ "ໂຄງສ້າງ" ແທນ "ຫ້ອງຮຽນ". ມັນເປັນໄປໄດ້ທີ່ຈະພຽງແຕ່ນໍາເຂົ້າໂມດູນໃນພາສາ C / C ++, ສໍາລັບການຍົກຕົວຢ່າງ, ເພື່ອນໍາເຂົ້າຟັງຊັນ cos ຈາກຫ້ອງສະຫມຸດຄະນິດສາດ, ທ່ານສາມາດກໍານົດ "ຈາກ "math.h" ນໍາເຂົ້າ cos".

ແຫຼ່ງຂໍ້ມູນ: opennet.ru

ຊື້ໂຮດຕິ້ງທີ່ເຊື່ອຖືໄດ້ສໍາລັບເວັບໄຊທ໌ທີ່ມີການປົກປ້ອງ DDoS, ເຄື່ອງແມ່ຂ່າຍ VPS VDS 🔥 ຊື້ເວັບໄຊທ໌ໂຮດຕິ້ງທີ່ເຊື່ອຖືໄດ້ດ້ວຍການປ້ອງກັນ DDoS, ເຊີບເວີ VPS VDS | ProHoster