সবার আগে আমি এই থ্রেডে আমাকে ইশারা করার জন্য অরন আহমেদিয়াকে ধন্যবাদ জানাতে চাই।
বৈজ্ঞানিক কোডে ওপেনসিএল হিসাবে: ওপেনসিএল বলতে নিম্ন স্তরের এপিআই বোঝানো হয়, সুতরাং যুক্তিসঙ্গত উত্পাদনশীলতায় পৌঁছানোর জন্য কোনওভাবে এই কার্যকারিতাটি लपेटানো অত্যন্ত গুরুত্বপূর্ণ। অধিকন্তু, কয়েকটি কম্পিউট কার্নেল জড়িত হওয়ার সাথে সাথে, ওপেনসিএল কার্নেল এবং মেমরির হ্যান্ডলগুলি কোনও অ্যাপ্লিকেশনের মধ্যে ভারীভাবে প্রেরণ করা প্রয়োজন হলে কোডটি খুব নোংরা হতে পারে। আমি ওসিএলটুলগুলি জানি না, সুতরাং তারা এই বিষয়ে কার্যকর কিনা তা আমি বলতে পারছি না।
ভিয়েনাএল সিএল হিসাবে: আমি ভিয়েনা সিএল এর প্রধান, তাই আমি লাইব্রেরিতে সম্প্রতি কাজ করেছি। :-) নিম্নলিখিতটিতে আমি সিএসপিএফের সাথে তুলনা করার অনুরোধটিকে সামান্য বৃহত্তর স্কোপ হিসাবে বিবেচনা করব, যথা ভিয়েনা সিএল বনাম সিডিডিএ ভিত্তিক গণিত লাইব্রেরি সিএসপি এবং এমএজিএমএ । প্রচুর চলমান উন্নয়ন (কমপক্ষে আমাদের পক্ষে) থাকলেও কেবলমাত্র বর্তমান রাষ্ট্রটিকেই বিবেচনা করা হয়।
কার্যকারিতা । ম্যাগমা সাধারণ ফাংশন ইন্টারফেসের মাধ্যমে ঘন ম্যাট্রিক্সের জন্য বিএলএএস-কার্যকারিতা সরবরাহ করে। অপারেটর ওভারলোডগুলি এবং অন্যান্য সিনট্যাকটিক চিনি ব্যবহার করে এই কার্যকারিতাটির বেশিরভাগ ভিয়েনাএলসিএল ১.২.০ সরবরাহ করা হয়।
একই তিনটি পুনরাবৃত্তি সমাধানকারী (সিজি, বিসিজিস্ট্যাব, জিএমআরইএস) সিএসপি এবং ভিয়েনা সিএল সরবরাহ করা হয়। পূর্বশর্তীদের সেট উল্লেখযোগ্যভাবে পৃথক: কুসপটি তির্যক, এসএ-এএমজি এবং বিভিন্ন ব্রিডসন পূর্বশর্ত সরবরাহ করে। ভিয়েনাএলএল অসম্পূর্ণ এলইউ অনুকরণ, তির্যক পূর্ববর্তী অবস্থা এবং সম্প্রতি বিভিন্ন এএমজি স্বাদ এবং স্পারস আনুমানিক বিপরীত পূর্ববর্তী অবস্থা সরবরাহ করে। আমার জানা মতে, সমস্ত কুসংস্ক পূর্বশর্তীরা সম্পূর্ণ জিপিইউতে চলে, অন্যদিকে ভিয়েনা সিএলপি-ভিত্তিক গণনাগুলির সেটআপ পর্বের সময় নির্ভর করে। বর্তমানে, স্পারস ম্যাট্রিক্স ফর্ম্যাটগুলির সংখ্যা সিউপিতে আরও বেশি: সিওও, সিএসআর, ডিআইএ, ইএলএল, এইচওয়াইবি, এবং ভিয়েনা সিএল ১.২.০ সিও এবং সিএসআর সরবরাহ করে।
ভিয়েনাএল সিএল-এর সাথে প্রচুর অতিরিক্ত অতিরিক্ত বৈশিষ্ট্য সরবরাহ করা হয়েছে যা ম্যাগমা বা সিএসপি-র কোনও অংশ নয়: স্ট্রাকচার্ড ম্যাট্রিক্স প্রকারগুলি (সার্কুল্যান্ট, হান্কেল ইত্যাদি), দ্রুত ফুরিয়ার ট্রান্সফর্ম, পুনরায় অর্ডারিং অ্যালগরিদম (যেমন: কুথিল-ম্যাককি) এবং লিনিয়ার বীজগণিতের জন্য মোড়ক অন্যান্য গ্রন্থাগার থেকে টাইপ।
কর্মক্ষমতা. ভিয়েনা সিএল-এ বিশাল বৈশিষ্ট্য এবং হার্ডওয়্যার সহায়তার বড় সেটটি সাধারণত সিউডিএ-ভিত্তিক বাস্তবায়নগুলির তুলনায় কম পারফরম্যান্সের ব্যয় করে আসে। এটি আংশিকভাবে এই সত্যের কারণেও যে সিউডিএ এনভিআইডিআইএ পণ্যগুলির আর্কিটেকচারের উপযোগী, অন্যদিকে ওপেনসিএল বিভিন্ন অর্থে অনেকগুলি মূল স্থাপত্যগুলির মধ্যে একটি যুক্তিসঙ্গত আপস উপস্থাপন করে।
সামগ্রিকভাবে, ভিয়েনাএলএল বর্তমানে এমএজিএমএর তুলনায় ধীরে ধীরে, বিশেষত বিএলএএস স্তরে 3.. কারণগুলি ভিয়েনাএলএল-এর বিভিন্ন ফোকাস (ঘন লিনিয়ার বীজগণিতের পরিবর্তে স্পারস) এবং এমএজিএমএ-তে অপ্টিমাইজেশনের উচ্চতর ডিগ্রি। বিশেষত বিএলএএস স্তরের 3 ক্রিয়াকলাপগুলি বর্তমানে এমএজিএমএ-তে যথেষ্ট গতিযুক্ত।
একইভাবে, সিএসপি সাধারণভাবে সামগ্রিক পারফরম্যান্সের তুলনায় কিছুটা ভাল সরবরাহ করে। তবে, যেহেতু বিরল ম্যাট্রিক্স অপারেশনগুলি সাধারণত মেমরি ব্যান্ডউইথ সীমাবদ্ধ থাকে তাই ডেটা সেটআপ এবং এর মতো তুলনায় পার্থক্যগুলি যথেষ্ট কম এবং প্রায়শই নগণ্য। পূর্বশর্তকারীর পছন্দ এবং এর পরামিতিগুলি বিচ্ছিন্ন ম্যাট্রিক্স-ভেক্টর গুণকের কোনও পারফরম্যান্সের পার্থক্যের তুলনায় সামগ্রিক সম্পাদনের সময়টিতে উচ্চতর প্রভাব ফেলে।
বহনযোগ্যতা । হার্ডওয়্যার বহনযোগ্যতার জন্য, ভিয়েনা সিএল ওপেনসিএলকে ধন্যবাদ দিয়ে সমস্ত বড় বিক্রেতাদের সিপিইউ এবং জিপিইউ ব্যবহার করতে পারে। বিপরীতে, csp এবং MAGMA একটি উপযুক্ত এনভিআইডিআইএ জিপিইউতে নির্ভর করে।
ভিয়েনা সিএল কেবলমাত্র শিরোনামযুক্ত, বিস্তৃত সি ++ সংকলকগুলিতে সংকলন করা যেতে পারে এবং জিপিইউ-সমর্থন প্রয়োজন হলে কেবল ওপেনসিএল লাইব্রেরির সাথে সংযুক্ত হওয়া দরকার। নীতিগতভাবে, ভিয়েনা সিএল-তে জেনেরিক অ্যালগরিদমগুলি কোনও ওপেনসিএল সংযোগ ছাড়াই ব্যবহার করা যেতে পারে, যখন সিএসপি এবং এমএজিএমএ-র সংকলনের জন্য এনভিআইডিআইএ সংকলক এবং সিউডিএ লাইব্রেরি কার্যকর করার জন্য লক্ষ্য সিস্টেমে প্রয়োজন। ম্যাগমায়ার জন্য একটি বিএলএএস লাইব্রেরিও প্রয়োজন, যা কখনও কখনও নতুন সিস্টেমে সন্ধান বা ইনস্টল করতে ঝামেলা হতে পারে।
এপিআই । ম্যাগমা বিএলএএস কার্যকারিতার জন্য বিএলএএস-স্টাইল ফাংশন ইন্টারফেস সরবরাহ করে। সিএসপির সি ++ ইন্টারফেস বিএলএএস থেকে কিছু ফাংশন ব্যবহার করে, তবে কোনও অপারেটর ওভারলোড হয় না। যেহেতু ভিয়েনাএলসিএল-এর বেশিরভাগ ইন্টারফেসগুলি ইচ্ছাকৃতভাবে বুস্ট.ইউবিএলএসের অনুরূপ এবং বৈশিষ্ট্যযুক্ত সিনট্যাকটিক চিনির যেমন অপারেটর ওভারলোডগুলি, তাই ভিয়েনা সিএলও বুস্ট.ইউবিএলএসের মতো ব্যবহারের উদ্দেশ্যে তৈরি is সুতরাং, কেবল অপারেশন এবং অ্যালগরিদমগুলির একটি পূর্বনির্ধারিত সেট কল করার পাশাপাশি, আমাদের উদ্দেশ্যটি খাঁটি সিপিইউ-ভিত্তিক নির্বাহীকরণ থেকে জিপিইউ কোডের যতটা সম্ভব সহজ হিসাবে স্থানান্তর করা, এমনকি যদি অ-মানক অ্যালগরিদম ব্যবহার করা হয়। যদি কোনও ডেডিকেটেড ওপেনসিএল কার্নেল প্রয়োজন হয় তবে ভিয়েনাএল সিলেলে আপনার নিজস্ব ওপেনসিএল কার্নেলগুলি একীকরণের জন্য একটি কাঠামোও রয়েছে। সুতরাং, ভিয়েনাএলসিএল অনেক বেশি দিকে লক্ষ্য করেউচ্চ উত্পাদনশীলতা এই অর্থে যে জিপিইউতে নতুন অ্যালগরিদম বাস্তবায়নের জন্য প্রয়োজনীয় সময়টি হ্রাস করা হয়েছে । এই সঞ্চয়গুলি সিএসপি এবং এমএজিএমএর তুলনায় কোনও পারফরম্যান্স পেনাল্টির (যদি থাকে) উল্লেখযোগ্যভাবে ছাড়িয়ে যেতে পারে। ( ইউনিট টেস্টিংয়ের সূত্রে এটিও উল্লেখ করা হয়েছে যে কোড বিকাশের সময়টি বিজ্ঞানের একটি মূল্যবান সম্পদ))
আমার তুলনা চলাকালীন অবশ্যই অনেকগুলি আদর্শিক সমস্যা রয়েছে (যেমন CUDA বনাম ওপেনসিএল, বিএলএএস-ইন্টারফেস বনাম অপারেটর ওভারলোডস) তবে তাদের আলোচনা প্রাথমিক প্রশ্নের পরিধি ছাড়াই beyond