ওপেনসিএল জন্য গাণিতিক গ্রন্থাগার?


35

আমি যে কারও কাছে তাদের বৈজ্ঞানিক কোডে ওপেনসিএল ব্যবহার করার চেষ্টা করেছি তার কাছ থেকে তথ্য খুঁজছি। কেউ কি ভিয়েনাএল (সম্প্রতি) চেষ্টা করেছে ? যদি তাই হয় তবে এটি কীভাবে সিএসপি তুলনা করবে ?

ওসিএলটুলগুলি কী ? এটা কি প্রতিশ্রুতি পূরণ? যদি তা হয় তবে ওপেনসিএল-তে ম্যাথ কার্নেল লেখা শুরু করা কি একটি সম্ভাব্য উপায় হবে?


1
আমি ভিয়েনাএলএল বিকাশকারীদের একটি সংক্ষিপ্ত নোট প্রেরণ করে তাদের এইটির জন্য কিছু সাহায্য চেয়েছি।
আরন আহমদিয়া

1
এই প্রশ্নগুলি আমার একটি পোস্টের সাথে সম্পর্কিতও হয় scicomp.stackexchange.com/questions/366/future-of-opencl
অ্যালান পি। ইঞ্জিগ-কারুপ

উত্তর:


26

সবার আগে আমি এই থ্রেডে আমাকে ইশারা করার জন্য অরন আহমেদিয়াকে ধন্যবাদ জানাতে চাই।

বৈজ্ঞানিক কোডে ওপেনসিএল হিসাবে: ওপেনসিএল বলতে নিম্ন স্তরের এপিআই বোঝানো হয়, সুতরাং যুক্তিসঙ্গত উত্পাদনশীলতায় পৌঁছানোর জন্য কোনওভাবে এই কার্যকারিতাটি लपेटানো অত্যন্ত গুরুত্বপূর্ণ। অধিকন্তু, কয়েকটি কম্পিউট কার্নেল জড়িত হওয়ার সাথে সাথে, ওপেনসিএল কার্নেল এবং মেমরির হ্যান্ডলগুলি কোনও অ্যাপ্লিকেশনের মধ্যে ভারীভাবে প্রেরণ করা প্রয়োজন হলে কোডটি খুব নোংরা হতে পারে। আমি ওসিএলটুলগুলি জানি না, সুতরাং তারা এই বিষয়ে কার্যকর কিনা তা আমি বলতে পারছি না।

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

কার্যকারিতা । ম্যাগমা সাধারণ ফাংশন ইন্টারফেসের মাধ্যমে ঘন ম্যাট্রিক্সের জন্য বিএলএএস-কার্যকারিতা সরবরাহ করে। অপারেটর ওভারলোডগুলি এবং অন্যান্য সিনট্যাকটিক চিনি ব্যবহার করে এই কার্যকারিতাটির বেশিরভাগ ভিয়েনাএলসিএল ১.২.০ সরবরাহ করা হয়।

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

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

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

সামগ্রিকভাবে, ভিয়েনাএলএল বর্তমানে এমএজিএমএর তুলনায় ধীরে ধীরে, বিশেষত বিএলএএস স্তরে 3.. কারণগুলি ভিয়েনাএলএল-এর বিভিন্ন ফোকাস (ঘন লিনিয়ার বীজগণিতের পরিবর্তে স্পারস) এবং এমএজিএমএ-তে অপ্টিমাইজেশনের উচ্চতর ডিগ্রি। বিশেষত বিএলএএস স্তরের 3 ক্রিয়াকলাপগুলি বর্তমানে এমএজিএমএ-তে যথেষ্ট গতিযুক্ত।

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

বহনযোগ্যতা । হার্ডওয়্যার বহনযোগ্যতার জন্য, ভিয়েনা সিএল ওপেনসিএলকে ধন্যবাদ দিয়ে সমস্ত বড় বিক্রেতাদের সিপিইউ এবং জিপিইউ ব্যবহার করতে পারে। বিপরীতে, csp এবং MAGMA একটি উপযুক্ত এনভিআইডিআইএ জিপিইউতে নির্ভর করে।

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

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

আমার তুলনা চলাকালীন অবশ্যই অনেকগুলি আদর্শিক সমস্যা রয়েছে (যেমন CUDA বনাম ওপেনসিএল, বিএলএএস-ইন্টারফেস বনাম অপারেটর ওভারলোডস) তবে তাদের আলোচনা প্রাথমিক প্রশ্নের পরিধি ছাড়াই beyond


3
হাই কার্ল, সায়কম্পে আপনাকে স্বাগতম এবং তথ্যের জন্য আপনাকে ধন্যবাদ!
জ্যাক পলসন

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

2

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

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


অ্যালান, আমি মনে করি না আপনি এখানে শিনের প্রশ্নের উত্তর দিচ্ছেন ... তিনি বিশেষত ওপেনসিএল লাইব্রেরির উদাহরণ খুঁজছেন, দুজনের মধ্যে তুলনা নয়।
আরন আহমদিয়া

পাঁচটি প্রশ্ন করা হয়েছে। আমার উত্তরটি প্রথম 4 এর একটি সাধারণ প্রতিক্রিয়া এবং শেষের আরও সরাসরি উত্তর।
অ্যালান পি। এনজিগ-কারুপ

যথেষ্ট ভাল, এই প্রশ্নের উত্তর দেওয়ার জন্য কিছু প্রচেষ্টা করার জন্য ধন্যবাদ!
অরন আহমদিয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.