SSE3
SSE3 ফ্লোটিং-পয়েন্ট ডেটা হ্যান্ডলিং এবং পাটিগণিতের জন্য x86 ইন্সট্রাকশনের একটি ছোট গ্রুপ যোগ করে, যার মধ্যে হরিজন্টাল অপারেশন অন্তর্ভুক্ত। এটি Supplemental SSE3 থেকে ভিন্ন, যা সাধারণত SSSE3 নামে লেখা হয়।
আপনার যা জানা প্রয়োজন
SSE3 ফ্লোটিং-পয়েন্ট ডেটা হ্যান্ডলিং এবং পাটিগণিতের জন্য x86 ইন্সট্রাকশনের একটি ছোট গ্রুপ যোগ করে, যার মধ্যে হরিজন্টাল অপারেশন অন্তর্ভুক্ত। এটি Supplemental SSE3 থেকে ভিন্ন, যা সাধারণত SSSE3 নামে লেখা হয়।
এটি যেভাবে কাজ করে
SSE3-এর মধ্যে রয়েছে হরিজন্টাল যোগ/বিয়োগ অপারেশন, অল্টারনেটিং যোগ/বিয়োগ, ডুপ্লিকেট-লোড ফর্ম এবং নির্দিষ্ট আনঅ্যালাইনড ইন্টিজার-লোড ব্যবহারের ক্ষেত্রে LDDQU। হরিজন্টাল অপারেশনগুলো কেবল সংশ্লিষ্ট লেনগুলোতে স্বাধীন পাটিগণিত প্রয়োগ করার পরিবর্তে ইনপুট ভেক্টরের মধ্যকার উপাদানগুলোকে একত্রিত করে। সুনির্দিষ্ট লেন অর্ডারিং অত্যন্ত গুরুত্বপূর্ণ।
যেখানে এটি কার্যকর
কমপ্লেক্স এরিথমেটিক বাস্তব এবং কাল্পনিক উপাদানগুলোকে সাজানোর জন্য ডুপ্লিকেট এবং যোগ/বিয়োগ ফর্মগুলোকে একত্রিত করতে পারে। কোনো নির্দিষ্ট প্রসেসরে দ্রুততর হলে একটি কম্পাইলার ভিন্ন সিকোয়েন্স বেছে নিতে পারে। একটি সুবিধাজনক ইন্সট্রাকশন নাম প্রতিটি লুপের জন্য এটি সর্বোত্তম হওয়ার প্রমাণ নয়।
সাপোর্ট এবং সক্ষমতা কীভাবে পরীক্ষা করবেন
CPUID.01H:ECX বিট 0 দ্বারা SSE3 এনুমারেট করা হয়। বিট 9-এ SSSE3 আলাদাভাবে পরীক্ষা করুন। অ্যাপ্লিকেশনের সাধারণ SSE প্রয়োজনীয়তা থেকে অনুমান করার পরিবর্তে কোন নির্দিষ্ট ইন্সট্রাকশনটি illegal-instruction ত্রুটি ঘটিয়েছে তা নির্ধারণ করুন।
একটি SIMD ফিচার নির্দেশনা বর্ণনা করে, অতিরিক্ত কোর নয়। নির্দেশনার ধরন উপাদান প্রস্থ, সাইনডনেস, রাউন্ডিং, অ্যালাইনমেন্ট এবং কোন লেনগুলো ইন্টারঅ্যাক্ট করে তা নির্ধারণ করে। সফটওয়্যারকে অবশ্যই ABI-এর রেজিস্টার স্টেট সংরক্ষণ করতে হবে এবং একটি সমর্থিত এক্সিকিউশন পরিবেশ ব্যবহার করতে হবে।
এই বৈশিষ্ট্যটি যা নিশ্চিত করে না
SSE3 এবং SSSE3 আলাদা ফিচার ফ্ল্যাগ। কোনো লেবেলই SSE4.1, SSE4.2, POPCNT বা AVX প্রমাণ করে না। ইউজার কোড প্রতিটি সংশ্লিষ্ট ইন্সট্রাকশন এক্সিকিউট করতে পারে এমন ধরে নেওয়ার পরিবর্তে MONITOR/MWAIT প্রাপ্যতা এবং অনুমোদিত ব্যবহারের ক্ষেত্রেও তাদের নিজস্ব সিস্টেম-লেভেল বিবেচনার প্রয়োজন হয়।
বাস্তবে সামঞ্জস্য এবং কর্মক্ষমতা
SSE পরিবারের পরবর্তী নামগুলোর আলাদা ফিচার বিট রয়েছে। একটি মোতায়েনকৃত বাইনারির জন্য, লাইব্রেরি এবং স্টার্টআপ কোড সহ সম্পূর্ণ ন্যূনতম ফিচার সেট পরীক্ষা করুন। নির্বাচন ধাপের আগে কোনো অসমর্থিত নির্দেশনা না চললেই কেবল একটি ফলব্যাক কার্যকর হয়।
একটি ব্যবহারিক যাচাইকরণ চেকলিস্ট
- সংশ্লিষ্ট সুনির্দিষ্ট প্রসেসর বা প্ল্যাটফর্ম মডেল এবং অ্যাপ্লিকেশন, OS ও রানটাইম সংস্করণগুলি রেকর্ড করুন। প্রকৃত ত্রুটি বা প্রয়োজনীয়তার সঠিক শব্দচয়ন সংরক্ষণ করুন।
- সেই নির্দিষ্ট মডেলের জন্য প্রস্তুতকারকের রেফারেন্স পরীক্ষা করুন, তারপর প্রোগ্রামটি যে পরিবেশে চলে সেখানে কার্যকর সক্ষমতা এবং সক্রিয় অবস্থা পর্যবেক্ষণ করুন।
- নির্বাচিত বাইনারি বা ব্যাকএন্ডের প্রতিটি প্রয়োজনীয়তা তুলনা করুন। একই নামের কোনো বৈশিষ্ট্য, উপনাম বা বিস্তৃত প্রযুক্তির লেবেলই যথেষ্ট নয়।
- অ্যাপ্লিকেশনটি কাঙ্ক্ষিত বাস্তবায়ন নির্বাচন করেছে কিনা তা নিশ্চিত করুন। প্রয়োজনীয়তা পূরণ না হলে এর নথিভুক্ত ডায়াগনস্টিকস এবং একটি সমর্থিত ফলব্যাক ব্যবহার করুন।
- একবারে একটি সমর্থিত পরিবর্তন করুন এবং একই কাজের চাপ পুনরাবৃত্তি করুন। মূল কনফিগারেশন এবং পুনরুদ্ধারের পথ উপলব্ধ রাখুন।
যদি বৈশিষ্ট্যটি তালিকাভুক্ত থাকে কিন্তু সফটওয়্যার এটি ব্যবহার করতে না পারে
নির্দিষ্ট ব্যর্থ উপাদানটি দিয়ে শুরু করুন। একটি হার্ডওয়্যার ডাটাবেস সংরক্ষিত সক্ষমতা বর্ণনা করে; অপারেটিং সিস্টেম বা হাইপারভাইজর একটি ভিন্ন কার্যকর পরিবেশ প্রকাশ করতে পারে। একটি অবৈধ-নির্দেশনা (illegal-instruction) ত্রুটির ক্ষেত্রেও প্রকৃত ত্রুটিপূর্ণ নির্দেশনা এবং বাইনারি বিল্ড তদন্ত করা প্রয়োজন, কারণ ডেটা ক্ষতি বা সম্পর্কহীন কোনো অসমর্থিত নির্দেশনাও একই রকম লক্ষণ তৈরি করতে পারে।
নির্দিষ্ট প্ল্যাটফর্মের জন্য সমর্থিত অ্যাপ্লিকেশন, ড্রাইভার বা রানটাইম সংস্করণ ইনস্টল করুন এবং প্রয়োজনে ভেন্ডরের নথিভুক্ত বেসলাইন বা ফলব্যাক বিল্ড ব্যবহার করুন। একটি সফটওয়্যার আপডেট এমন কোনো নির্দেশনা তৈরি করতে পারে না যা প্রসেসরে নেই। ফার্মওয়্যার এবং নিরাপত্তা-নীতি পরিবর্তনগুলি একটি সাধারণ অপ্টিমাইজেশন রেসিপির পরিবর্তে সিস্টেম প্রস্তুতকারকের পদ্ধতি এবং একটি পুনরুদ্ধার পরিকল্পনা অনুসরণ করা উচিত।
এই ব্যাখ্যার উৎস এবং পরিধি
Intel 64 and IA-32 Architectures Software Developer's Manual
এই রেফারেন্সগুলি আর্কিটেকচারাল আচরণ এবং সফটওয়্যার প্রয়োজনীয়তা স্থাপন করে। এগুলি একটি লিঙ্কযুক্ত হার্ডওয়্যার মডেল পৃষ্ঠার প্রতিটি বৈশিষ্ট্যের মান স্বাধীনভাবে যাচাই করে না। মডেল সাপোর্টের জন্য, সেই পৃষ্ঠার প্রস্তুতকারকের প্রমাণ ব্যবহার করুন এবং কার্যকর সিস্টেম কনফিগারেশন পরীক্ষা করুন। এই নিবন্ধটি কোনো বেঞ্চমার্ক, সার্টিফিকেশন বা স্বাধীন পর্যালোচনার তারিখ সরবরাহ করে না।
উৎস এবং যাচাইকরণ
সম্পাদকীয় মালিকানা: Feex। কোনো স্বাধীন পর্যালোচনার তারিখ রেকর্ড করা নেই। আমরা কীভাবে গবেষণা করি.
- Intel 64 and IA-32 Architectures Software Developer's Manual · ভলিউম 1 এবং 2 নামযুক্ত নির্দেশিকা পরিবার এবং CPUID বর্ণনা করে; ভলিউম 3 স্টেট, পেজিং, VMX এবং সুরক্ষা নিয়ন্ত্রণ বর্ণনা করে। আর্কিটেকচার ডকুমেন্টেশন কোনো নির্দিষ্ট মডেলের জন্য সাপোর্ট নিশ্চিত করে না।
এই নিবন্ধটি কি দরকারী ছিল?
একটি হ্যাঁ বা না-ই যথেষ্ট। আপনি চাইলে একটি কারণ বেছে নিন, বা একটি ছোট মন্তব্য যোগ করুন।
ধন্যবাদ। এটি আমাদের এই পৃষ্ঠাটি উন্নত করতে সহায়তা করে।