FMA এবং FMA3
FMA, FMA3 নামেও পরিচিত
FMA একটি চূড়ান্ত রাউন্ডিংয়ের মাধ্যমে একটি ফ্লোটিং-পয়েন্ট গুণ এবং যোগ গণনা করে। FMA3 বলতে তিন-অপারেন্ড বিশিষ্ট x86 ফিউজড মাল্টিপ্লাই-অ্যাড নির্দেশিকা পরিবারকে বোঝায়; এটি AVX2 থেকে আলাদাভাবে তালিকাভুক্ত।
আপনার যা জানা প্রয়োজন
FMA একটি চূড়ান্ত রাউন্ডিংয়ের মাধ্যমে একটি ফ্লোটিং-পয়েন্ট গুণ এবং যোগ গণনা করে। FMA3 বলতে তিন-অপারেন্ড বিশিষ্ট x86 ফিউজড মাল্টিপ্লাই-অ্যাড নির্দেশিকা পরিবারকে বোঝায়; এটি AVX2 থেকে আলাদাভাবে তালিকাভুক্ত।
এটি যেভাবে কাজ করে
একটি ফিউজড অপারেশন গন্তব্য ফরম্যাটে রাউন্ডিংয়ের আগে গুণফল এবং যোগফলকে একটিমাত্র গাণিতিক অপারেশন হিসেবে মূল্যায়ন করে। এটি এমন একটি মান রক্ষা করতে পারে যা প্রথমে গুণফলকে রাউন্ডিং করা হলে নষ্ট হয়ে যেত। 132, 213 এবং 231 নির্দেশ ফর্মগুলি নির্বাচন করে কোন অপারেন্ডগুলি গুণফল, যোজ্য এবং ওভাররাইট হওয়া গন্তব্য প্রদান করবে। স্কেলার এবং প্যাকড ফর্মগুলির লেন আচরণ ভিন্ন হয়।
যেখানে এটি কার্যকর
বহুপদী মূল্যায়ন, ম্যাট্রিক্স গুণন এবং ডিজিটাল ফিল্টার গাণিতিক ক্রিয়াকলাপগুলিকে একত্রিত করতে FMA ব্যবহার করতে পারে। ফিউজড ফলাফল ইচ্ছাকৃতভাবে দুটি পৃথক অপারেশন ব্যবহার করে এমন প্রোগ্রামের থেকে ভিন্ন হতে পারে। তাই নির্দেশের প্রাপ্যতার পাশাপাশি কম্পাইলার সংকোচন সেটিংস এবং সংখ্যাগত পুনরুৎপাদনযোগ্যতার প্রয়োজনীয়তাগুলিও গুরুত্বপূর্ণ।
সাপোর্ট এবং সক্ষমতা কীভাবে পরীক্ষা করবেন
VEX FMA3 নির্দেশাবলীর জন্য, সম্পূর্ণ AVX OS-স্টেট পরীক্ষার সাথে CPUID.01H:ECX বিট 12 পরীক্ষা করুন। EVEX ফর্ম ব্যবহার করলে, সেই ফর্মগুলির জন্য প্রয়োজনীয় অতিরিক্ত AVX-512 উপসেট এবং অবস্থা পরীক্ষা করুন। পুনর্নির্মাণের পরে সংখ্যাগত ফলাফল পরিবর্তিত হলে কম্পাইলার ফ্ল্যাগগুলি পরীক্ষা করুন।
প্রোগ্রামটিতে অবশ্যই একটি উপযুক্ত বাস্তবায়ন থাকতে হবে এবং রানটাইমে এটি নির্বাচন করতে হবে। হার্ডওয়্যার গণনা, OS-সক্ষম রেজিস্টার অবস্থা এবং বাইনারির সংকলিত বেসলাইন আলাদা চেক। একটি ভার্চুয়াল মেশিন ইচ্ছাকৃতভাবে তার হোস্টের চেয়ে কম বৈশিষ্ট্য প্রকাশ করতে পারে এবং একটি ধারক হোস্ট CPU-তে নির্দেশাবলী যোগ করে না।
এই বৈশিষ্ট্যটি যা নিশ্চিত করে না
FMA-এর অর্থ এই নয় যে প্রতিটি ফ্লোটিং-পয়েন্ট রাশি অতিরিক্ত নির্ভুলতার সাথে মূল্যায়ন করা হয় এবং এটি বিভিন্ন কম্পাইলার সেটিংসে অভিন্ন ফলাফলের নিশ্চয়তা দেয় না। FMA4 একটি ভিন্ন নির্দেশিকা পরিবার। শুধুমাত্র AVX বা AVX2 কোনটিই FMA3-এর সমর্থন প্রমাণ করে না।
বাস্তবে সামঞ্জস্য এবং কর্মক্ষমতা
প্রতিনিধিত্বমূলক ডেটা সহ সম্পূর্ণ কাজের চাপ পরিমাপ করুন। বৃহত্তর ভেক্টরগুলি মেমরি ট্র্যাফিক, সিঙ্ক্রোনাইজেশন বা রূপান্তর খরচ অপরিবর্তিত রেখে নির্দেশ সংখ্যা হ্রাস করতে পারে। নির্দেশনা বিলম্ব, থ্রুপুট এবং শক্তি আচরণ সঠিক মাইক্রোআর্কিটেকচার এবং অপারেটিং অবস্থার উপর নির্ভর করে।
একটি ব্যবহারিক যাচাইকরণ চেকলিস্ট
- সংশ্লিষ্ট সুনির্দিষ্ট প্রসেসর বা প্ল্যাটফর্ম মডেল এবং অ্যাপ্লিকেশন, OS ও রানটাইম সংস্করণগুলি রেকর্ড করুন। প্রকৃত ত্রুটি বা প্রয়োজনীয়তার সঠিক শব্দচয়ন সংরক্ষণ করুন।
- সেই নির্দিষ্ট মডেলের জন্য প্রস্তুতকারকের রেফারেন্স পরীক্ষা করুন, তারপর প্রোগ্রামটি যে পরিবেশে চলে সেখানে কার্যকর সক্ষমতা এবং সক্রিয় অবস্থা পর্যবেক্ষণ করুন।
- নির্বাচিত বাইনারি বা ব্যাকএন্ডের প্রতিটি প্রয়োজনীয়তা তুলনা করুন। একই নামের কোনো বৈশিষ্ট্য, উপনাম বা বিস্তৃত প্রযুক্তির লেবেলই যথেষ্ট নয়।
- অ্যাপ্লিকেশনটি কাঙ্ক্ষিত বাস্তবায়ন নির্বাচন করেছে কিনা তা নিশ্চিত করুন। প্রয়োজনীয়তা পূরণ না হলে এর নথিভুক্ত ডায়াগনস্টিকস এবং একটি সমর্থিত ফলব্যাক ব্যবহার করুন।
- একবারে একটি সমর্থিত পরিবর্তন করুন এবং একই কাজের চাপ পুনরাবৃত্তি করুন। মূল কনফিগারেশন এবং পুনরুদ্ধারের পথ উপলব্ধ রাখুন।
যদি বৈশিষ্ট্যটি তালিকাভুক্ত থাকে কিন্তু সফটওয়্যার এটি ব্যবহার করতে না পারে
নির্দিষ্ট ব্যর্থ উপাদানটি দিয়ে শুরু করুন। একটি হার্ডওয়্যার ডাটাবেস সংরক্ষিত সক্ষমতা বর্ণনা করে; অপারেটিং সিস্টেম বা হাইপারভাইজর একটি ভিন্ন কার্যকর পরিবেশ প্রকাশ করতে পারে। একটি অবৈধ-নির্দেশনা (illegal-instruction) ত্রুটির ক্ষেত্রেও প্রকৃত ত্রুটিপূর্ণ নির্দেশনা এবং বাইনারি বিল্ড তদন্ত করা প্রয়োজন, কারণ ডেটা ক্ষতি বা সম্পর্কহীন কোনো অসমর্থিত নির্দেশনাও একই রকম লক্ষণ তৈরি করতে পারে।
নির্দিষ্ট প্ল্যাটফর্মের জন্য সমর্থিত অ্যাপ্লিকেশন, ড্রাইভার বা রানটাইম সংস্করণ ইনস্টল করুন এবং প্রয়োজনে ভেন্ডরের নথিভুক্ত বেসলাইন বা ফলব্যাক বিল্ড ব্যবহার করুন। একটি সফটওয়্যার আপডেট এমন কোনো নির্দেশনা তৈরি করতে পারে না যা প্রসেসরে নেই। ফার্মওয়্যার এবং নিরাপত্তা-নীতি পরিবর্তনগুলি একটি সাধারণ অপ্টিমাইজেশন রেসিপির পরিবর্তে সিস্টেম প্রস্তুতকারকের পদ্ধতি এবং একটি পুনরুদ্ধার পরিকল্পনা অনুসরণ করা উচিত।
এই ব্যাখ্যার উৎস এবং পরিধি
Intel 64 and IA-32 Architectures Software Developer's Manual · Linux কার্নেল: ইউজার স্পেসে XSTATE বৈশিষ্ট্যের ব্যবহার
এই রেফারেন্সগুলি আর্কিটেকচারাল আচরণ এবং সফটওয়্যার প্রয়োজনীয়তা স্থাপন করে। এগুলি একটি লিঙ্কযুক্ত হার্ডওয়্যার মডেল পৃষ্ঠার প্রতিটি বৈশিষ্ট্যের মান স্বাধীনভাবে যাচাই করে না। মডেল সাপোর্টের জন্য, সেই পৃষ্ঠার প্রস্তুতকারকের প্রমাণ ব্যবহার করুন এবং কার্যকর সিস্টেম কনফিগারেশন পরীক্ষা করুন। এই নিবন্ধটি কোনো বেঞ্চমার্ক, সার্টিফিকেশন বা স্বাধীন পর্যালোচনার তারিখ সরবরাহ করে না।
উৎস এবং যাচাইকরণ
সম্পাদকীয় মালিকানা: Feex। কোনো স্বাধীন পর্যালোচনার তারিখ রেকর্ড করা নেই। আমরা কীভাবে গবেষণা করি.
- Intel 64 and IA-32 Architectures Software Developer's Manual · ভলিউম 1 এবং 2 নামযুক্ত নির্দেশিকা পরিবার এবং CPUID বর্ণনা করে; ভলিউম 3 স্টেট, পেজিং, VMX এবং সুরক্ষা নিয়ন্ত্রণ বর্ণনা করে। আর্কিটেকচার ডকুমেন্টেশন কোনো নির্দিষ্ট মডেলের জন্য সাপোর্ট নিশ্চিত করে না।
- Linux কার্নেল: ইউজার স্পেসে XSTATE বৈশিষ্ট্যের ব্যবহার · OS-সক্ষম ভেক্টর স্টেট, গতিশীলভাবে সক্ষম টাইল স্টেট, সিগন্যাল-স্ট্যাক প্রয়োজনীয়তা এবং AMX অনুমতি প্রবাহ। Linux-নির্দিষ্ট আচরণ অন্য OS সম্পর্কে কোনো প্রতিশ্রুতি নয়।
এই নিবন্ধটি কি দরকারী ছিল?
একটি হ্যাঁ বা না-ই যথেষ্ট। আপনি চাইলে একটি কারণ বেছে নিন, বা একটি ছোট মন্তব্য যোগ করুন।
ধন্যবাদ। এটি আমাদের এই পৃষ্ঠাটি উন্নত করতে সহায়তা করে।