বিএলএএস, ল্যাপাক এবং অন্যান্য লিনিয়ার বীজগণিত গ্রন্থাগারের সম্পর্ক কী?


26

আমি যে প্রকল্পে কাজ করছি তার জন্য আমি সি ++ লিনিয়ার বীজগণিত গ্রন্থাগারগুলি সন্ধান করছি। অন্য কিছু লিনিয়ার বীজগণিত গ্রন্থাগারের সাথে BLAS এবং LAPACK এর সংযোগ হ'ল এমন কিছু যা আমি এখনও বুঝতে পারি না।

মাধ্যমে দেখার জন্যে রৈখিক বীজগণিত লাইব্রেরি এই নিবন্ধটি আমি এটা যে আকর্ষণীয় পাওয়া:

  • কিছু লাইব্রেরি BLAS এবং LAPACK থেকে স্বতন্ত্র
  • কারও কারও কাছে BLAS এবং LAPACK দরকার
  • কারও কারও কাছে বিএলএএস এবং ল্যাপ্যাকের alচ্ছিক ইন্টারফেস রয়েছে
  • এবং, যেমনটি আমি এটি বুঝতে পারি, আপনি লিনিয়ার বীজগণিত সমস্যাগুলি সরাসরি সমাধান করতে BLAS এবং LAPACK ব্যবহার করতে পারেন

আমি কল্পনা করতে পারি যে কিছু লাইব্রেরি কেবল সিএ এবং ফোরট্রানে লিখিত লাইব্রেরিগুলিতে বিএলএএস এবং ল্যাপাক গ্রন্থাগারগুলিতে কেবল সি ++ ইন্টারফেস এবং অন্যরা তাদের নিজস্ব বিকল্প রুটিন প্রয়োগ করেছে, কিন্তু

  1. বিএলএএস এবং ল্যাপ্যাকের alচ্ছিক ইন্টারফেসগুলির কী কী প্রভাব রয়েছে? আপনি বেছে নেওয়ার মাধ্যমে কী হারাচ্ছেন এবং এর পরিবর্তে গ্রন্থাগারগুলি কী করছে?

  2. লাইব্রেরির কোনও কি কেবল একটি ইন্টারফেসের চেয়ে বেশি সরবরাহ করে? উদাহরণস্বরূপ, ইউএমএফপ্যাক সি-তে লেখা এবং এটি বিএলএএস এবং ল্যাপ্যাকের alচ্ছিক ইন্টারফেস রয়েছে। ইউএমএফপ্যাক (বা অন্যান্য লাইব্রেরি) কী করতে পারে যে বিএলএএস এবং ল্যাপাক তাদের নিজেরাই পারে না?

উত্তর:


15

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

সুতরাং আপনার প্রশ্নের উত্তর দিতে (কমপক্ষে আংশিক),

  1. বিএলএএস / ল্যাপকে বেছে নেওয়ার মাধ্যমে আপনি সাধারণত কার্যকারিতা মিস করছেন না (যদি না implementationচ্ছিক ইন্টারফেসটি এমনভাবে তৈরি করা হয় যাতে বিকল্প প্রয়োগ না হয়, যা বিরল)। আপনি যদি খুব পরিশীলিত ক্রিয়াকলাপ করতে চেয়েছিলেন তবে other অন্যান্য গ্রন্থাগারগুলি সম্ভবত এটি নিজেরাই প্রয়োগ করে না। যেহেতু আপনার আর্কিটেকচারে বিএলএএস উচ্চ সুর করা যেতে পারে, তাই আপনি বিশাল স্পিডআপগুলিতে নিখোঁজ হতে পারেন (প্রস্থের গতির পার্থক্যের ক্রমটি শোনা যায় না)।

  2. আপনি ইউএমএফপ্যাককে উল্লেখ করেছেন, যা বিরল ম্যাট্রিক্স নির্ণয়ের জন্য। বিএলএএস / ল্যাপैक কেবল ঘন ম্যাট্রিক্স সম্পর্কে উদ্বিগ্ন। কিছু স্তরে ইউএমএফপ্যাককে মাঝারি আকারের ঘন সমস্যাগুলিতে কাজ করা দরকার যা এটি কাস্টম বাস্তবায়ন বা বিএলএএস / ল্যাপকে কল করে করতে পারে। এখানে পার্থক্যটি কেবল গতিতে।

গতি যদি খুব উদ্বেগের বিষয় থাকে তবে aচ্ছিক বিএলএএস / ল্যাপাক বাইন্ডিংগুলিকে সমর্থন করে এমন একটি লাইব্রেরি ব্যবহার করার চেষ্টা করুন এবং আপনি জিনিসগুলি দ্রুত চাইলে শেষ পর্যন্ত সেগুলি ব্যবহার করুন।


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

  2. ইউএমএফপ্যাক হ'ল বিচ্ছিন্ন ম্যাট্রিক্সের লিনিয়ার বীজগণিতের জন্য একটি লাইব্রেরি (0 টি এন্ট্রিগুলির একটি উচ্চ অনুপাত সহ ম্যাট্রিক্স)) এটি ঘন ম্যাট্রিক্স (বা ম্যাট্রিকের মধ্যে ঘন ব্লকগুলি) পরিচালনা করতে BLAS / LAPACK ব্যবহার করতে পারে।


1

সংক্ষিপ্ত সংস্করণ: এগুলি মূলত ফোর্টরানে রচিত লাইব্রেরি যা বহু ভাষায় সংখ্যাসূচক ক্রিয়াকলাপের জন্য ব্যবহৃত হয় - এমনকি কিছু সি প্রোগ্রাম এমনকি তাদের নিখরচায় গতি এবং অপ্টিমাইজেশনের কারণে; এগুলি অনেক অ্যালগরিদমের একমাত্র ওপেন সোর্স বাস্তবায়ন :)

লাইব্রেরিগুলির নির্ভরতা না থাকলে আপনাকে ব্যবহার করতে হবে না; এইগুলির বেশিরভাগই বেশ স্বাধীন and


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

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

@BilBarth BLAS অবশ্যই নিশ্চিত কিন্তু আপনি কি নিশ্চিত যে ল্যাপাকের রুটিনগুলিও আবার রচিত? আফাক যতক্ষণ BLAS 3 অত্যন্ত পারফরম্যান্স করছে (বা মাল্টিথ্রেডেড) তবে এটি সব ভাল।
stali

1
আমি বিএলএএস এবং ল্যাপকে ফাংশন এবং ইন্টারফেসের নাম হিসাবে মনে করি। এখানে প্রচুর আলাদা বাস্তবায়ন রয়েছে (এসিএমএল, ইএসএসএল, এমকেএল, আটলাস ইত্যাদি)।
বিল বার্থ

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