জিপিইউ প্রোগ্রামিংয়ের পরিচয় [বন্ধ]


176

প্রত্যেকেরই একটি গ্রাফিক্স কার্ড জিপিইউ আকারে এই ডেস্কটপে বিশাল আকারের সমান্তরাল সুপার কম্পিউটার রয়েছে has

  • জিপিইউ সম্প্রদায়ের "হ্যালো ওয়ার্ল্ড" সমতুল্য কী?
  • প্রধান জিপিইউ বিক্রেতাদের জিপিইউ প্রোগ্রামিং শুরু করতে আমি কী করব, আমি কোথায় যাব?

-Adam


1
আপনি কি জিপিপিইউ, বা গ্রাফিক্স কোডিং সম্পর্কে কথা বলছেন?
মেনকবয়

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

1
রেফারেন্সের জন্য, একটি শেষ প্রজন্মের জিফোর্স 8800 এর 128 স্ট্রিম প্রসেসর রয়েছে ~ 1.3 গিগাহার্টজ এ, জিটিএক্স 280 লাইনের শীর্ষে 240 স্ট্রিম প্রসেসর রয়েছে, এই জিপিইউগুলির তাত্ত্বিক পারফরম্যান্স যথাক্রমে 0.5 এবং 0.9 টেরিএফএলপিএস হয়।
ওয়েজ

উত্তর:


70

এনভিডিয়া CUDA দেখুন, আইএমও এটি জিপিইউ প্রোগ্রামিংয়ের সবচেয়ে সহজ প্ল্যাটফর্ম। এখানে প্রচুর শীতল উপকরণ পড়তে হবে। http://www.nvidia.com/object/cuda_home.html

হ্যালো ওয়ার্ল্ড হ'ল জিপিইউ ব্যবহার করে যে কোনও ধরণের গণনা করা।

আশা করি এইটি কাজ করবে.


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

9

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

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

আরও তথ্যের জন্য এই উপস্থাপনা দেখুন:

http://www.gpgpu.org/sc2007/SC07_CUDA_5_Optimization_Harris.pdf


7

কটাক্ষপাত এটিআই স্ট্রিম কম্পিউটিং SDK এর । এটি স্টানফোর্ডে উন্নত ব্রুকজিপিইউ-এর উপর ভিত্তি করে ।

ভবিষ্যতে সমস্ত জিপিইউ কাজ ওপেনসিএল ব্যবহার করে মানক করা হবে । এটি একটি অ্যাপল-স্পনসরড উদ্যোগ যা গ্রাফিক্স কার্ড বিক্রেতার নিরপেক্ষ হবে।


7

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

এটি এখনও তার তুলনামূলক প্রাথমিক পর্যায়ে রয়েছে (এই উত্তর হিসাবে 1.1), তবে শিল্পে কিছুটা অর্জন পেয়েছে - উদাহরণস্বরূপ এটি ওএস এক্স 10.5 এবং তারপরের উপর স্থানীয়ভাবে সমর্থিত।


6

CUDA শুরু করার জন্য একটি দুর্দান্ত কাঠামো। এটি আপনাকে সিপিতে জিপিপিইউ কার্নেল লিখতে দেয় The সংকলকটি আপনার কোড থেকে জিপিইউ মাইক্রোকোড তৈরি করবে এবং সিপিইউতে চালিত সমস্ত কিছু আপনার নিয়মিত সংকলককে প্রেরণ করবে। এটি কেবল এনভিআইডিআইএ এবং কেবল 8-সিরিজ কার্ড বা আরও ভালর জন্য কাজ করে। আপনি চেক আউট করতে পারেন CUDA জোন তা দেখতে এটা দিয়ে করা যাবে। চুদা এসডিকে কিছু দুর্দান্ত ডেমো রয়েছে । SDK এর সাথে যে ডকুমেন্টেশন আসে তা আসলে কোড লেখার জন্য একটি খুব ভাল সূচনা পয়েন্ট। এটি আপনাকে ম্যাট্রিক্সের গুণিত কার্নেল লেখার পথে চলবে, যা শুরু করার জন্য দুর্দান্ত জায়গা।


5

সিইউডিএ বা ওপেনসিএল না পেয়ে জিপিইউ প্রোগ্রামিংয়ে যাওয়ার আরও একটি সহজ উপায় হ'ল ওপেনসিসি এর মাধ্যমে এটি করা ।

ওপেনসিসি জিপিইউতে কাজ প্রেরণের জন্য সংকলক নির্দেশনা (যেমন #pragma acc kernels) সহ ওপেনএমপি-এর মতো কাজ করে। উদাহরণস্বরূপ, আপনার যদি একটি বড় লুপ থাকে (কেবলমাত্র বৃহত্তরগুলি সত্যিই উপকৃত হয়):

int i;
float a = 2.0;
float b[10000];
#pragma acc kernels
for (i = 0; i < 10000; ++i) b[i] = 1.0f;
#pragma acc kernels
for (i = 0; i < 10000; ++i) {
  b[i] = b[i] * a;
}

সম্পাদনা করুন: দুর্ভাগ্যক্রমে, কেবলমাত্র পিজিআই সংকলক এনভিডিআইএ জিপিইউ কার্ডগুলির জন্য এখনই সত্যই ওপেনসিসি সমর্থন করে।


3

ব্যবহার করে দেখুন জিপিইউ ++, এবং libSh

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


3

আপনি যদি ম্যাটল্যাব ব্যবহার করেন তবে প্রযুক্তিগত কম্পিউটিংয়ের জন্য ম্যাট্রিক্স গণনা এবং ভারী গণিত / নম্বর ক্রাঞ্চিংয়ের জন্য জিপিইউ ব্যবহার করা বেশ সহজ হয়ে যায়। আমি গেমিংয়ের বাইরে জিপিইউ কার্ড ব্যবহারের জন্য এটি দরকারী মনে করি। নিচের লিঙ্কটি দেখুন:

http://www.mathworks.com/discovery/matlab-gpu.html

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