ಡೀಪ್‌ಮೈಂಡ್ ಓಪನ್ ಸೋರ್ಸ್ಡ್ S6, CPython ಗಾಗಿ JIT ಕಂಪೈಲರ್ ಅಳವಡಿಕೆಯೊಂದಿಗೆ ಲೈಬ್ರರಿ

ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯ ಕ್ಷೇತ್ರದಲ್ಲಿನ ಬೆಳವಣಿಗೆಗಳಿಗೆ ಹೆಸರುವಾಸಿಯಾದ ಡೀಪ್‌ಮೈಂಡ್, ಪೈಥಾನ್ ಭಾಷೆಗಾಗಿ JIT ಕಂಪೈಲರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ S6 ಯೋಜನೆಯ ಮೂಲ ಕೋಡ್ ಅನ್ನು ತೆರೆದಿದೆ. ಯೋಜನೆಯು ಆಸಕ್ತಿದಾಯಕವಾಗಿದೆ ಏಕೆಂದರೆ ಇದನ್ನು ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಸಿಪಿಥಾನ್‌ನೊಂದಿಗೆ ಸಂಯೋಜಿಸುವ ವಿಸ್ತರಣಾ ಗ್ರಂಥಾಲಯವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಸಿಪಿಥಾನ್‌ನೊಂದಿಗೆ ಸಂಪೂರ್ಣ ಹೊಂದಾಣಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ ಮತ್ತು ಇಂಟರ್ಪ್ರಿಟರ್ ಕೋಡ್‌ನ ಮಾರ್ಪಾಡು ಅಗತ್ಯವಿಲ್ಲ. ಯೋಜನೆಯು 2019 ರಿಂದ ಅಭಿವೃದ್ಧಿಗೊಳ್ಳುತ್ತಿದೆ, ಆದರೆ ದುರದೃಷ್ಟವಶಾತ್ ಅದನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ ಮತ್ತು ಇನ್ನು ಮುಂದೆ ಅಭಿವೃದ್ಧಿಯಾಗುತ್ತಿಲ್ಲ. ರಚಿಸಲಾದ ಬೆಳವಣಿಗೆಗಳು ಪೈಥಾನ್ ಅನ್ನು ಸುಧಾರಿಸಲು ಉಪಯುಕ್ತವಾಗಿರುವುದರಿಂದ, ಕೋಡ್ ಅನ್ನು ತೆರೆಯಲು ನಿರ್ಧರಿಸಲಾಯಿತು. JIT ಕಂಪೈಲರ್ ಕೋಡ್ ಅನ್ನು C++ ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು CPython 3.7 ಅನ್ನು ಆಧರಿಸಿದೆ. ಮತ್ತು ಅಪಾಚೆ 2.0 ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ತೆರೆದ ಮೂಲವಾಗಿದೆ.

ಇದು ಪರಿಹರಿಸಬಹುದಾದ ಕಾರ್ಯಗಳ ವಿಷಯದಲ್ಲಿ, ಪೈಥಾನ್‌ಗಾಗಿ S6 ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ಗಾಗಿ V8 ಎಂಜಿನ್‌ಗೆ ಹೋಲಿಸುತ್ತದೆ. ಲೈಬ್ರರಿಯು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಬೈಟ್‌ಕೋಡ್ ಇಂಟರ್ಪ್ರಿಟರ್ ಹ್ಯಾಂಡ್ಲರ್ ceval.c ಅನ್ನು ತನ್ನದೇ ಆದ ಅನುಷ್ಠಾನದೊಂದಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ, ಅದು ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ವೇಗಗೊಳಿಸಲು JIT ಸಂಕಲನವನ್ನು ಬಳಸುತ್ತದೆ. ಪ್ರಸ್ತುತ ಕಾರ್ಯವನ್ನು ಈಗಾಗಲೇ ಕಂಪೈಲ್ ಮಾಡಲಾಗಿದೆಯೇ ಎಂದು S6 ಪರಿಶೀಲಿಸುತ್ತದೆ ಮತ್ತು ಹಾಗಿದ್ದಲ್ಲಿ, ಕಂಪೈಲ್ ಮಾಡಿದ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಇಲ್ಲದಿದ್ದರೆ, CPython ಇಂಟರ್ಪ್ರಿಟರ್‌ನಂತೆಯೇ ಬೈಟ್‌ಕೋಡ್ ವ್ಯಾಖ್ಯಾನ ಮೋಡ್‌ನಲ್ಲಿ ಕಾರ್ಯವನ್ನು ರನ್ ಮಾಡುತ್ತದೆ. ವ್ಯಾಖ್ಯಾನದ ಸಮಯದಲ್ಲಿ, ಕಾರ್ಯಗತಗೊಳಿಸಲಾದ ಸೂಚನೆಗಳು ಮತ್ತು ಕರೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾದ ಕಾರ್ಯಕ್ಕೆ ಸಂಬಂಧಿಸಿದೆ ಎಣಿಸಲಾಗುತ್ತದೆ. ಒಂದು ನಿರ್ದಿಷ್ಟ ಮೈಲಿಗಲ್ಲನ್ನು ತಲುಪಿದ ನಂತರ, ಆಗಾಗ್ಗೆ ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಕೋಡ್ ಅನ್ನು ವೇಗಗೊಳಿಸಲು ಸಂಕಲನ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ. ಸಂಕಲನವನ್ನು ಮಧ್ಯಂತರ ಸ್ಟ್ರಾಂಗ್‌ಜಿಟ್ ಪ್ರಾತಿನಿಧ್ಯವಾಗಿ ನಡೆಸಲಾಗುತ್ತದೆ, ಇದು ಆಪ್ಟಿಮೈಸೇಶನ್ ನಂತರ, asmjit ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಗುರಿ ವ್ಯವಸ್ಥೆಯ ಯಂತ್ರ ಸೂಚನೆಗಳಾಗಿ ಪರಿವರ್ತಿಸಲಾಗುತ್ತದೆ.

ಕೆಲಸದ ಹೊರೆಯ ಸ್ವರೂಪವನ್ನು ಅವಲಂಬಿಸಿ, ಸೂಕ್ತವಾದ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ S6 ಸಾಮಾನ್ಯ ಸಿಪಿಥಾನ್‌ಗೆ ಹೋಲಿಸಿದರೆ 9.5 ಪಟ್ಟು ಪರೀಕ್ಷಾ ಕಾರ್ಯಗತಗೊಳಿಸುವ ವೇಗದಲ್ಲಿ ಹೆಚ್ಚಳವನ್ನು ತೋರಿಸುತ್ತದೆ. ರಿಚರ್ಡ್ಸ್ ಪರೀಕ್ಷಾ ಸೂಟ್‌ನ 100 ಪುನರಾವರ್ತನೆಗಳನ್ನು ಚಲಾಯಿಸುವಾಗ, 7x ವೇಗವನ್ನು ಗಮನಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ ಗಣಿತದ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ರೇಟ್ರೇಸ್ ಪರೀಕ್ಷೆಯನ್ನು ನಡೆಸುವಾಗ, 3-4.5x ವೇಗವನ್ನು ಗಮನಿಸಲಾಗುತ್ತದೆ.

S6 ಅನ್ನು ಬಳಸಿಕೊಂಡು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲು ಕಷ್ಟಕರವಾದ ಕಾರ್ಯಗಳಲ್ಲಿ NumPy ನಂತಹ C API ಅನ್ನು ಬಳಸುವ ಯೋಜನೆಗಳು, ಹಾಗೆಯೇ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಮೌಲ್ಯಗಳ ಪ್ರಕಾರಗಳನ್ನು ಪರಿಶೀಲಿಸುವ ಅಗತ್ಯತೆಗೆ ಸಂಬಂಧಿಸಿದ ಕಾರ್ಯಾಚರಣೆಗಳು. ಪೈಥಾನ್ ಇಂಟರ್ಪ್ರಿಟರ್‌ನ S6 ನ ಸ್ವಂತ ಆಪ್ಟಿಮೈಸ್ ಮಾಡದ ಅಳವಡಿಕೆಯ ಬಳಕೆಯಿಂದಾಗಿ ಸಂಪನ್ಮೂಲ-ತೀವ್ರ ಕಾರ್ಯಗಳ ಏಕ ಕರೆಗಳಿಗೆ ಕಡಿಮೆ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಗಮನಿಸಲಾಗಿದೆ (ಅಭಿವೃದ್ಧಿಯು ವ್ಯಾಖ್ಯಾನ ಮೋಡ್ ಅನ್ನು ಉತ್ತಮಗೊಳಿಸುವ ಹಂತವನ್ನು ತಲುಪಿಲ್ಲ). ಉದಾಹರಣೆಗೆ, ಅನ್ಪ್ಯಾಕ್ ಸೀಕ್ವೆನ್ಸ್ ಪರೀಕ್ಷೆಯಲ್ಲಿ, ದೊಡ್ಡ ಸೆಟ್‌ಗಳ ಅರೇಗಳು/ಟುಪಲ್‌ಗಳನ್ನು ಅನ್ಪ್ಯಾಕ್ ಮಾಡುತ್ತದೆ, ಒಂದೇ ಕರೆಯೊಂದಿಗೆ 5 ಪಟ್ಟು ನಿಧಾನವಾಗುತ್ತದೆ ಮತ್ತು ಆವರ್ತಕ ಕರೆಯೊಂದಿಗೆ ಸಿಪಿಥಾನ್‌ನಿಂದ ಕಾರ್ಯಕ್ಷಮತೆ 0.97 ಆಗಿದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ