গুগল আই/ও একটি মোড়ক! TensorFlow সেশনগুলি দেখুন সেশনগুলি দেখুন

এক্সএলএ আর্কিটেকচার

কেন আমরা XLA নির্মাণ করেছি?

টেনসরফ্লো-এর সাথে কাজ করার জন্য XLA-এর জন্য আমাদের বেশ কয়েকটি উদ্দেশ্য ছিল:

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

  • মেমরি ব্যবহার উন্নত করুন. অনেক মধ্যবর্তী স্টোরেজ বাফার বাদ দিয়ে নীতিগতভাবে মেমরি ব্যবহার বিশ্লেষণ এবং সময়সূচী করুন।

  • কাস্টম অপ্সের উপর নির্ভরতা হ্রাস করুন। স্বয়ংক্রিয়ভাবে মিশ্রিত নিম্ন-স্তরের অপের কর্মক্ষমতা উন্নত করে কাস্টম অপের কার্যক্ষমতার সাথে মিলিত হওয়ার জন্য অনেকগুলি কাস্টম অপের প্রয়োজনীয়তা দূর করুন যা হাত দ্বারা ফিউজ করা হয়েছিল৷

  • মোবাইল ফুটপ্রিন্ট কমান. আগে থেকে সাবগ্রাফ কম্পাইল করে এবং অন্য অ্যাপ্লিকেশনে সরাসরি লিঙ্ক করা যেতে পারে এমন একটি অবজেক্ট/হেডার ফাইল পেয়ার নির্গত করে TensorFlow রানটাইম বাদ দিন। ফলাফল বিভিন্ন মাত্রার আদেশ দ্বারা মোবাইল অনুমানের জন্য পদচিহ্ন কমাতে পারে।

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

কিভাবে XLA কাজ করে?

XLA-তে ইনপুট ভাষাকে "HLO IR" বা শুধু HLO (উচ্চ স্তরের অপারেশন) বলা হয়। HLO এর শব্দার্থবিদ্যা উপর বর্ণনা করা হয় অপারেশন শব্দার্থিক পাতা। এটা হিসেবে HLO মনে সুবিধাজনক কম্পাইলার আইআর

XLA HLO-তে সংজ্ঞায়িত গ্রাফ ("কম্পিউটেশন") নেয় এবং বিভিন্ন আর্কিটেকচারের জন্য মেশিনের নির্দেশাবলীতে কম্পাইল করে। XLA এটি বিকল্প ব্যাকএন্ড মধ্যে স্লট সহজ অর্থে মডুলার হয় কিছু উপন্যাস এইচ ডব্লিউ স্থাপত্য লক্ষ্য । x64 এবং ARM64 এর জন্য CPU ব্যাকএন্ডের পাশাপাশি NVIDIA GPU ব্যাকএন্ড টেনসরফ্লো সোর্স ট্রিতে রয়েছে।

নিম্নলিখিত চিত্রটি XLA-তে সংকলন প্রক্রিয়া দেখায়:

XLA যেমন বিভিন্ন অপ্টিমাইজেশন এবং বিশ্লেষণ পাস যে লক্ষ্য স্বাধীন হয়, দিয়ে আসে সিএসই , লক্ষ্য স্বাধীন অপারেশন লয়, এবং গণনার জন্য রানটাইম মেমরি বণ্টন জন্য বিশ্লেষণ বাফার।

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

পরবর্তী ধাপ হল লক্ষ্য-নির্দিষ্ট কোড জেনারেশন। CPU ও GPU ব্যাক-এন্ডের XLA ব্যবহার সঙ্গে অন্তর্ভুক্ত LLVM নিম্নস্তরের আইআর, অপ্টিমাইজেশান, এবং কোড প্রজন্মের জন্য। এই ব্যাকএন্ডগুলি এক্সএলএ এইচএলও গণনাকে দক্ষভাবে উপস্থাপন করার জন্য প্রয়োজনীয় LLVM IR নির্গত করে এবং তারপর এই LLVM IR থেকে নেটিভ কোড নির্গত করার জন্য LLVM-কে আহ্বান করে।

GPU ব্যাকএন্ড বর্তমানে LLVM NVPTX ব্যাকএন্ডের মাধ্যমে NVIDIA GPU গুলিকে সমর্থন করে; CPU ব্যাকএন্ড একাধিক CPU ISA সমর্থন করে।