ডিপমাইন্ড পাইথনের জন্য একটি JIT কম্পাইলার S6 এর জন্য সোর্স কোড প্রকাশ করেছে

S6- গভীর মন

S6, CPython এর জন্য একটি স্বতন্ত্র JIT কম্পাইলার লাইব্রেরি

গভীর মন, কৃত্রিম বুদ্ধিমত্তার ক্ষেত্রে তার উন্নয়নের জন্য পরিচিত, সম্প্রতি ঘোষণা করেছে যে S6 প্রকল্পের সোর্স কোড প্রকাশ করার সিদ্ধান্ত নিয়েছে, যা তিনি পাইথন ভাষার জন্য একটি JIT কম্পাইলার থেকে তৈরি করেছেন।

প্রকল্পটি আকর্ষণীয় কারণ একটি এক্সটেনশন লাইব্রেরি হিসাবে ডিজাইন করা হয়েছে যা স্ট্যান্ডার্ড CPython এর সাথে একত্রিত করা যেতে পারে, যা সম্পূর্ণ CPython সামঞ্জস্য প্রদান করে এবং পরিবর্তনের প্রয়োজন হয় না দোভাষী কোডের। প্রকল্পটি 2019 সাল থেকে উন্নয়নে রয়েছে, কিন্তু দুর্ভাগ্যবশত পিছিয়ে দেওয়া হয়েছে এবং আর উন্নয়নে নেই।

S6 একটি প্রকল্প ছিল ডিপমাইন্ডের মধ্যে 2019 সালে CPython এর গতি বাড়ানোর জন্য জাস্ট-ইন-টাইম ("JIT") সংকলন। এই ফাংশনগুলি একটি সাধারণ পাইথন লাইব্রেরি হিসাবে সরবরাহ করা হবে এবং CPython ইন্টারপ্রেটারে কোন পরিবর্তনের প্রয়োজন হবে না। S6 পাইথনের জন্য যা করতে চায় V8 জাভাস্ক্রিপ্টের জন্য যা করেছিল (নামটি V8 এর প্রতি শ্রদ্ধা)। কাজটি CPython সংস্করণ 3.7 এর উপর ভিত্তি করে করা হয়েছিল। কাজের চাপের উপর নির্ভর করে, আমরা সাধারণ বেঞ্চমার্কে 9.5x পর্যন্ত গতি দেখেছি।

সোর্স কোড প্রকাশ করার সিদ্ধান্ত নেওয়ার প্রধান কারণ, তাদের মধ্যে একটি এবং ইতিমধ্যে উল্লেখ করা হয়েছে যে প্রকল্পটি সমর্থন পাওয়া বন্ধ করে দিয়েছে, আরেকটি প্রধান কারণ দেওয়া হয়েছিল যে তৈরি করা উন্নয়নের উপর ভিত্তি করে, এগুলি এখনও পাইথন উন্নত করার জন্য কার্যকর হতে পারে। .

আমরা অভ্যন্তরীণভাবে S6 এ কাজ করা বন্ধ করে দিয়েছি। যেমন, এই সংগ্রহস্থলটি সংরক্ষণাগারভুক্ত করা হয়েছে এবং আমরা পুল অনুরোধ বা সমস্যাগুলি গ্রহণ করছি না। আমরা পাইথন সম্প্রদায়ের মধ্যে কথোপকথনকে উদ্দীপিত করতে এবং পাইথনকে উন্নত করার জন্য ভবিষ্যতের কাজকে অনুপ্রাণিত করতে নীচে একটি নকশা ওভারভিউ ওপেন সোর্স দিয়েছি।

S6 এর অপারেশন সম্পর্কে, আমাদের এটি উল্লেখ করা উচিত পাইথনের জন্য S6 জাভাস্ক্রিপ্টের জন্য V8 ইঞ্জিনের সাথে তুলনা করে কাজের পরিপ্রেক্ষিতে এটি সমাধান করে। লাইব্রেরিটি বিদ্যমান ceval.c বাইটকোড ইন্টারপ্রেটার ড্রাইভারকে তার নিজস্ব বাস্তবায়নের সাথে প্রতিস্থাপন করে যা কার্যকর করার গতি বাড়াতে JIT সংকলন ব্যবহার করে।

S6 বর্তমান ফাংশন ইতিমধ্যে কম্পাইল করা হয়েছে কিনা তা পরীক্ষা করে এবং, যদি তাই হয়, কম্পাইল করা কোড নির্বাহ করে, এবং যদি না হয়, CPython দোভাষীর অনুরূপ একটি বাইটকোড ব্যাখ্যা মোডে ফাংশন চালায়। ইন্টারপ্রিটেশনটি প্রসেস করা ফাংশনের সাথে সম্পৃক্ত এক্সিকিউটেড স্টেটমেন্ট এবং কলের সংখ্যা গণনা করে।

একটি নির্দিষ্ট মাইলফলক পৌঁছানোর পরে, কোডের গতি বাড়ানোর জন্য বিল্ড প্রক্রিয়া শুরু হয় যা প্রায়শই চলে। কম্পাইলেশন স্ট্রংজিট ইন্টারমিডিয়েট রিপ্রেজেন্টেশনে সঞ্চালিত হয়, যা অপ্টিমাইজেশনের পরে, asmjit লাইব্রেরি ব্যবহার করে টার্গেট সিস্টেম মেশিন নির্দেশাবলীতে রূপান্তরিত হয়।

লোডের প্রকৃতির উপর নির্ভর করে, সর্বোত্তম অবস্থার অধীনে, S6 নিয়মিত CPython এর তুলনায় 9,5 গুণ পর্যন্ত পরীক্ষা সম্পাদনের গতি বৃদ্ধি দেখায়।

যখন 100টি পুনরাবৃত্তি কার্যকর করা হয় রিচার্ডস টেস্ট স্যুট থেকে, 7 বার একটি ত্বরণ আছে, এবং Raytrace পরীক্ষা চালানোর সময়, যেটিতে প্রচুর গণিত রয়েছে, এটি 3 থেকে 4,5 গুণ দ্রুত।

যে কাজগুলো অপ্টিমাইজ করা কঠিন S6 এর সাথে C API ব্যবহার করে এমন প্রকল্পগুলি, যেমন NumPy, সেইসাথে বৃহৎ সংখ্যক মানগুলির প্রকারগুলি পরীক্ষা করার প্রয়োজনীয়তার সাথে সম্পর্কিত ক্রিয়াকলাপগুলি।

একক ফাংশন কলের জন্যও খারাপ পারফরম্যান্স দেখা যায় যা S6 পাইথন ইন্টারপ্রেটারের অপ্টিমাইজড ইমপ্লিমেন্টেশন ব্যবহারের কারণে প্রচুর রিসোর্স খরচ করে (ডেভেলপমেন্ট ইন্টারপ্রেট মোড অপ্টিমাইজেশানের পর্যায়ে পৌঁছেনি)।

উদাহরণ স্বরূপ, আনপ্যাক সিকোয়েন্স পরীক্ষায়, যা অ্যারে/টুপলের বড় সেট আনপ্যাক করে, একটি একক কল 5 গুণ পর্যন্ত মন্থরতা দেখায়, এবং একটি চক্রীয় কল CPython থেকে 0,97 লাভ করে।

পরিশেষে যারা এটি সম্পর্কে আরও জানতে আগ্রহী তাদের জন্য, আপনার জানা উচিত যে JIT কম্পাইলার কোডটি C++ এ লেখা আছে এবং বর্তমানে এটি CPython 3.7-এর উপর ভিত্তি করে তৈরি করা হয়েছে, এছাড়াও সোর্স কোডটি ইতিমধ্যেই Apache 2.0 লাইসেন্সের অধীনে খোলা আছে এবং পরামর্শ করা যেতে পারে। নীচের লিঙ্ক থেকে।


আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়বদ্ধ: মিগুয়েল অ্যাঞ্জেল গাটান
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।