সিপিইউতে কোন গণনা করা হয় এবং কোনটি জিপিইউতে হয় তা কীভাবে নিয়ন্ত্রণ করব?


14

আমার বর্তমান উপলব্ধিটি হ'ল শেডার ফাইলে যা কিছু করা হয় তা জিপিইউতে করা হয়, এবং আমার (জাভা, আমার ক্ষেত্রে) কোডে কিছু করা হয় সিপিইউতে।

এটি কি সঠিক বর্ণনা?


2
এছাড়াও আপনি জিপিইউতে ওপেনসিএল এর মতো কিছু ব্যবহার করে কম্পিউটিং করতে পারেন যা আপনাকে জিপিইউতে কোড চালানোর অনুমতি দেয়।
সাবান

উত্তর:


20

এটি এর সংক্ষেপে।

নীতিগতভাবে, প্ল্যাটফর্মটি কল্পিতভাবে, যা খুশি তা করতে পারে। এক্সপ্লোর পরিচালনা অপারেটিং সিস্টেমটি জিপিইউ কোড থেকে x86 থেকে সংকলিত কোডের কেবলমাত্র সময়েই অনুবাদ করতে পারে তা কল্পনা করতে পারে। একইভাবে, ওপেনজিএল ড্রাইভাররা হোস্ট সিপিইউতে যা খুশি তা চালাতে পারে।

তবে সত্যিই, আপনি যা বর্ণনা করেছেন, তা ঘটে।


5
আইআইআরসি, ছায়াগুলি জিপিইউতে প্রেরণের আগে সিপিইউতে সংকলিত হয়। এবং এটি জিপিইউ ড্রাইভার ওএস ছাড়াই করেছেন।
এমসাল্টার

সত্য। জাভা কোডটি ইতিমধ্যে সংকলিত হয়ে গেলেও শেডারে চালিত প্রোগ্রাম চলাকালীন আমি অনেকগুলি সংকলন ত্রুটি মোকাবিলা করেছি।
বেসিনেটর

1
তাত্ত্বিক: ধরা যাক আমার একটি প্রোগ্রাম ছিল যা খুব সিপিইউ নিবিড় তবে এটি কেবল একটি কমান্ড লাইন ইন্টারফেস ছিল (কোনও গ্রাফিকাল কাজ নেই)। আমি কি জিপিইউতে কিছু কাজ অফলোড করতে পারি? আমি আসলে এটি করার পরিকল্পনা করছি না, এটি কেবল একটি ধারণামূলক জিনিস যা আমার আগ্রহী।
বেসিনেটর

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

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

7

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

নিয়মের ব্যতিক্রম তৃতীয় পক্ষের এপিআইএস ব্যবহার করা হবে যা ব্যবধানটি দূর করতে পারে।


1
খুব আকর্ষণীয় টিপ, আপনার "লিখিত অপ্রাপি"। জিপিইউতে কিছু জেভিএম কোড চালান ... আকর্ষণীয়!
ডেভিড ভ্যান

3

ডেভিড ভ্যান ব্রিং আপনার প্রশ্নের জবাব সাধারণভাবে দিয়েছে।

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

বিপরীতভাবে, ভেক্সক্লা বা বুস্ট কম্পিউট, বা মাইক্রোসফ্টসের এএমপি, বা এনভিডিয়া থ্রাস্টের মতো কম্পিউটিং লাইব্রেরির মাধ্যমে কার্যকর করা কোডটি, জিপিইউ বা সিপিইউতে API সেটআপ ফ্ল্যাগের উপর নির্ভর করে কার্যকর করা যেতে পারে।

এবং শেষ স্পর্শের জন্য, সিপিইউর অভ্যন্তরে আপনার একটি ডিএসপি আর্কিটেকচারও রয়েছে যার অংশটি আমরা সিমডি বলি। ইন্টেলের আইএসপিসি সংকলক আপনাকে কোডটি তৈরি করতে সহায়তা দেয় যা "সুনিশ্চিত" সিমড লেনে চালানোর জন্য প্রচুর পারফরম্যান্স ডায়াগনস্টিকগুলি সংকলনের সময় আপনাকে এটির সর্বাধিক সাহায্য করতে সহায়তা করে। এতে ওপেনএমপি যুক্ত করুন এবং আপনি মাল্টিথ্রেডেড সিমডি পেতে পারেন, যা জিপিইউগুলির ধারণার কাছে চলে আসে। আপনার যদি উচ্চতর সিপিইউ এবং নিম্ন প্রান্তের জিপিইউ থাকে তবে এটি আসলে আরও পারফরম্যান্স হতে পারে।
http://ispc.github.io/

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