LLVM ನ ಸ್ಥಾಪಕ ಮತ್ತು ಮುಖ್ಯ ವಾಸ್ತುಶಿಲ್ಪಿ ಮತ್ತು ಸ್ವಿಫ್ಟ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಸೃಷ್ಟಿಕರ್ತ ಕ್ರಿಸ್ ಲ್ಯಾಟ್ನರ್ ಮತ್ತು ಟೆನ್ಸರ್ಫ್ಲೋ ಮತ್ತು JAX ನಂತಹ Google ನ AI ಯೋಜನೆಗಳ ಹಿಂದೆ ಮುಖ್ಯಸ್ಥರಾಗಿದ್ದ ಟಿಮ್ ಡೇವಿಸ್, ಹೊಸ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾದ Mojo ಅನ್ನು ಅನಾವರಣಗೊಳಿಸಿದರು, ಇದು ಸಂಶೋಧನೆಗೆ ಬಳಕೆಯ ಸುಲಭತೆ ಮತ್ತು ಕ್ಷಿಪ್ರ ಮೂಲಮಾದರಿ ಮತ್ತು ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಂತಿಮ ಉತ್ಪನ್ನಗಳನ್ನು ನಿರ್ಮಿಸಲು ಸೂಕ್ತತೆಯನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ. ಇದನ್ನು ಪೈಥಾನ್ನ ಪರಿಚಿತ ಸಿಂಟ್ಯಾಕ್ಸ್ ಮೂಲಕ ಸಾಧಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಎರಡನೆಯದನ್ನು ಸ್ಥಳೀಯ ಸಂಕಲನ, ಮೆಮೊರಿ-ಸುರಕ್ಷತಾ ಕಾರ್ಯವಿಧಾನಗಳು ಮತ್ತು ಹಾರ್ಡ್ವೇರ್ ವೇಗವರ್ಧನೆಯ ಮೂಲಕ ಸಾಧಿಸಲಾಗುತ್ತದೆ.
ಈ ಯೋಜನೆಯು ಯಂತ್ರ ಕಲಿಕೆ ಅಭಿವೃದ್ಧಿಯ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ, ಆದರೆ ಇದನ್ನು ಸಾಮಾನ್ಯ ಉದ್ದೇಶದ ಭಾಷೆಯಾಗಿ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ, ಇದು ಪೈಥಾನ್ ಅನ್ನು ಸಿಸ್ಟಮ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸಾಮರ್ಥ್ಯಗಳೊಂದಿಗೆ ವಿಸ್ತರಿಸುತ್ತದೆ ಮತ್ತು ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ಕಾರ್ಯಗಳಿಗೆ ಸೂಕ್ತವಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಭಾಷೆಯು ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯ ಕಂಪ್ಯೂಟಿಂಗ್ ಮತ್ತು ಡೇಟಾ ಸಂಸ್ಕರಣೆ ಮತ್ತು ರೂಪಾಂತರದಂತಹ ಕ್ಷೇತ್ರಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತದೆ. ".mojo" ಪಠ್ಯ ವಿಸ್ತರಣೆಯ ಜೊತೆಗೆ, ಕೋಡ್ ಫೈಲ್ಗಳಿಗೆ (ಉದಾ., "helloworld.🔥") ವಿಸ್ತರಣೆಯಾಗಿ ಎಮೋಜಿ ಚಿಹ್ನೆ "🔥" ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಸಾಮರ್ಥ್ಯ ಮೊಜೊದ ಆಸಕ್ತಿದಾಯಕ ವೈಶಿಷ್ಟ್ಯವಾಗಿದೆ.
ಭಾಷೆ ಪ್ರಸ್ತುತ ತೀವ್ರ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿದೆ ಮತ್ತು ಪರೀಕ್ಷೆಗೆ ಆನ್ಲೈನ್ ಇಂಟರ್ಫೇಸ್ ಮಾತ್ರ ಲಭ್ಯವಿದೆ. ಸಂವಾದಾತ್ಮಕ ವೆಬ್ ಪರಿಸರದ ಕುರಿತು ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪಡೆದ ನಂತರ, ಸ್ಥಳೀಯ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಸ್ವತಂತ್ರ ನಿರ್ಮಾಣಗಳನ್ನು ನಂತರ ಪ್ರಕಟಿಸಲಾಗುವುದು ಎಂದು ಭರವಸೆ ನೀಡಲಾಗಿದೆ. ಕಂಪೈಲರ್, JIT ಮತ್ತು ಇತರ ಸಂಬಂಧಿತ ಅಭಿವೃದ್ಧಿಗಳ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಆಂತರಿಕ ವಾಸ್ತುಶಿಲ್ಪ ಪೂರ್ಣಗೊಂಡ ನಂತರ ಮುಕ್ತ ಮೂಲವಾಗಿಸಲು ಯೋಜಿಸಲಾಗಿದೆ (ಕೆಲಸದ ಮೂಲಮಾದರಿಗಾಗಿ ಮುಚ್ಚಿದ-ಬಾಗಿಲಿನ ಅಭಿವೃದ್ಧಿ ಮಾದರಿಯು LLVM, ಕ್ಲಾಂಗ್ ಮತ್ತು ಸ್ವಿಫ್ಟ್ನ ಆರಂಭಿಕ ಅಭಿವೃದ್ಧಿ ಹಂತವನ್ನು ನೆನಪಿಸುತ್ತದೆ). ಮೊಜೊದ ಸಿಂಟ್ಯಾಕ್ಸ್ ಪೈಥಾನ್ ಅನ್ನು ಆಧರಿಸಿರುವುದರಿಂದ ಮತ್ತು ಅದರ ಪ್ರಕಾರದ ವ್ಯವಸ್ಥೆಯು C/C++ ಅನ್ನು ಹೋಲುವುದರಿಂದ, ಭವಿಷ್ಯದ ಯೋಜನೆಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಿ/ಸಿ++ ಮತ್ತು ಪೈಥಾನ್ ಯೋಜನೆಗಳನ್ನು ಮೊಜೊಗೆ ವಲಸೆ ಹೋಗುವುದನ್ನು ಸರಳಗೊಳಿಸಲು ಮತ್ತು ಪೈಥಾನ್ ಮತ್ತು ಮೊಜೊ ಕೋಡ್ ಅನ್ನು ಸಂಯೋಜಿಸುವ ಹೈಬ್ರಿಡ್ ಯೋಜನೆಗಳ ಅಭಿವೃದ್ಧಿಯನ್ನು ಸುಗಮಗೊಳಿಸಲು ಪರಿಕರಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವುದನ್ನು ಒಳಗೊಂಡಿವೆ.
ಈ ಯೋಜನೆಯನ್ನು ವೈವಿಧ್ಯಮಯ ವ್ಯವಸ್ಥೆಗಳ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಹಾರ್ಡ್ವೇರ್ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಕಂಪ್ಯೂಟೇಶನ್ಗಾಗಿ ಬಳಸಿಕೊಳ್ಳಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, GPU ಗಳು, ವಿಶೇಷ ಯಂತ್ರ ಕಲಿಕೆ ವೇಗವರ್ಧಕಗಳು ಮತ್ತು ಏಕ-ಸೂಚನಾ ವೆಕ್ಟರ್ ಪ್ರೊಸೆಸರ್ಗಳು (SIMD) ಅನ್ನು ಮೊಜೊ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಚಲಾಯಿಸಲು ಮತ್ತು ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಸಮಾನಾಂತರಗೊಳಿಸಲು ಬಳಸಬಹುದು. ಆಪ್ಟಿಮೈಸೇಶನ್ಗಾಗಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಿಪಿಥಾನ್ ಅನ್ನು ಅವಲಂಬಿಸುವ ಬದಲು, ಪ್ರತ್ಯೇಕ ಪೈಥಾನ್ ಉಪವಿಭಾಗವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಉಲ್ಲೇಖಿಸಲಾದ ಕಾರಣಗಳಲ್ಲಿ ಸಂಕಲನದ ಮೇಲೆ ಗಮನ, ಸಿಸ್ಟಮ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸಾಮರ್ಥ್ಯಗಳ ಏಕೀಕರಣ ಮತ್ತು GPU ಗಳು ಮತ್ತು ವಿವಿಧ ಹಾರ್ಡ್ವೇರ್ ವೇಗವರ್ಧಕಗಳಲ್ಲಿ ಕೋಡ್ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೂಲಭೂತವಾಗಿ ವಿಭಿನ್ನ ಆಂತರಿಕ ವಾಸ್ತುಶಿಲ್ಪದ ಬಳಕೆ ಸೇರಿವೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಮೊಜೊ ಡೆವಲಪರ್ಗಳು ಸಿಪಿಥಾನ್ನೊಂದಿಗೆ ಸಾಧ್ಯವಾದಷ್ಟು ಹೊಂದಾಣಿಕೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು ಉದ್ದೇಶಿಸಿದ್ದಾರೆ.
ಮೊಜೊವನ್ನು ಜೆಐಟಿ (ಜಸ್ಟ್-ಇನ್-ಟೈಮ್) ಮತ್ತು ಅವೇಡ್-ಆಫ್-ಟೈಮ್ (ಎಒಟಿ) ಮೋಡ್ ಎರಡರಲ್ಲೂ ಬಳಸಬಹುದು. ಕಂಪೈಲರ್ ಸ್ವಯಂಚಾಲಿತ ಆಪ್ಟಿಮೈಸೇಶನ್, ಕ್ಯಾಶಿಂಗ್ ಮತ್ತು ಡಿಸ್ಟ್ರಿಬ್ಯೂಟೆಡ್ ಕಂಪೈಲೇಶನ್ಗಾಗಿ ಆಧುನಿಕ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಮೊಜೊ ಸೋರ್ಸ್ ಕೋಡ್ ಅನ್ನು ಕಡಿಮೆ-ಮಟ್ಟದ ಮಧ್ಯಂತರ ಕೋಡ್ (ಎಂಎಲ್ಐಆರ್) ಗೆ ಪರಿವರ್ತಿಸಲಾಗುತ್ತದೆ, ಇದನ್ನು ಎಲ್ಎಲ್ವಿಎಂ ಯೋಜನೆಯಿಂದ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ಡೇಟಾಫ್ಲೋ ಗ್ರಾಫ್ ಸಂಸ್ಕರಣೆಯನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ಹೆಚ್ಚುವರಿ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ನೀಡುತ್ತದೆ. ಕಂಪೈಲರ್ ಯಂತ್ರ ಕೋಡ್ ಉತ್ಪಾದನೆಗಾಗಿ ವಿವಿಧ ಎಂಎಲ್ಐಆರ್-ಸಕ್ರಿಯಗೊಳಿಸಿದ ಬ್ಯಾಕೆಂಡ್ಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ.
ಹೆಚ್ಚುವರಿ ಹಾರ್ಡ್ವೇರ್ ವೇಗವರ್ಧನೆಯನ್ನು ಬಳಸಿಕೊಳ್ಳುವುದರಿಂದ C/C++ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಮೀರಿಸುವ ತೀವ್ರ ಲೆಕ್ಕಾಚಾರಗಳಿಗೆ ಕಾರ್ಯಕ್ಷಮತೆಯ ಲಾಭವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಮ್ಯಾಂಡೆಲ್ಬ್ರೋಟ್ ಸೆಟ್ ಜನರೇಷನ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪರೀಕ್ಷಿಸುವಾಗ, ಸಂಕಲಿಸಿದ ಮೊಜೊ ಅಪ್ಲಿಕೇಶನ್ (r7iz.metal-16xl) AWS ಕ್ಲೌಡ್ನಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವಾಗ C++ ಅನುಷ್ಠಾನಕ್ಕಿಂತ 6 ಪಟ್ಟು ವೇಗವಾಗಿತ್ತು (0.03 ಸೆಕೆಂಡ್. ವರ್ಸಸ್ 0.20 ಸೆಕೆಂಡ್.), ಪ್ರಮಾಣಿತ CPython 3.10.9 (0.03 ಸೆಕೆಂಡ್. ವರ್ಸಸ್ 1027 ಸೆಕೆಂಡ್.) ಬಳಸುವಾಗ ಪೈಥಾನ್ ಅಪ್ಲಿಕೇಶನ್ಗಿಂತ 35 ಪಟ್ಟು ವೇಗವಾಗಿತ್ತು ಮತ್ತು PYPY ಬಳಸುವಾಗ 1500 ಪಟ್ಟು ವೇಗವಾಗಿತ್ತು (0.03 ಸೆಕೆಂಡ್. ವರ್ಸಸ್ 46.1 ಸೆಕೆಂಡ್.).
ಯಂತ್ರ ಕಲಿಕೆಯ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುವಾಗ, ಮೊಜೊದಲ್ಲಿ ಬರೆಯಲಾದ ಮಾಡ್ಯುಲರ್ ಇನ್ಫರೆನ್ಸ್ ಎಂಜಿನ್ AI ಸ್ಟ್ಯಾಕ್, ಭಾಷಾ ಮಾದರಿಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವಾಗ ಇಂಟೆಲ್ ಪ್ರೊಸೆಸರ್ನಲ್ಲಿ 3x ವೇಗವಾಗಿದೆ, ಶಿಫಾರಸು ಮಾದರಿಯನ್ನು ಚಲಾಯಿಸುವಾಗ 6.4x ವೇಗವಾಗಿದೆ ಮತ್ತು ಟೆನ್ಸರ್ಫ್ಲೋ-ಆಧಾರಿತ ಪರಿಹಾರಕ್ಕೆ ಹೋಲಿಸಿದರೆ ದೃಶ್ಯ ಮಾಹಿತಿ ಸಂಸ್ಕರಣಾ ಮಾದರಿಗಳನ್ನು ಚಲಾಯಿಸುವಾಗ 2.1x ವೇಗವಾಗಿದೆ. AMD ಪ್ರೊಸೆಸರ್ಗಳಲ್ಲಿ, ಮೊಜೊ 3.2x, 5x ಮತ್ತು 2.2x ಕಾರ್ಯಕ್ಷಮತೆಯ ಲಾಭಗಳನ್ನು ಸಾಧಿಸಿತು, ಆದರೆ ARM ಪ್ರೊಸೆಸರ್ಗಳಲ್ಲಿ, ಇದು 5.3x, 7.5x ಮತ್ತು 1.7x ಕಾರ್ಯಕ್ಷಮತೆಯ ಲಾಭಗಳನ್ನು ಸಾಧಿಸಿತು. ಪೈಟಾರ್ಚ್-ಆಧಾರಿತ ಪರಿಹಾರವು ಇಂಟೆಲ್ CPU ಗಳಲ್ಲಿ 1.4x, 1.1x, ಮತ್ತು 1.5x, AMD CPU ಗಳಲ್ಲಿ 2.1x, 1.2x, ಮತ್ತು 1.5x ಮತ್ತು ARM CPU ಗಳಲ್ಲಿ 4x, 4.3x ಮತ್ತು 1.3x ಗಳಷ್ಟು ಮೊಜೊಗಿಂತ ಹಿಂದುಳಿದಿದೆ.

ಈ ಭಾಷೆಯು ಸ್ಟ್ಯಾಟಿಕ್ ಟೈಪಿಂಗ್ ಮತ್ತು ರಸ್ಟ್ ಅನ್ನು ನೆನಪಿಸುವ ಕಡಿಮೆ-ಮಟ್ಟದ ಮೆಮೊರಿ ಸುರಕ್ಷತಾ ವೈಶಿಷ್ಟ್ಯಗಳಾದ ಉಲ್ಲೇಖ ಜೀವಿತಾವಧಿ ಟ್ರ್ಯಾಕಿಂಗ್ ಮತ್ತು ಸಾಲ ಪರೀಕ್ಷಕವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಪಾಯಿಂಟರ್ ಸುರಕ್ಷತಾ ವೈಶಿಷ್ಟ್ಯಗಳ ಜೊತೆಗೆ, ಭಾಷೆಯು ಪಾಯಿಂಟರ್ ಪ್ರಕಾರವನ್ನು ಬಳಸಿಕೊಂಡು ಅಸುರಕ್ಷಿತ ಮೋಡ್ನಲ್ಲಿ ನೇರ ಮೆಮೊರಿ ಪ್ರವೇಶ, ಪ್ರತ್ಯೇಕ SIMD ಸೂಚನೆಗಳನ್ನು ಆಹ್ವಾನಿಸುವುದು ಮತ್ತು ಟೆನ್ಸರ್ಕೋರ್ಗಳು ಮತ್ತು AMX ನಂತಹ ಹಾರ್ಡ್ವೇರ್ ವಿಸ್ತರಣೆಗಳನ್ನು ಪ್ರವೇಶಿಸುವಂತಹ ಕಡಿಮೆ-ಮಟ್ಟದ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಸಹ ನೀಡುತ್ತದೆ.

ಎಲ್ಲಾ ವೇರಿಯೇಬಲ್ಗಳಿಗೆ ಸ್ಪಷ್ಟವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಪ್ರಕಾರಗಳನ್ನು ಹೊಂದಿರುವ ಕಾರ್ಯಗಳಿಗಾಗಿ ಕ್ಲಾಸಿಕ್ ಮತ್ತು ಆಪ್ಟಿಮೈಸ್ಡ್ ಪೈಥಾನ್ ಕೋಡ್ನ ಪ್ರತ್ಯೇಕತೆಯನ್ನು ಸರಳೀಕರಿಸಲು, "def" ಬದಲಿಗೆ ಪ್ರತ್ಯೇಕ "fn" ಕೀವರ್ಡ್ ಅನ್ನು ಬಳಸಲು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ. ಅದೇ ರೀತಿ, ತರಗತಿಗಳಿಗೆ, ಕಂಪೈಲ್ ಸಮಯದಲ್ಲಿ (C ನಲ್ಲಿರುವಂತೆ) ಮೆಮೊರಿಯಲ್ಲಿ ಸ್ಥಿರ ಡೇಟಾ ಪ್ಯಾಕಿಂಗ್ ಅಗತ್ಯವಿದ್ದರೆ, "class" ಬದಲಿಗೆ "struct" ಪ್ರಕಾರವನ್ನು ಬಳಸಬಹುದು. C/C++ ಮಾಡ್ಯೂಲ್ಗಳ ಸರಳ ಆಮದು ಸಹ ಸಾಧ್ಯವಿದೆ. ಉದಾಹರಣೆಗೆ, ಗಣಿತ ಗ್ರಂಥಾಲಯದಿಂದ cos ಕಾರ್ಯವನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಲು, ನೀವು "from "math.h" import cos" ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು.
ಮೂಲ: opennet.ru
