স্পার্সিটিকে (ক্লান্তিক) বাস্তবায়নের বিবরণের পরিবর্তে একটি সম্পত্তি হিসাবে বিবেচনা করা কম্পাইলারের স্পার্সিফায়ার 1 কে স্বয়ংক্রিয়ভাবে স্পার্স কোড তৈরি করতে দেয়। ধারণাটি MT1- এ [Bik96] দ্বারা রৈখিক বীজগণিতের জন্য প্রবর্তিত হয়েছিল এবং স্পার্স টেনসর অ্যালজেব্রা কম্পাইলার (TACO) প্রকল্পে [Kjolstad17, Kjolstad20] দ্বারা টেনসর বীজগণিতে রূপান্তরিত হয়েছিল।
SparseTensor উপভাষাটি MLIR কম্পাইলার পরিকাঠামোর মধ্যে স্পার্স-টেনসর ধরনের প্রথম-শ্রেণীর নাগরিক তৈরি করার জন্য প্রয়োজনীয় সমস্ত বৈশিষ্ট্য, প্রকার, অপারেশন এবং পাস সমর্থন করে। উপভাষাটি স্পার্স-টেনসর ধরণের উচ্চ-স্তরের ক্রিয়াকলাপ এবং অবস্থান, স্থানাঙ্ক এবং মান সমন্বিত প্রকৃত স্পার্স-স্টোরেজ স্কিমগুলিতে নিম্ন-স্তরের অপারেশনগুলির মধ্যে একটি সেতু তৈরি করে। নিম্ন-স্তরের সমর্থনে সম্পূর্ণরূপে জেনারেট করা কোড থাকতে পারে বা একটি ছোট স্পার্স রানটাইম সাপোর্ট লাইব্রেরির মাধ্যমে প্রদান করা হতে পারে।
MLIR বাস্তবায়ন [Biketal22] ঘনিষ্ঠভাবে 'স্পার্স পুনরাবৃত্তি তত্ত্ব' অনুসরণ করে যা TACO এর ভিত্তি তৈরি করে। লিনালগ উপভাষায় (MLIR-এর টেনসর সূচক স্বরলিপি) প্রতিটি টেনসর অভিব্যক্তির জন্য সংকলকের একটি পুনর্লিখনের নিয়ম রয়েছে: একটি টেনসরের প্রতিটি স্তরের স্পারসিটি স্তর-প্রকার (যেমন, ঘন, সংকুচিত, সিঙ্গলটন) এবং একটি স্পেসিফিকেশন দ্বারা নির্দেশিত হয়। স্তরগুলিতে অর্ডার করুন (এই স্তর-প্রকারগুলির একটি গভীর আলোচনা এবং সম্ভাব্য এক্সটেনশনের জন্য [Chou18] দেখুন)। ইনপুটে প্রতিটি টেনসর এক্সপ্রেশনের জন্য, কম্পাইলার প্রথমে একটি টপোলজিক্যালভাবে সাজানো পুনরাবৃত্তি গ্রাফ তৈরি করে যা প্রতিটি টেনসরের স্তরের সাপেক্ষে স্থানাঙ্কের ক্রম প্রতিফলিত করে; এটি নিশ্চিত করে যে সমস্ত টেনসর প্রাকৃতিক স্তর-সমন্বয় ক্রমে পরিদর্শন করা হয়েছে। পরবর্তীতে, টপোলজিকাল ক্রমে প্রতিটি সূচকের জন্য পুনরাবৃত্তি জালি তৈরি করা হয়। প্রতিটি পুনরাবৃত্তি-জালি বিন্দুতে টেনসর স্থানাঙ্কের একটি সংযোগ এবং একটি টেনসর (সাব) অভিব্যক্তি থাকে যা সেই সংযোগের জন্য মূল্যায়ন করা প্রয়োজন। জালির মধ্যে, স্থানাঙ্কগুলি যেভাবে নিঃশেষিত হয় সে অনুযায়ী পুনরাবৃত্তি পয়েন্টগুলিকে আদেশ করা হয়। যেমন, এই পুনরাবৃত্তি জালিগুলি প্রকৃত স্পার্স-কোড প্রজন্মকে চালিত করে, পুনরাবৃত্তি জালি থেকে ফর-লুপ, যখন-লুপ এবং যদি-বিবৃতিগুলির সংমিশ্রণে তুলনামূলকভাবে সোজা ওয়ান-টু-ওয়ান ম্যাপিং। স্পার্স-টেনসর আউটপুটগুলি যেগুলি অপ্রবর্তিত রূপ দেয় সেগুলি হয় সরাসরি সন্নিবেশের মাধ্যমে পরিচালনা করা হয়, যদি সমস্ত সমান্তরাল লুপগুলি বাইরেরতম হয়, বা সন্নিবেশগুলি যা পরোক্ষভাবে 1-মাত্রিক অ্যাক্সেস প্যাটার্ন এক্সপেনশন (ওরফে ওয়ার্কস্পেস), যেখানে সম্ভব হয় [Gustavson72,Bik96,Kjolstad19]।
[Bik96] আর্ট জেসি বিক। স্পার্স ম্যাট্রিক্স কম্পিউটেশনের জন্য কম্পাইলার সমর্থন। পিএইচডি থিসিস, লিডেন ইউনিভার্সিটি, মে 1996।
[বাইকেটাল২২] আর্ট জেসি বিক, পেনপোর্ন কোনানান্তকুল, তাতিয়ানা শপিসম্যান, নিকোলাস ভাসিলাচে, বিক্সিয়া ঝেং এবং ফ্রেডরিক কজোলস্টাড। MLIR-এ স্পার্স টেনসর কম্পিউটেশনের জন্য কম্পাইলার সাপোর্ট। আর্কিটেকচার এবং কোড অপ্টিমাইজেশানের উপর ACM লেনদেন, জুন, 2022। দেখুন: https://dl.acm.org/doi/10.1145/3544559
[Chou18] স্টিফেন চৌ, ফ্রেডরিক বার্গ কজোলস্টাড এবং সামান অমরাসিংহে। স্পার্স টেনসর বীজগণিত কম্পাইলারগুলির জন্য বিন্যাস বিমূর্ততা। প্রোগ্রামিং ল্যাঙ্গুয়েজে ACM-এর কার্যক্রম, অক্টোবর 2018।
[চৌ২০] স্টিফেন চৌ, ফ্রেডরিক বার্গ কজোলস্টাড এবং সামান অমরাসিংহে। দক্ষ স্পার্স টেনসর ফর্ম্যাট রূপান্তর রুটিনের স্বয়ংক্রিয় জেনারেশন। 41তম ACM SIGPLAN কনফারেন্স অন প্রোগ্রামিং ল্যাঙ্গুয়েজ ডিজাইন এবং ইমপ্লিমেন্টেশনের কার্যক্রম, জুন, 2020।
[গুস্তাভসন72] ফ্রেড জি. গুস্তাভসন। রৈখিক সমীকরণের স্পারস সিস্টেমগুলি সমাধানের জন্য কিছু প্রাথমিক কৌশল। স্পার্স ম্যাট্রিসিস এবং তাদের অ্যাপ্লিকেশনে, পৃষ্ঠা 41-52। প্লেনাম প্রেস, নিউ ইয়র্ক, 1972।
[Kjolstad17] ফ্রেডরিক বার্গ Kjolstad, শোয়েব আশরাফ কামিল, স্টিফেন চৌ, ডেভিড লুগাতো, এবং সামান অমরাসিংহে। টেনসর বীজগণিত কম্পাইলার। প্রোগ্রামিং ল্যাঙ্গুয়েজে ACM-এর কার্যক্রম, অক্টোবর 2017।
[Kjolstad19] ফ্রেডরিক বার্গ Kjolstad, পিটার আহরেন্স, শোয়েব আশরাফ কামিল, এবং সামান অমরাসিংহে। ওয়ার্কস্পেস সহ টেনসর বীজগণিত সংকলন, IEEE/ACM ইন্টারন্যাশনাল সিম্পোজিয়াম অন কোড জেনারেশন অ্যান্ড অপটিমাইজেশন, 2019 এর কার্যক্রম।
[Kjolstad20] ফ্রেডরিক বার্গ Kjolstad. স্পারস টেনসর বীজগণিত সংকলন। পিএইচডি থিসিস, এমআইটি, ফেব্রুয়ারি, 2020।
আপনি কি অবদান রাখতে চান? এখানে কিছু ভাল প্রথম সমস্যা আছে.
অনুগ্রহ করে মনে রাখবেন যে আমরা এখন 'স্পার্সিফায়ার' শব্দটিকে সাধারণভাবে ব্যবহৃত 'স্পার্স কম্পাইলার' পরিভাষাটির চেয়ে এই ধরনের পাসকে উল্লেখ করতে পছন্দ করি যাতে এটি স্পষ্ট হয় যে স্পারসিফায়ার পাস একটি পৃথক কম্পাইলার নয়, তবে এটি যেকোনো কম্পাইলারের একটি অবিচ্ছেদ্য অংশ হওয়া উচিত। পাইপলাইন যা এমএলআইআর কম্পাইলার অবকাঠামো দিয়ে নির্মিত। ↩