আমরা অ্যান্ড্রয়েড এলএলভিএম টুলচেইন টিম। এলএলভিএম ইকোসিস্টেমে অপটিমাইজেশন কৌশলের মাধ্যমে অ্যান্ড্রয়েডের পারফরম্যান্স উন্নত করা আমাদের অন্যতম প্রধান অগ্রাধিকার। আমরা অ্যান্ড্রয়েডকে আরও দ্রুত, মসৃণ এবং কার্যকর করার উপায় ক্রমাগত খুঁজে চলেছি। যদিও আমাদের অপটিমাইজেশনের বেশিরভাগ কাজ ইউজারস্পেসে সম্পন্ন হয়, কার্নেলই সিস্টেমের প্রাণকেন্দ্র। আজ আমরা আপনাদের সাথে শেয়ার করতে পেরে আনন্দিত যে, কীভাবে আমরা অ্যান্ড্রয়েড কার্নেলে অটোমেটিক ফিডব্যাক-ডাইরেক্টেড অপটিমাইজেশন (AutoFDO) নিয়ে আসছি, যা ব্যবহারকারীদের জন্য পারফরম্যান্সে উল্লেখযোগ্য উন্নতি বয়ে আনবে।
AutoFDO কী?
একটি সাধারণ সফটওয়্যার বিল্ডের সময়, কম্পাইলার স্ট্যাটিক কোড হিন্টসের উপর ভিত্তি করে হাজার হাজার ছোট ছোট সিদ্ধান্ত নেয়, যেমন কোনো ফাংশনকে ইনলাইন করা হবে কিনা এবং কোনো কন্ডিশনালের কোন ব্রাঞ্চটি কার্যকর হওয়ার সম্ভাবনা বেশি। যদিও এই হিউরিস্টিকগুলো উপকারী, বাস্তব জীবনে ফোন ব্যবহারের সময় এগুলো সবসময় কোড এক্সিকিউশন সঠিকভাবে অনুমান করতে পারে না।
AutoFDO বাস্তব এক্সিকিউশন প্যাটার্ন ব্যবহার করে কম্পাইলারকে নির্দেশনা দেওয়ার মাধ্যমে এই অবস্থার পরিবর্তন করে। এই প্যাটার্নগুলো প্রকৃত ব্যবহারের সময় কোডের সবচেয়ে সাধারণ ইনস্ট্রাকশন এক্সিকিউশন পাথগুলোকে প্রতিনিধিত্ব করে, যা সিপিইউ-এর ব্রাঞ্চিং হিস্ট্রি রেকর্ড করার মাধ্যমে ধারণ করা হয়। যদিও এই ডেটা ফ্লিট ডিভাইসগুলো থেকে সংগ্রহ করা যায়, কার্নেলের জন্য আমরা এটিকে একটি ল্যাব পরিবেশে প্রতিনিধিত্বমূলক ওয়ার্কলোড ব্যবহার করে সিন্থেসাইজ করি, যেমন শীর্ষ ১০০টি জনপ্রিয় অ্যাপ চালানো। এই ডেটা ক্যাপচার করার জন্য আমরা একটি স্যাম্পলিং প্রোফাইলার ব্যবহার করি, যা কোডের কোন অংশগুলো 'হট' (ঘন ঘন ব্যবহৃত) এবং কোনগুলো 'কোল্ড' তা শনাক্ত করে। যখন আমরা এই প্রোফাইলগুলো দিয়ে কার্নেল রি-বিল্ড করি, তখন কম্পাইলার প্রকৃত অ্যান্ড্রয়েড ওয়ার্কলোডের জন্য বিশেষভাবে তৈরি অনেক বেশি স্মার্ট অপটিমাইজেশন সিদ্ধান্ত নিতে পারে।
এই অপ্টিমাইজেশনের প্রভাব বোঝার জন্য, এই মূল তথ্যগুলো বিবেচনা করুন:
- অ্যান্ড্রয়েডে, সিপিইউ সময়ের প্রায় ৪০ শতাংশ কার্নেল ব্যবহার করে।
- আমরা ইতিমধ্যে ইউজারস্পেসে নেটিভ এক্সিকিউটেবল এবং লাইব্রেরি অপ্টিমাইজ করতে AutoFDO ব্যবহার করছি, যার ফলে কোল্ড অ্যাপ লঞ্চে প্রায় ৪% উন্নতি এবং বুট টাইমে ১% হ্রাস অর্জিত হয়েছে।
বাস্তব-জগতের পারফরম্যান্স জয়ী হয়
নিয়ন্ত্রিত ল্যাব পরিবেশ থেকে প্রাপ্ত প্রোফাইল ব্যবহার করে আমরা অ্যান্ড্রয়েডের প্রধান মেট্রিকগুলোতে উল্লেখযোগ্য উন্নতি দেখেছি। এই প্রোফাইলগুলো অ্যাপ ক্রলিং ও লঞ্চিংয়ের মাধ্যমে সংগ্রহ করা হয়েছিল এবং ৬.১, ৬.৬ ও ৬.১২ কার্নেলের পিক্সেল ডিভাইসগুলোতে পরিমাপ করা হয়েছিল।
সবচেয়ে উল্লেখযোগ্য উন্নতিগুলো নিচে তালিকাভুক্ত করা হলো। এই কার্নেল সংস্করণগুলোর জন্য AutoFDO প্রোফাইলের বিস্তারিত তথ্য android16-6.12 এবং android15-6.6 কার্নেলগুলোর সংশ্লিষ্ট অ্যান্ড্রয়েড কার্নেল রিপোজিটরিগুলোতে পাওয়া যাবে।

এগুলো শুধু তাত্ত্বিক সংখ্যা নয়। এর ফলে ব্যবহারকারী আরও দ্রুতগতির ইন্টারফেস, দ্রুত অ্যাপ পরিবর্তন, দীর্ঘস্থায়ী ব্যাটারি লাইফ এবং সার্বিকভাবে আরও বেশি রেসপন্সিভ একটি ডিভাইস পাবেন।
এটি কীভাবে কাজ করে: পাইপলাইন
আমাদের ডেপ্লয়মেন্ট কৌশলে একটি অত্যাধুনিক পাইপলাইন অন্তর্ভুক্ত রয়েছে, যা প্রোফাইলগুলোকে প্রাসঙ্গিক রাখে এবং পারফরম্যান্স স্থিতিশীল রাখে।

ধাপ ১: প্রোফাইল সংগ্রহ
যদিও আমরা ইউজারস্পেস বাইনারিগুলোর প্রোফাইলিংয়ের জন্য আমাদের অভ্যন্তরীণ টেস্ট ফ্লিটের উপর নির্ভর করি, জেনেরিক কার্নেল ইমেজ (GKI)- এর জন্য আমরা একটি নিয়ন্ত্রিত ল্যাব পরিবেশে স্থানান্তরিত হয়েছি। ডিভাইস রিলিজ চক্র থেকে প্রোফাইলিংকে বিচ্ছিন্ন করার ফলে ডেপ্লয় করা কার্নেল ভার্সন নির্বিশেষে নমনীয় ও তাৎক্ষণিক আপডেট করা সম্ভব হয়। সবচেয়ে গুরুত্বপূর্ণ বিষয় হলো, পরীক্ষাগুলো নিশ্চিত করেছে যে এই ল্যাব-ভিত্তিক ডেটা বাস্তব ফ্লিট থেকে প্রাপ্ত পারফরম্যান্সের সমতুল্য উন্নতি প্রদান করে।
- সরঞ্জাম ও পরিবেশ: আমরা টেস্ট ডিভাইসগুলোতে সর্বশেষ কার্নেল ইমেজ ফ্ল্যাশ করি এবং ইনস্ট্রাকশন এক্সিকিউশন স্ট্রিম ক্যাপচার করার জন্য সিম্পলপার্ফ (simpleperf ) ব্যবহার করি। এই প্রক্রিয়াটি ব্রাঞ্চিং হিস্ট্রি রেকর্ড করার জন্য হার্ডওয়্যারের সক্ষমতার উপর নির্ভর করে, বিশেষত পিক্সেল ডিভাইসগুলোতে এআরএম এমবেডেড ট্রেস এক্সটেনশন (ETE) এবং এআরএম ট্রেস বাফার এক্সটেনশন (TRBE) ব্যবহার করে।
- ওয়ার্কলোড: আমরা অ্যান্ড্রয়েড অ্যাপ কম্প্যাটিবিলিটি টেস্ট স্যুট (সি-স্যুট) থেকে শীর্ষ ১০০টি জনপ্রিয় অ্যাপ ব্যবহার করে একটি প্রতিনিধিত্বমূলক ওয়ার্কলোড তৈরি করি। সবচেয়ে নির্ভুল ডেটা সংগ্রহের জন্য, আমরা নিম্নলিখিত বিষয়গুলিতে মনোযোগ দিই:
- অ্যাপ চালু করা : ব্যবহারকারীর সবচেয়ে দৃশ্যমান বিলম্বের জন্য অপ্টিমাইজ করা
- এআই-চালিত অ্যাপ ক্রলিং : অবিচ্ছিন্ন ও পরিবর্তনশীল ব্যবহারকারীর মিথস্ক্রিয়ার অনুকরণ
- সিস্টেম-ব্যাপী পর্যবেক্ষণ: শুধু ফোরগ্রাউন্ড অ্যাপের কার্যকলাপই নয়, বরং গুরুত্বপূর্ণ ব্যাকগ্রাউন্ড ওয়ার্কলোড এবং আন্তঃপ্রক্রিয়া যোগাযোগও ধারণ করা।
- যাচাইকরণ: এই সংশ্লেষিত ওয়ার্কলোডটি আমাদের অভ্যন্তরীণ ফ্লিট থেকে সংগৃহীত এক্সিকিউশন প্যাটার্নের সাথে ৮৫% সাদৃশ্য দেখায়।
- নির্দিষ্ট ডেটা: এই পরীক্ষাগুলো পর্যাপ্ত পরিমাণে পুনরাবৃত্তি করার মাধ্যমে, আমরা এমন উচ্চ-মানের এক্সিকিউশন প্যাটার্ন সংগ্রহ করি যা সবচেয়ে জনপ্রিয় অ্যাপ্লিকেশনগুলোর সাথে বাস্তব-জগতের ব্যবহারকারীর মিথস্ক্রিয়াকে সঠিকভাবে উপস্থাপন করে। অধিকন্তু, এই সম্প্রসারণযোগ্য ফ্রেমওয়ার্কটি আমাদের পরিধি বিস্তৃত করার জন্য অতিরিক্ত ওয়ার্কলোড এবং বেঞ্চমার্ক নির্বিঘ্নে একীভূত করার সুযোগ দেয়।
ধাপ ২: প্রোফাইল প্রক্রিয়াকরণ
কাঁচা ট্রেস ডেটা যাতে পরিষ্কার, কার্যকর এবং কম্পাইলারের জন্য প্রস্তুত থাকে, তা নিশ্চিত করতে আমরা সেটিকে পোস্ট-প্রসেস করি।
- একত্রীকরণ: আমরা একাধিক টেস্ট রান এবং ডিভাইস থেকে প্রাপ্ত ডেটা একত্রিত করে একটি একক সিস্টেম ভিউতে উপস্থাপন করি।
- রূপান্তর: আমরা প্রয়োজন অনুযায়ী অবাঞ্ছিত সিম্বলগুলো ফিল্টার করে র ট্রেসগুলোকে AutoFDO প্রোফাইল ফরম্যাটে রূপান্তর করি ।
- প্রোফাইল ট্রিমিং: আমরা "কোল্ড" ফাংশনগুলো থেকে ডেটা অপসারণ করার জন্য প্রোফাইল ট্রিম করি, যাতে সেগুলো স্ট্যান্ডার্ড অপটিমাইজেশন ব্যবহার করতে পারে। এটি কদাচিৎ ব্যবহৃত কোডে রিগ্রেশন প্রতিরোধ করে এবং বাইনারি সাইজের অপ্রয়োজনীয় বৃদ্ধি এড়ায়।
ধাপ ৩: প্রোফাইল পরীক্ষা
স্থাপনের আগে, প্রোফাইলগুলি কঠোর যাচাই-বাছাইয়ের মধ্য দিয়ে যায়, যাতে নিশ্চিত করা যায় যে সেগুলি স্থিতিশীলতার ঝুঁকি ছাড়াই ধারাবাহিক উন্নত পারফরম্যান্স প্রদান করে।
- প্রোফাইল ও বাইনারি বিশ্লেষণ: আমরা নতুন প্রোফাইলের বিষয়বস্তু (হট ফাংশন, স্যাম্পল সংখ্যা এবং প্রোফাইলের আকার সহ) পূর্ববর্তী সংস্করণগুলোর সাথে কঠোরভাবে তুলনা করি। এছাড়াও, আমরা প্রোফাইলটি ব্যবহার করে একটি নতুন কার্নেল ইমেজ তৈরি করি এবং বাইনারিগুলো বিশ্লেষণ করে নিশ্চিত করি যে টেক্সট অংশের পরিবর্তনগুলো প্রত্যাশার সাথে সামঞ্জস্যপূর্ণ।
- পারফরম্যান্স যাচাইকরণ: আমরা নতুন কার্নেল ইমেজটির ওপর নির্দিষ্ট বেঞ্চমার্ক চালাই। এর মাধ্যমে নিশ্চিত হওয়া যায় যে, এটি পূর্ববর্তী বেসলাইনগুলো দ্বারা প্রতিষ্ঠিত পারফরম্যান্সের উন্নতিগুলো বজায় রাখে।
ক্রমাগত আপডেট
সময়ের সাথে সাথে কোডে স্বাভাবিকভাবেই পরিবর্তন আসে, তাই একটি স্থির প্রোফাইল অবশেষে তার কার্যকারিতা হারাবে। সর্বোচ্চ পারফরম্যান্স বজায় রাখতে, আমরা নিয়মিত আপডেট নিশ্চিত করার জন্য পাইপলাইনটি ক্রমাগত চালু রাখি:
- নিয়মিত রিফ্রেশ: আমরা প্রতিটি GKI রিলিজের আগে অ্যান্ড্রয়েড কার্নেল LTS ব্রাঞ্চগুলিতে প্রোফাইল রিফ্রেশ করি, যা নিশ্চিত করে যে প্রতিটি বিল্ডে সর্বশেষ প্রোফাইল ডেটা অন্তর্ভুক্ত থাকে।
- ভবিষ্যৎ সম্প্রসারণ: আমরা বর্তমানে এই আপডেটগুলি
android16-6.12এবংandroid15-6.6ব্রাঞ্চগুলিতে সরবরাহ করছি এবং আসন্নandroid17-6.18এর মতো নতুন GKI সংস্করণগুলিতেও এর সমর্থন প্রসারিত করব।
স্থিতিশীলতা নিশ্চিত করা
প্রোফাইল-গাইডেড অপটিমাইজেশন নিয়ে একটি সাধারণ প্রশ্ন হলো, এটি স্থিতিশীলতার ঝুঁকি তৈরি করে কি না। যেহেতু AutoFDO সোর্স কোডের লজিক পরিবর্তন না করে প্রধানত ফাংশন ইনলাইনিং এবং কোড লেআউটের মতো কম্পাইলার হিউরিস্টিকসকে প্রভাবিত করে, তাই এটি কার্নেলের কার্যকরী অখণ্ডতা রক্ষা করে। এই প্রযুক্তিটি ইতোমধ্যেই বৃহৎ পরিসরে প্রমাণিত হয়েছে এবং বছরের পর বছর ধরে অ্যান্ড্রয়েড প্ল্যাটফর্ম লাইব্রেরি, ক্রোমওএস এবং গুগলের নিজস্ব সার্ভার পরিকাঠামোর জন্য একটি স্ট্যান্ডার্ড অপটিমাইজেশন হিসেবে কাজ করছে।
সামঞ্জস্যপূর্ণ আচরণ আরও নিশ্চিত করতে, আমরা একটি "ডিফল্টরূপে রক্ষণশীল" কৌশল প্রয়োগ করি। আমাদের হাই-ফিডেলিটি প্রোফাইলে অন্তর্ভুক্ত নয় এমন ফাংশনগুলোকে স্ট্যান্ডার্ড কম্পাইলার পদ্ধতি ব্যবহার করে অপ্টিমাইজ করা হয়। এটি নিশ্চিত করে যে কার্নেলের "কোল্ড" বা কদাচিৎ সম্পাদিত অংশগুলো একটি স্ট্যান্ডার্ড বিল্ডের মতোই আচরণ করে, যা পারফরম্যান্সের অবনতি বা বিশেষ ক্ষেত্রে অপ্রত্যাশিত আচরণ প্রতিরোধ করে।
ভবিষ্যতের দিকে তাকিয়ে
আমরা বর্তমানে android16-6.12 এবং android15-6.6 ব্রাঞ্চ জুড়ে AutoFDO স্থাপন করছি। এই প্রাথমিক রোলআউটের বাইরে, আমরা প্রযুক্তিটিকে আরও উন্নত করার জন্য বেশ কিছু সম্ভাবনাময় পথ দেখতে পাচ্ছি:
- সম্প্রসারিত পরিধি: আমরা বর্তমান
aarch64সমর্থনের বাইরে নতুন GKI কার্নেল সংস্করণ এবং অতিরিক্ত বিল্ড টার্গেটগুলিতে AutoFDO প্রোফাইলগুলি স্থাপন করার জন্য উন্মুখ। - জিকেআই মডিউল অপ্টিমাইজেশন: বর্তমানে, আমাদের অপ্টিমাইজেশন মূল কার্নেল বাইনারি (
vmlinux)-কে কেন্দ্র করে করা হয়েছে। জিকেআই মডিউলগুলিতে AutoFDO-এর সম্প্রসারণ কার্নেল সাবসিস্টেমের একটি বৃহত্তর অংশে কর্মক্ষমতার সুবিধা বয়ে আনতে পারে। - ভেন্ডর মডিউল সাপোর্ট: আমরা ড্রাইভার ডেভেলপমেন্ট কিট (DDK) ব্যবহার করে নির্মিত ভেন্ডর মডিউলগুলোর জন্যও AutoFDO সাপোর্ট করতে আগ্রহী। আমাদের বিল্ড সিস্টেম ( Kleaf ) এবং প্রোফাইলিং টুলস ( simpleperf )-এ এই সাপোর্ট ইতোমধ্যেই উপলব্ধ থাকায়, ভেন্ডররা তাদের নির্দিষ্ট হার্ডওয়্যার ড্রাইভারগুলোতেও এই একই অপটিমাইজেশন কৌশলগুলো প্রয়োগ করতে পারবে।
- বৃহত্তর প্রোফাইল কভারেজ: ক্রিটিক্যাল ইউজার জার্নি (CUJ)-গুলোকে অপ্টিমাইজ করার জন্য আরও বিস্তৃত পরিসর থেকে প্রোফাইল সংগ্রহ করার সম্ভাবনা রয়েছে।
অ্যান্ড্রয়েড কার্নেলে AutoFDO যুক্ত করার মাধ্যমে, আমরা নিশ্চিত করছি যে অপারেটিং সিস্টেমের একেবারে ভিত্তিটিই আপনার প্রতিদিনের ডিভাইস ব্যবহারের পদ্ধতির জন্য অপ্টিমাইজ করা হয়েছে।
পড়তে থাকুন

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

পণ্যের খবর
অ্যান্ড্রয়েড স্টুডিও পান্ডা ৩ এখন স্থিতিশীল এবং প্রোডাকশনে ব্যবহারের জন্য প্রস্তুত। এই রিলিজটি আপনার এআই-চালিত ওয়ার্কফ্লোর উপর আপনাকে আরও বেশি নিয়ন্ত্রণ এবং কাস্টমাইজেশনের সুযোগ দেয়, যা উচ্চ-মানের অ্যান্ড্রয়েড অ্যাপ তৈরি করাকে আগের চেয়েও সহজ করে তোলে।
Matt Dyor • পড়তে ৩ মিনিট

পণ্যের খবর
গুগলে আমরা আপনার পকেটে থাকা অ্যান্ড্রয়েড ডিভাইসগুলোতে সবচেয়ে সক্ষম এআই মডেলগুলো সরাসরি পৌঁছে দিতে প্রতিশ্রুতিবদ্ধ। আজ আমরা আমাদের সর্বশেষ অত্যাধুনিক ওপেন মডেল: জেমা ৪ (Gemma 4) প্রকাশের ঘোষণা দিতে পেরে আনন্দিত।
Caren Chang , David Chou • পড়তে ৩ মিনিট
আপ-টু-ডেট থাকুন
অ্যান্ড্রয়েড ডেভেলপমেন্টের সর্বশেষ তথ্য প্রতি সপ্তাহে আপনার ইনবক্সে পান।


