সিপিইউ বনাম জিপিইউতে জ্যামিতিক ট্রান্সফরমেশন


9

আমি লক্ষ করেছি যে অনেকগুলি 3 ডি প্রোগ্রাম সাধারণত ভেক্টর / ম্যাট্রিক্স গণনার পাশাপাশি সিপিইউতে জ্যামিতিক ট্রান্সফর্মেশন করে। জিপিইউতে এই গণনাগুলি ভার্টেক্স শেডারগুলিতে স্থান দেওয়ার জন্য কি কেউ সুবিধা পেয়েছে?

উত্তর:


3

সাধারণভাবে বলা: জিপিইউতে জাল রূপান্তরগুলি করা হয়। আপনি জিপিইউতে রূপান্তর ম্যাট্রিক্স প্রেরণ করেন এবং শেডার এটি জালটির সমস্ত উল্লম্ব ক্ষেত্রে প্রয়োগ করে।

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


"জিপিইউতে আসলে ধীর" অংশটি লিখেছে; এটি একটি বিস্তৃত বিবৃতি। আপনি যদি জিপিইউতে প্রতিটি ভার্টেক্সের জন্য ম্যাট্রিক্স তৈরির কথা বলছেন তবে আপনার কর্মক্ষমতা আপনার বাধাগুলির উপর নির্ভর করবে। আপনি কেবলমাত্র GPU তে আবদ্ধ ALU / নিবন্ধিত থাকলে আপনি কেবল ধীর পারফরম্যান্স পাবেন which সিপিইউতে ঠিক একই জিনিসটি করাও এই বিঘ্ন ঘটনার পরিস্থিতিতে ধীর হতে পারে। একটি উদাহরণ যেখানে এই হয় সাধারণত GPU এর মাধ্যমে সম্পন্ন হয়েছে: মাছি উপর প্রান্তবিন্দু শেডার কনস্ট্রাক্ট প্রান্তবিন্দু স্পর্শক স্থান ম্যাট্রিক্স প্রান্তবিন্দু ব্যান্ডউইথ আনতে সংরক্ষণ করুন। আবার, আপনার বাধাগুলির উপর নির্ভরশীল, তাই ওয়াইএমএমভি।
jpever

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

3

নন-জিপিইউ প্রসেসরের উপর অনেক জ্যামিতিক ট্রান্সফর্মেশন করা যেতে পারে, তবে অবশ্যই লক্ষ্য প্ল্যাটফর্মটি বিবেচনা করতে হবে। আপনার মাইলেজটি আপনি কী প্ল্যাটফর্মটি টার্গেট করছেন এবং সেই প্ল্যাটফর্মের বাধা।

একটি বিবেচনা হ'ল জ্যামিতি উত্পন্নকারী ডিভাইস এবং জ্যামিতিটি সরবরাহ করছে এমন ডিভাইসের মধ্যে বাস ব্যান্ডউইদথ।

একটি সাধারণ আধুনিক পিসি সিস্টেমে সিপিইউ পিসিআই বাসের একপাশে থাকে (http://en.wikedia.org/wiki/PCI_Express), এবং অন্যদিকে GPU রয়েছে। আপনি সিপিইউ থেকে জিপিইউতে (এবং তদ্বিপরীত) প্রতি ফ্রেম উত্পন্ন ডেটা স্থানান্তর করতে পারবেন কেবল এই বাসের মাধ্যমে। এর অর্থ, আপনি এই বাসের স্থানান্তর গতি দ্বারা সীমাবদ্ধ হতে পারেন। যদি আপনার টার্গেট প্ল্যাটফর্মটিতে 16 লেনের সাথে পিসিআই 2.x থাকে তবে আপনার 8 জিবি / এস ব্যান্ডউইথ রয়েছে। অনুশীলনে, পিসিআই জুড়ে স্থানান্তরগুলি 100% দক্ষ নয়, কারণ আপনার স্থানান্তরকালে প্রোটোকলের জন্য কিছু ব্যান্ডউইথ গ্রহণ করা হয়। আপনার স্থানান্তরগুলির আকারের উপর নির্ভর করে আপনি প্রতি প্যাকেটের ওভারহেডে আপনার ব্যান্ডউইথের 5-10% হারাতে পারেন।

যেমন। একটি পিসি প্ল্যাটফর্ম দেওয়া হয়েছে যা 16 লেন দিয়ে পিসিআই 2.x চলছে, আপনি জিপিইউতে খাওয়ানোর জন্য প্রতি ফ্রেমে কত ডেটা তৈরি করতে পারবেন? ধরুন আপনি 60fps এ রান চান, এটি পিসিআই 2.x এর জন্য প্রতি ফ্রেম 8 জিবি / 60 = 136 এমবিতে অনুবাদ করে ড্রাইভার যোগাযোগ ওভারহেড এবং পিসিআই ট্রান্সফার প্রোটোকল ওভারহেডের জন্য অ্যাকাউন্টের জন্য কিছু (অনুমানযুক্ত) 90% ফ্যাক্টর দ্বারা গুণন করা, আপনি পিসিআই 2.x ব্যান্ডউইদথ দ্বারা সীমাবদ্ধ না করে প্রতি ফ্রেমে প্রায় 120 এমবি ডেটা তৈরি করতে পারেন।

আপনার আর একটি প্রশ্নের উত্তর দিতে হবে: এই 120Mb ডেটার প্রজন্মটি কী আপনার টার্গেট সিপিইউতে 1/60 তম সেকেন্ডে সহজেই অর্জনযোগ্য হবে? আপনার সিপিইউতে আপনাকে অন্যান্য বেশ কয়েকটি গেমের কার্য সম্পাদন করতে হবে তা মনে রেখে আপনি রূপান্তরিত ডেটা তৈরির জন্য অভাবের মধ্যে চলে যেতে পারেন। খাঁটি ALU থ্রুপুটের ক্ষেত্রে, এটি আপনাকে সিপিইউতে সীমাবদ্ধ করতে পারে। সিএসইউতে সিসমেম বাসের ক্ষেত্রে, আপনি ব্যান্ডউইথ দ্বারাও সীমাবদ্ধ থাকতে পারেন (যা পরিবর্তিত হয়, তবে সাম্প্রতিক সিপিইউগুলিতে প্রায় .5 8.5 গিগাবাইট / গুলি)।

ঠিক আছে, সুতরাং কোন কারণগুলি তখন কোনও জিপিইউতে এটি আরও কার্যকর করতে সক্ষম করে? একটি ফ্যাক্টর হ'ল জিপিইউ মেমরি ব্যান্ডউইথ, যা জিপিইউর মধ্যে ব্যান্ডউইথ এবং এটি স্থানীয় ভিডিও মেমরি। সমসাময়িক মিড-রেঞ্জের জিপিইউগুলিতে এই ভিডিও মেমরি ব্যান্ডউইথটি 200 গিগাবাইট / সেকেন্ড বেশি হতে পারে (হ্যাঁ, এটি পিসিআই 2.x ব্যান্ডউইথ 25x)। আর একটি বিষয় হ'ল জিপিইউ ব্যাপকভাবে সমান্তরাল, শত শত ALU রয়েছে এবং একসাথে কয়েক হাজার থ্রেড চালিয়ে মেমরি অ্যাক্সেসের বিলম্বকে আড়াল করতে সক্ষম।

এই সমস্ত কারণই জিপিইউতে আরও কাজ চালিয়ে যাওয়ার সুস্পষ্ট জয়ে অবদান রাখতে পারে তবে আপনার লক্ষ্য প্ল্যাটফর্মের উপর নির্ভর করে আবার ওয়াইএমএমভি।


1

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

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


প্রশ্নটি পরিষ্কার করতে সহায়তা করতে "জাল রূপান্তর" পরিবর্তন করে "জ্যামিতিক রূপান্তর" করা হয়েছে to আমি ওপেনক্লু এস এর জন্যও অপেক্ষা করছি, যা পরের বছরের প্রথম দিকে পাওয়া যায়।
zmdat

0

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

এমনকি আপনি যদি কাস্টম ইনিশিয়ালাইজেশন প্রোগ্রাম সহ জিপিইউতে হাড়ের রূপান্তর ম্যাট্রিক্সের মতো আপনার ধ্রুবকগুলি গণনা করতে পারেন তবে আপনি সম্ভবত এটি চান না। সমান্তরাল সম্পাদনায় জিপিইউ সত্যিই ভাল তবে ঘড়ির গতি অনেক বেশি।

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

সাধারণ নিয়মটি হ'ল:

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