একক বনাম ডাবল ভাসমান-পয়েন্ট যথার্থতা


13

একক নির্ভুলতা ভাসমান পয়েন্ট সংখ্যাগুলি অর্ধেক স্মৃতি গ্রহণ করে এবং আধুনিক মেশিনগুলিতে (এমনকি জিপিইউগুলিতেও মনে হয়) দ্বিগুণ নির্ভুলতার তুলনায় প্রায় দ্বিগুণ গতিতে তাদের সাথে অপারেশন করা যেতে পারে। আমি অনেকগুলি এফডিটিডি কোড পেয়েছি যা এককভাবে নির্ভুল গণিত এবং স্টোরেজটি একচেটিয়াভাবে ব্যবহার করে। বৃহত আকারের স্পার্স সিস্টেম সমীকরণের সমাধানের জন্য একক নির্ভুলতা ব্যবহার করা যখন গ্রহণযোগ্য তখন এর কোনও নিয়ম আছে? আমি ধরে নিচ্ছি এটি ম্যাট্রিক্স শর্ত সংখ্যার উপর অবশ্যই নির্ভর করবে।

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

আধুনিক এফপিইউর কি নির্বিঘ্নে একক নির্ভুলতা (ভাসা) থেকে ডাবল নির্ভুলতা (ডাবল) এবং তদ্বিপরীত রূপান্তর করতে দেয়? নাকি এই ব্যয়বহুল অপারেশনগুলি?

উত্তর:


7

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


ধন্যবাদ, অধ্যাপক ব্যাঙ্গার্থ পুনরাবৃত্ত ম্যাট্রিক্স সলভারগুলির সম্পর্কে কী? আপনি কি ম্যাট্রিক্স-ভেক্টর পণ্যগুলির জন্য দ্বিগুণ নির্ভুলতা বা স্কেল বা ভেক্টর উপাদানগুলিকে বহুগুণের জন্য একক করতে এবং জমা করার জন্য দ্বিগুণ ব্যাক আপ করেন?
কস্টিস

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

সেখানে কোথাও একটি কাগজ রয়েছে (সম্ভবত 2 দশক আগে) ইঙ্গিত দেয় যে ডট পণ্যগুলি ডাবল নির্ভুলতার চেয়ে বেশি হওয়া উচিত। আমার কাছে রেফারেন্সটি সুবিধাজনক নেই তবে আমি পরে খুঁজে পেতে পারি কিনা তা দেখতে পাব।
বিল বার্থ

হ্যাঁ, এটি আমাকে অবাক করে না। এটি আমাদের কাজের সাথেও মেলে।
ওল্ফগ্যাং ব্যাঞ্জারথ

আপনি ডট পণ্যগুলির জন্য কোয়াড স্পষ্টতা ব্যবহার করেন? যদি তাই হয়, শীতল! আমি শুনিনি যে লাইব্রেরিতে কেউ এই কাজ করছে।
বিল বার্থ


3

আমার পরামর্শটি হ'ল মূলত সিদ্ধান্তের জন্য মেমরির ব্যবহারের দিকে মনোনিবেশ করা যখন একক নির্ভুলতা (ফ্লোট) ব্যবহার করবেন। সুতরাং একটি এফডিটিডি গণনার জন্য বাল্ক ডেটাতে ভাসা ব্যবহার করা উচিত, তবে আমি সমস্যার বিবরণটি নিজেই রাখব (জ্যামিতি, উপাদানগুলির প্যারামিটারগুলি, উত্তেজনার শর্তগুলির মতো) এবং সমস্ত সম্পর্কিত মেটা ডেটা দ্বিগুণ।

আমি সমস্ত কার্য সম্পাদনকে অবৈধ রাখব এবং গণনাগুলি গভীরভাবে বিশ্লেষণ করে না not বিশেষত, আমি বহুভুজ সংক্রান্ত তথ্য এবং জ্যামিতির অন্যান্য বিবরণটিকে দ্বিগুণ করে রাখব (সম্ভবত সম্ভব হলে পূর্ণসংখ্যারও), যেহেতু অভিজ্ঞতা বলে যে আপনি কখনই আপনার কোডের গণ্য জ্যামিতিক অংশগুলি পুরোপুরি মজবুত পাবেন না, এমনকি যদি এটি তত্ত্বের ক্ষেত্রেও সম্ভব হত তবেও।

তৃতীয় অংশটি আমি দ্বিগুণ রাখব তা হ'ল বিশ্লেষণমূলক গণনা, সাম-অ-প্রতিসাম্য আইজেনালু পচন ব্যবহার করে শর্টকাট সহ। উদাহরণ হিসাবে, আমার কাছে টুকরোচক সংজ্ঞায়িত ঘূর্ণমান প্রতিসাম্য 2D ফাংশন রয়েছে এবং আমার এর ফুরিয়ার রূপান্তর প্রয়োজন। এফএফটি এবং এটি "দক্ষতার সাথে" পাওয়ার জন্য উপযুক্ত "বিশ্লেষণাত্মক লো পাস ফিল্টার" জড়িত বিভিন্ন সংখ্যাগত উপায় থাকবে। এটির অভিনয়টি অবৈধ কারণ, আমি এর পরিবর্তে বেসেল ফাংশনগুলির সাথে জড়িত একটি "সঠিক" বিশ্লেষণাত্মক অভিব্যক্তি ব্যবহার করেছি। যেহেতু এটি শুরু করার জন্য একটি শর্টকাট ছিল এবং আমি আমার জটিল সূত্রের ত্রুটি প্রচারের বিশ্লেষণ করতে কোনও সময় ব্যয় করব না, তাই আমি সেই গণনার জন্য দ্বিগুণ নির্ভুলতা ব্যবহার করব। (এটি এখনও প্রমাণিত হয়েছে যে সূত্রটির জন্য বিশ্লেষণাত্মক সমতুল্য কিছু অভিব্যক্তি ব্যবহারযোগ্য ছিল,

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.