এলএলএম সংকলন একটি মেগাকার্নেল: একটি পথ স্বল্প-লেটেন্সি অনুমান | লিখেছেন ঝিহো জিয়া | জুন,

এলএলএম সংকলন একটি মেগাকার্নেল: একটি পথ স্বল্প-লেটেন্সি অনুমান | লিখেছেন ঝিহো জিয়া | জুন,

এলএলএম অনুমানের বিলম্ব হ্রাস করার অন্যতম কার্যকর উপায় হ’ল সমস্ত গণনা এবং যোগাযোগকে একক হিসাবে ফিউজ করা মেগাকার্নেলএকটি হিসাবে পরিচিত অবিরাম কার্নেল। এই নকশায়, সিস্টেমটি ঠিক চালু হয় এক জিপিইউ কার্নেল পুরো মডেলটি কার্যকর করতে-স্তর-বাই-স্তর গণনা থেকে আন্তঃ-জিপিইউ যোগাযোগ পর্যন্ত-বাধা ছাড়াই। এই পদ্ধতির বেশ কয়েকটি মূল পারফরম্যান্স সুবিধাগুলি সরবরাহ করে:

  1. কার্নেল লঞ্চ ওভারহেড দূর করেএমনকি মাল্টি-জিপিইউ সেটিংসেও, বারবার কার্নেল আহ্বান এড়িয়ে;
  2. সফ্টওয়্যার পাইপলাইনিং সক্ষম করে স্তর জুড়েকার্নেলটি বর্তমানের কম্পিউটারের সময় পরবর্তী স্তরটির জন্য ডেটা লোড করা শুরু করার অনুমতি দেয়;
  3. ওভারল্যাপস গণনা এবং যোগাযোগমেগাকেরনেল হিসাবে একই সাথে লেটেন্সি আড়াল করতে গণনা অপারেশন এবং আন্তঃ-জিপিইউ যোগাযোগ কার্যকর করতে পারে।

এই সুবিধাগুলি সত্ত্বেও, একটি এলএলএম সংকলন একটি মেগাকেরনেলে সংকলন করা অত্যন্ত চ্যালেঞ্জিং। বিদ্যমান উচ্চ-স্তরের এমএল ফ্রেমওয়ার্কগুলি-যেমন পাইথোর্চ, ট্রাইটনএবং টিভিএম -স্থানীয়ভাবে শেষ থেকে শেষ মেগাকার্নেল প্রজন্মকে সমর্থন করবেন না। অতিরিক্তভাবে, আধুনিক এলএলএম সিস্টেমগুলি বিশেষায়িত কার্নেল লাইব্রেরির বিভিন্ন সংগ্রহ থেকে নির্মিত: এনসিএল বা Nvshmem যোগাযোগের জন্য, ফ্ল্যাশিনফার বা ফ্ল্যাশ্যাটেনশন দক্ষ মনোযোগের জন্য, এবং চুদা বা ট্রাইটন কাস্টম গণনার জন্য। এই খণ্ডনটি পুরো অনুমানের পাইপলাইনটিকে একক, ইউনিফাইড কার্নেলে একীভূত করা কঠিন করে তোলে।

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

এমপিকে-র একটি মূল সুবিধা হ’ল কার্নেল লঞ্চ ওভারহেড এবং সর্বাধিক ওভারল্যাপিং গণনা, ডেটা লোডিং এবং আন্ত-জিপিইউ স্তরগুলি জুড়ে যোগাযোগের মাধ্যমে এলএলএম অনুমানের জন্য অত্যন্ত কম বিলম্ব।

চিত্র 1। এমপিকে এবং বিদ্যমান সিস্টেমগুলির মধ্যে এলএলএম ডিকোডিং বিলম্বের তুলনা। আমরা একটি 39-টোকেন প্রম্পট ব্যবহার করেছি এবং অনুমানমূলক ডিকোডিং ছাড়াই 512 টোকেন তৈরি করেছি।

চিত্র 1 একক- এবং মাল্টি-জিপিইউ কনফিগারেশনে এমপিকে এবং বিদ্যমান এলএলএম ইনফারেন্স সিস্টেমগুলির মধ্যে একটি পারফরম্যান্স তুলনা চিত্রিত করে। একটি একক এনভিডিয়া এ 100 40 জিবি জিপিইউতে, এমপিকে প্রতি-টোকেন ডিকোডিং বিলম্ব থেকে হ্রাস করে 14.5 এমএস – ভিএলএলএম এবং এসগ্ল্যাংয়ের মতো অনুকূলিত সিস্টেমগুলি দ্বারা অর্জন করা – টু 12.5 এমএসতাত্ত্বিক নিম্ন সীমা কাছাকাছি 10 এমএস (1.6 টিবি/এস মেমরি ব্যান্ডউইথ সহ 16 গিগাবাইট ওজন লোড করার উপর ভিত্তি করে)।

একক-জিপিইউ অপ্টিমাইজেশনের বাইরে, এমপিকে একটি একক মেগাকের্নেলে গণনা এবং আন্ত-জিপিইউ যোগাযোগকে ফিউজ করে। এই নকশাটি এমপিকে সর্বাধিক ওভারল্যাপ গণনা এবং যোগাযোগের জন্য সক্ষম করে। ফলস্বরূপ, বর্তমান সিস্টেমগুলির তুলনায় এমপিকে পারফরম্যান্সের উন্নতি জিপিইউগুলির সংখ্যা সহ বৃদ্ধি করুনএটি মাল্টি-জিপিইউ মোতায়েনের জন্য বিশেষভাবে কার্যকর করা।

এই ব্লগের বাকি অংশগুলি এমপিকে কীভাবে কাজ করে তার গভীরে ডুব দেয়:

  • অংশ 1 পরিচয় করিয়ে দেয় এমপিকে সংকলকযা একটি এলএলএমের গণনা গ্রাফকে একটি অনুকূলিত টাস্ক গ্রাফে রূপান্তর করে;
  • পার্ট 2 কভার এমপিকে রানটাইমযা উচ্চ থ্রুপুট এবং কম বিলম্ব অর্জন করতে একটি মেগাকার্নেলের মধ্যে এই টাস্ক গ্রাফটি সম্পাদন করে।

একটি বৃহত ভাষার মডেল (এলএলএম) দ্বারা সম্পাদিত গণনা সাধারণত একটি হিসাবে প্রতিনিধিত্ব করা হয় গণনা গ্রাফযেখানে প্রতিটি নোড একটি গণনা অপারেশন (যেমন, ম্যাট্রিক্স গুণ, মনোযোগ) বা একটি সম্মিলিত যোগাযোগ আদিম (যেমন, সর্ব-হ্রাস) এর সাথে মিলে যায় এবং প্রান্তগুলি অপারেশনগুলির মধ্যে ডেটা নির্ভরতা বোঝায়। বিদ্যমান সিস্টেমে, প্রতিটি অপারেটর সাধারণত একটি উত্সর্গীকৃত জিপিইউ কার্নেলের মাধ্যমে কার্যকর করা হয়। তবে এই কার্নেল-প্রতি-অপারেটর এক্সিকিউশন মডেল প্রায়শই পাইপলাইনের সুযোগগুলি কাজে লাগাতে ব্যর্থ হয়, যেহেতু নির্ভরতাগুলি একটি মোটা গ্রানুলারিটিতে – পুরো কার্নেল জুড়ে – প্রকৃত ডেটা ইউনিটগুলির চেয়ে বরং – পুরো কার্নেল জুড়ে প্রয়োগ করা হয়।

একটি এলএলএমের গণনা সাধারণত একটি গণনা গ্রাফ হিসাবে প্রতিনিধিত্ব করা হয়, যেখানে প্রতিটি নোড একটি গণনা অপারেটর (যেমন, ম্যাট্রিক্স গুণ, মনোযোগ) বা একটি সম্মিলিত যোগাযোগ আদিম (যেমন, অলরেডুস) এবং প্রান্তগুলি অপারেটরগুলির মধ্যে ডেটা নির্ভরতা বোঝায়। বিদ্যমান সিস্টেমগুলি সাধারণত প্রতিটি অপারেটরের জন্য একটি ডেডিকেটেড জিপিইউ কার্নেল চালু করে। যাইহোক, এই কার্নেল-পার-অপারেটর পদ্ধতির প্রায়শই পাইপলাইনিংয়ের সুযোগগুলি কাজে লাগাতে ব্যর্থ হয়, যেহেতু নির্ভরতাগুলি একটি মোটা গ্রানুলারিটিতে-পুরো কার্নেল জুড়ে-প্রকৃত ডেটা ইউনিটগুলির চেয়ে বরং-পুরো কার্নেল জুড়ে প্রয়োগ করা হয়।

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

চিত্র 2। এমপিকে সংকলক একটি এলএলএমের গণনা গ্রাফকে (পিটিওআরচ-এ সংজ্ঞায়িত) একটি অনুকূলিত, সূক্ষ্ম-দানাদার টাস্ক গ্রাফে রূপান্তর করে যা সর্বাধিক সমান্তরালতা প্রকাশ করে। ডানদিকে একটি বিকল্প-তবে সাবপটিমাল-টাস্ক গ্রাফ চিত্রিত করে যা অপ্রয়োজনীয় ডেটা নির্ভরতা এবং বৈশ্বিক বাধাগুলি প্রবর্তন করে, স্তরগুলি জুড়ে পাইপলাইনিংয়ের সুযোগগুলি সীমাবদ্ধ করে।

এই সমস্যাটি সমাধান করার জন্য, এমপিকে একটি সংকলক প্রবর্তন করে যা স্বয়ংক্রিয়ভাবে এলএলএমের গণনা গ্রাফকে একটি সূক্ষ্ম-দানাদার রূপান্তরিত করে টাস্ক গ্রাফ। এই টাস্ক গ্রাফটি সাব-কার্নেল স্তরে স্পষ্টতই নির্ভরতা ক্যাপচার করে, স্তরগুলি জুড়ে আরও আক্রমণাত্মক পাইপলাইনিং সক্ষম করে।

একটি এমপিকে টাস্ক গ্রাফে:

  • প্রতিটি কাজ (চিত্র 2 -এ একটি আয়তক্ষেত্র হিসাবে দেখানো হয়েছে) একটি একক জিপিইউ স্ট্রিমিং মাল্টিপ্রোসেসর (এসএম) এর জন্য নির্ধারিত গণনা বা যোগাযোগের একটি ইউনিট উপস্থাপন করে।
  • প্রতিটি ঘটনা (একটি বৃত্ত হিসাবে দেখানো) কার্যগুলির মধ্যে একটি সিঙ্ক্রোনাইজেশন পয়েন্ট উপস্থাপন করে।
  • প্রতিটি কাজ একটি বহির্গামী প্রান্ত আছে ট্রিগার ইভেন্টযা সমস্ত সম্পর্কিত কাজ শেষ হয়ে গেলে সক্রিয় করা হয়।
  • প্রতিটি কাজগুলির একটি থেকে আগত প্রান্তও থাকে নির্ভরশীল ঘটনাকার্যটি নির্দেশ করা ইভেন্টটি সক্রিয় হওয়ার সাথে সাথে কার্যকর করা শুরু করতে পারে।

টাস্ক গ্রাফগুলি এমপিকে পাইপলাইনের সুযোগগুলি উন্মোচন করতে দেয় যা গণনা গ্রাফগুলিতে মিস করা হবে। উদাহরণস্বরূপ, এমপিকে একটি অপ্টিমাইজড টাস্ক গ্রাফ তৈরি করতে পারে যেখানে প্রতিটি অলরেডুস টাস্ক কেবল তার ইনপুট উত্পাদন করে এমন সংশ্লিষ্ট ম্যাটমুল টাস্কের উপর নির্ভর করে – আংশিক সম্পাদন এবং ওভারল্যাপ সক্ষম করে।

একটি অনুকূলিত টাস্ক গ্রাফ উত্পন্ন করার পাশাপাশি, এমপিকে স্বয়ংক্রিয়ভাবে উত্পন্ন হয় উচ্চ-পারফরম্যান্স চুদা বাস্তবায়ন প্রতিটি কাজের জন্য ব্যবহার করে মিরাজ কার্নেল সুপারোপটিমাইজার। এটি নিশ্চিত করে যে প্রতিটি টাস্ক একটি জিপিইউ এসএম -তে দক্ষতার সাথে চালিত হয়। (কার্নেল সুপারোপটিমাইজার সম্পর্কে আরও তথ্যের জন্য, এই পোস্টটি দেখুন))

এমপিকে একটি অন-জিপিইউ রানটাইম সিস্টেম অন্তর্ভুক্ত করে যা একক জিপিইউ মেগাকের্নেলের মধ্যে পুরোপুরি টাস্ক গ্রাফটি সম্পাদন করেঅনুমানের সময় কোনও কার্নেল লঞ্চ ছাড়াই টাস্ক সম্পাদন এবং সময়সূচী নিয়ে সূক্ষ্ম দানা নিয়ন্ত্রণের অনুমতি দেওয়া।

এটি অর্জনের জন্য, এমপিকে স্ট্যাটিক্যালি একটি জিপিইউতে সমস্ত স্ট্রিমিং মাল্টিপ্রসেসর (এসএমএস) দুটি ভূমিকাতে বিভক্ত করে: শ্রমিকরা এবং সময়সূচী। কার্নেল লঞ্চ সময়ে শ্রমিক এবং শিডিয়ুলার এসএমএসের সংখ্যা স্থির করা হয়েছে এবং কোনও গতিশীল প্রসঙ্গে ওভারহেড স্যুইচিং এড়িয়ে মোট শারীরিক এসএমএসের মোট সংখ্যার সাথে মেলে।

শ্রমিকরা

প্রতিটি কর্মী একটি এসএম এ পরিচালনা করে এবং একটি উত্সর্গীকৃত টাস্ক সারি বজায় রাখে। এটি একটি সহজ তবে দক্ষ এক্সিকিউশন লুপ অনুসরণ করে:

  1. তার সারি থেকে পরবর্তী কাজটি আনুন।
  2. টাস্কটি সম্পাদন করুন (যেমন, ম্যাট্রিক্স গুণ, মনোযোগ, বা আন্ত-জিপিইউ ডেটা স্থানান্তর)।
  3. টাস্ক সমাপ্তির পরে ট্রিগার ইভেন্টটি অবহিত করুন।
  4. পুনরাবৃত্তি

এই নকশাটি নিশ্চিত করে যে স্তরগুলি এবং ক্রিয়াকলাপগুলি জুড়ে অসাধারণভাবে এগিয়ে যেতে কার্য সম্পাদন সক্ষম করার সময় শ্রমিকরা সম্পূর্ণরূপে ব্যবহার করা থাকে।

সময়সূচী

সময়সূচী সিদ্ধান্তগুলি এমপিকে দ্বারা পরিচালিত হয় বিতরণ তফসিলারযার প্রতিটি এ চলে একক ওয়ার্প। যেহেতু প্রতিটি এসএম একাধিক ওয়ার্পের সমন্বয় করতে পারে, তাই চারটি সময়সূচী পর্যন্ত এসএম প্রতি একযোগে চলতে পারে। প্রতিটি সময়সূচী সক্রিয় ইভেন্টগুলির একটি সারি বজায় রাখে। এটি অবিচ্ছিন্নভাবে:

  1. ডিকিউগুলি সক্রিয় ইভেন্টগুলি সক্রিয় করেছে যার নির্ভরতাগুলি সন্তুষ্ট (যেমন, সমস্ত পূর্বশর্ত কাজগুলি সম্পন্ন হয়েছে)।
  2. সক্রিয় ইভেন্টের উপর নির্ভর করে এমন কার্যগুলির সেট চালু করে।

এই বিকেন্দ্রীভূত সময়সূচী প্রক্রিয়া এসএমএস জুড়ে স্কেলযোগ্য সম্পাদন সক্ষম করার সময় সমন্বয় ওভারহেডকে হ্রাস করে।

চিত্র 3। এমপিকে রানটাইম একটি মেগাকার্নেলের একটি টাস্ক গ্রাফ কার্যকর করে।

ইভেন্ট-চালিত এক্সিকিউশন

চিত্র 3 এমপিকে এক্সিকিউশন টাইমলাইন চিত্রিত করে। প্রতিটি আয়তক্ষেত্র একজন শ্রমিকের উপর চলমান একটি কাজ উপস্থাপন করে; প্রতিটি বৃত্ত একটি ইভেন্ট প্রতিনিধিত্ব করে। কোনও কাজ শেষ হওয়ার সাথে সাথে এটি এর সাথে সম্পর্কিত ট্রিগার ইভেন্টের জন্য কাউন্টারকে বাড়িয়ে তোলে। যখন ইভেন্টের কাউন্টারটি একটি প্রাক-সংজ্ঞায়িত প্রান্তরে পৌঁছায়, ইভেন্টটি সক্রিয় হিসাবে বিবেচিত হয় এবং একটি সময়সূচীর ইভেন্টের কাতারে প্রবেশ করা হয়। এরপরে শিডিয়ুলার এই ইভেন্টের উপর নির্ভর করে এমন কোনও প্রবাহের কাজ চালু করে।

এই নকশা জন্য অনুমতি দেয় সূক্ষ্ম-দানাদার সফ্টওয়্যার পাইপলাইনিং এবং গণনা এবং যোগাযোগের মধ্যে ওভারল্যাপ। উদাহরণস্বরূপ:

  • ম্যাটমুল কার্যগুলি বিভিন্ন স্তর থেকে মনোযোগের কার্যগুলির সাথে সমান্তরালে কার্যকর করতে পারে।
  • আংশিক ম্যাটমুলের ফলাফলগুলি উপলব্ধ হওয়ার সাথে সাথে অলরেডুস যোগাযোগ শুরু হতে পারে।

কারণ সমস্ত সময়সূচী এবং টাস্ক ট্রানজিশনগুলি একক কার্নেল প্রসঙ্গে ঘটে, কাজের মধ্যে ওভারহেড অত্যন্ত কম – সাধারণত ঠিক 1-2 মাইক্রোসেকেন্ডস -মাল্টি-লেয়ার, মাল্টি-জিপিইউ এলএলএম কাজের চাপগুলির দক্ষ সম্পাদন সক্ষম করা।

এমপিকে জন্য আমাদের দৃষ্টিভঙ্গি করা হয় মেগাকেরনেল সংকলন উভয়ই সহজে ব্যবহার করা এবং অত্যন্ত পারফরম্যান্স। বর্তমানে আপনি পাইথন কোডের কয়েক ডজন লাইন সহ একটি মেগাকেরনেলে একটি এলএলএম সংকলন করতে পারেন – মূলত মেগাকার্নেলের ইনপুট এবং আউটপুটগুলি নির্দিষ্ট করতে। আমরা এই দিকটি সম্পর্কে উচ্ছ্বসিত, এবং অন্বেষণ করার মতো আরও অনেক কিছুই রয়েছে। আমরা সক্রিয়ভাবে কাজ করছি এমন কয়েকটি মূল ক্ষেত্রগুলির মধ্যে রয়েছে:

  • আধুনিক জিপিইউ আর্কিটেকচারের জন্য সমর্থন। আমাদের পরবর্তী মাইলফলকগুলির মধ্যে একটি পরবর্তী প্রজন্মের আর্কিটেকচারকে সমর্থন করার জন্য এমপিকে প্রসারিত করছে এনভিডিয়া ব্ল্যাকওয়েল। এমপিকে’র মেগাকার্নেল এক্সিকিউশন মডেল সহ নতুন জিপিইউগুলির জন্য একটি মূল অপ্টিমাইজেশন – ওয়ার্প স্পেশালাইজেশনকে একীভূত করার মধ্যে একটি বড় চ্যালেঞ্জ রয়েছে।
  • ওয়ার্কলোড গতিশীলতা পরিচালনা করা। এমপিকে বর্তমানে একটি স্ট্যাটিক টাস্ক গ্রাফ তৈরি করে, যা গতিশীল কাজের চাপ যেমন পরিচালনা করার ক্ষমতা সীমাবদ্ধ করে মিশ্রণ-বিশেষজ্ঞ (এমওই) মডেল। আমরা নতুন সংকলন কৌশলগুলি বিকাশ করছি যা এমপিকে মেগাকার্নেলগুলির অভ্যন্তরে গতিশীল নিয়ন্ত্রণ প্রবাহ এবং শর্তসাপেক্ষ সম্পাদনকে সমর্থন করার অনুমতি দেয়।
  • উন্নত সময়সূচী এবং টাস্ক অ্যাসাইনমেন্ট: এমপিকে একটি নতুন স্তর আনলক করে সূক্ষ্ম-দানাদার সময়সূচী টাস্ক স্তরে। যদিও আমাদের বর্তমান বাস্তবায়ন এসএমএস জুড়ে কার্য বিতরণ করার জন্য সাধারণ রাউন্ড-রবিন শিডিয়ুলিং ব্যবহার করে, আমরা আকর্ষণীয় সুযোগগুলি দেখতে পাই উন্নত সময়সূচী নীতি -যেমন অগ্রাধিকার-সচেতন বা থ্রুপুট-অপ্টিমাইজড কৌশলগুলি-লেটেন্সি-স্লো-চালিত পরিবেশন বা হাইব্রিড ব্যাচিংয়ের মতো ব্যবহারের ক্ষেত্রে।

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

এমপিকে সম্পর্কে আরও জানতে এবং আমাদের কোড এবং ডকুমেন্টেশন অন্বেষণ করতে, দয়া করে আমাদের প্রকল্পের ওয়েবসাইটটি দেখুন: https://github.com/mirage-project/mirage

আমরা সম্প্রদায় থেকে প্রতিক্রিয়া, অবদান এবং সহযোগিতা স্বাগত জানাই!

Source link

মন্তব্য করুন

আপনার ই-মেইল এ্যাড্রেস প্রকাশিত হবে না। * চিহ্নিত বিষয়গুলো আবশ্যক।