আমি আমার গ্রিড থেকে আরও প্রসেসিং শক্তি পাওয়ার চেষ্টা করছি।
আমি সমস্ত সিপাস / কোর ব্যবহার করছি, সিপি দিয়ে জিপিইউ ব্যবহার করা কি সম্ভব?
যে কোনও গ্রন্থাগার জানেন বা কোনও নমুনা কোড পেয়েছেন?
আমি আমার গ্রিড থেকে আরও প্রসেসিং শক্তি পাওয়ার চেষ্টা করছি।
আমি সমস্ত সিপাস / কোর ব্যবহার করছি, সিপি দিয়ে জিপিইউ ব্যবহার করা কি সম্ভব?
যে কোনও গ্রন্থাগার জানেন বা কোনও নমুনা কোড পেয়েছেন?
উত্তর:
[ এমনকি এই উত্তরটি বেশ পুরানো হয়ে যাওয়ায় ওসিটি 2017 সম্পাদনা করুন ]
এই উত্তরগুলির বেশিরভাগই বেশ পুরানো, তাই আমি ভেবেছিলাম যে প্রতিটি প্রকল্প কোথায় আছে তার একটি আপডেট সংক্ষিপ্ত বিবরণ দেব:
জিপিইউ.নেট (টাইডপাওয়ার্ড) - আমি 6 মাস বা তার আগেও এটি চেষ্টা করেছি এবং এটি কিছুটা কাজ নিলেও এটি কাজ করে চলেছে। সংকলনের সময় সি # কার্নেল কোডকে চুদাতে রূপান্তর করে। দুর্ভাগ্যক্রমে তাদের ওয়েবসাইটটি ডাউন ছিল এবং কয়েক বছর ধরে তাদের গিথুব আপডেট হয়নি, যা সম্ভবত প্রকল্পটি মারা গেছে ...
চুদাফি - ওপেন সোর্স এবং ব্যবহার করা খুব সহজ। রানটাইমের সময় সি # কার্নেল কোডকে চুদাতে রূপান্তর করে (সিরিয়ালাইজ এবং ক্যাশে করার ক্ষমতা সহ)। সিপিইউতে সহজেই একই কার্নেল কোডটি চালাতে পারে (বেশিরভাগ ডিবাগিংয়ের জন্য)। একাধিক জিপিইউ সমর্থন করে। অন্যদের তুলনায় এখানে আরও উদাহরণ উপলব্ধ। অন্যান্য উত্তর দ্বারা উল্লিখিত বয়লারপ্লেট কোডটি ন্যূনতম এবং আমার ক্ষেত্রে কমপক্ষে কোডটি কীভাবে কাজ করে তা বোঝার ক্ষেত্রে সহায়তা করে। যদিও চুদা / এনভিডিয়া। দুর্ভাগ্যক্রমে, দেখে মনে হচ্ছে যে তারা কয়েক বছরও তাদের সমাধানগুলি আপডেট করেনি (সর্বশেষ প্রতিশ্রুতি 2015 - চুদা 7.0 এর সমর্থন)।
Hybridizer । বাণিজ্যিক সমাধান সি # কে CUDA তে সংকলন করে। ভিজ্যুয়াল স্টুডিও মার্কেটপ্লেসে একটি বিনামূল্যে সম্প্রদায় সংস্করণ এবং গিথুবে নমুনা সরবরাহ করে ।
গ্রাহক জিপিএসের জন্য একটি বিনামূল্যে সম্প্রদায় সংস্করণ সহ আলেয়াজিপিইউ বাণিজ্যিক সমাধান। বিশদ জন্য ড্যানিয়েলের মন্তব্য দেখুন।
ব্রহ্মা - ওপেনসিএল মাধ্যমে লিনকিউ এক্সপ্রেশন চালায় (সুতরাং এটিএমডিও সমর্থন করে)। খুব বেশি ডকুমেন্টেশন / উদাহরণ নেই। ২০১১ সালে সর্বশেষ আপডেট।
সি $ - শেষ বিকাশ 10 বছর আগে শেষ হয়েছিল ...
মাইক্রোসফ্ট এক্সিলারেটর - একইভাবে এটির মতো আর সক্রিয়ভাবে বিকাশমান বলে মনে হচ্ছে না।
কিছু অন্যান্য ( সি ++ এএমপি , ওপেনটিকে - মৃত / ক্লো ) - এর মধ্যে অনেকগুলি কেবল বাইন্ডিং হয় - অর্থাৎ আপনাকে সি # থেকে জিপিইউ কল করতে সক্ষম করে, তবে আপনার কার্নেল কোড (কোডটি যা আসলে জিপিইউতে চালিত হয়) এতে লিখতে হবে সি বা ওপেনসিএল, এর অর্থ আপনাকে অন্য ভাষা ব্যবহার করতে হবে (এবং শিখতে হবে)।
যেমনটি আমি বলেছি, আমি অন্য সকলের উপরে চুদাফিকে সুপারিশ করব - যদি এটি ওপেনসিএল পাশাপাশি চুদাতে চালানো যায় তবে এটি নিখুঁত হবে।
সম্পাদনা SEP 2013 চুদাফি এখন আপনাকে CUDA এবং ওপেনসিএল উভয়ের জন্যই সংকলন করতে দেয় , সুতরাং সমস্ত জিপিইউতে একই সি # কোড চালাবে। এটি দুর্দান্ত শোনায়, যদিও আমি এখনও ওপেনসিএল সংকলন পরীক্ষা করে দেখিনি।
মাইক্রোসফ্ট রিসার্চ এক্সিলারেটর ছিল একটি নেট নেট জিপিইউ লাইব্রেরি।
আমি ব্রহ্মাকে পেয়েছি ... এটিতে একটি জিপিপিইউ সরবরাহকারীও রয়েছে যা জিপিইউতে পদ্ধতি চালানোর অনুমতি দেয় ... প্রশ্নের জন্য ধন্যবাদ ... আজ নতুন কিছু শিখেছে। :)
আমি কি এক্সএনএ গেম স্টুডিওকে অনুসন্ধানের সম্ভাব্য অ্যাভিনিউ হিসাবে সুপারিশ করতে পারি? স্পষ্টতই গেমগুলি লেখার জন্য এটি প্রস্তুত রয়েছে, তবে আপনাকে পরিচালিত ডাইরেক্টএক্স বলার আগে আপনার গ্রাফিক্স কার্ডে অ্যাক্সেস এবং দক্ষতা এনুমুরেশন ফাংশন এবং শেডার বিকাশে আরও ভাল অ্যাক্সেস সরবরাহ করেছে say হাইব্রিড অ্যাপ্লিকেশনগুলিতে উইনফর্ম এবং এক্সএনএ সংযুক্ত করার বিভিন্ন উপায় রয়েছে:
http://www.ziggyware.com/news.php?readmore=866
শেডার প্রোগ্রামিং শেখার ক্ষেত্রে আপনাকে কিছুটা চেষ্টা করতে হবে (এক্সএনএ এইচএলএসএল সমর্থন করে), তবে এটি এনভিডির সিউডিএর মতো কোনও বিক্রেতার-নির্দিষ্ট সমাধান শেখার চেয়ে সহজ পদ্ধতির হতে পারে। সুবিধাটি হ'ল আপনি একটি 100% পরিচালিত পরিবেশে প্রোগ্রাম করতে পারেন। এখানে কিছু এইচএলএসএল লিঙ্ক রয়েছে:
http://www.ziggyware.com/weblinks.php?cat_id=9
জিপিজিইউ সাইটটি সাধারণ উদ্দেশ্যে জিপিইউ প্রোগ্রামিংয়ের জন্য একটি প্রস্তাবিত গন্তব্য:
ভাগ্য সুপ্রসন্ন হোক!
Http://www.tidepowerd.com/ GPU.NET সম্পর্কে কীভাবে ?
এখানে আরও একটি: CUDAfy । এটি জিপিইউ.নেটের মতো শোনাচ্ছে, কোনও পদ্ধতি-গুণমানের মতো সহজ কিছু জিপিইউতে পুরো পদ্ধতিটি চালিত করতে পারে। তবে জিপিইউ.নেটের বিপরীতে, সিইউডিএফাই বিনামূল্যে এবং ওপেন সোর্স।
জিপিইউ.নেটের কোনও বয়লারপ্লিট কোডের প্রয়োজন নেই, যদিও (তাদের ডক্স অনুসারে, এটি "বিল্ড-টুল দ্বারা স্বয়ংক্রিয়ভাবে ইনজেকশন দেওয়া হয়") , যখন সিডিডিএফ করে।
CUDAfy দিয়ে একটি অ্যাপ্লিকেশন তৈরির উদাহরণ এখানে ।
আচ্ছা এটি বেশ পুরানো প্রশ্ন, এবং যেহেতু এটি জিজ্ঞাসা করা হয়েছিল সেগুলি অনেক পরিবর্তন হয়ে গেছে।
জিপিইউ কোড লিখতে। নেট ব্যবহারের জন্য আরেকটি বিকল্প, যা আলেয়া জিপিইউতে উত্তরে কেউ উল্লেখ করেনি । এটি সি #, এফ # এবং ভিবি জুড়ে।
নেট এবং মনো এর জন্য পেশাদার জিপিইউ সফ্টওয়্যার বিকাশের পরিবেশ। সত্যই ক্রস প্ল্যাটফর্ম
এফ # অফিসিয়াল সাইটে, জিপিজিইউ প্রোগ্রামিংয়ে এফ # ব্যবহারের জন্য আলেয়া হ'ল প্রথম বিকল্প ।
এই কাঠামোটি জানার জন্য আমি উদাহরণের এর বিস্তৃত তালিকাটি একবার দেখে নিন ।
ব্রহ্মা ছাড়াও সি $ (উচ্চারণ করা "সি বাক্স") দেখুন। তাদের কোডপ্লেক্স সাইট থেকে :
[সি $] এর লক্ষ্যটি আধুনিক জিপিইউ এবং সিপিইউতে বিরামবিহীন সমান্তরাল প্রোগ্রামিংয়ের জন্য একটি সংহত ভাষা এবং সিস্টেম তৈরি করছে।
এটি সি # এর উপর ভিত্তি করে, অলসভাবে মূল্যায়ন করা হয়েছে এবং একাধিক ত্বকের মডেলকে লক্ষ্য করে:
বর্তমানে উদ্দেশ্যে করা আর্কিটেকচারের তালিকায় জিপিইউ, মাল্টি-কোর সিপিইউ, মাল্টি-জিপিইউ (এস এল এল, ক্রসফায়ার) এবং মাল্টি-জিপিইউ + মাল্টি-সিপিইউ হাইব্রিড আর্কিটেকচার অন্তর্ভুক্ত রয়েছে।
শহরে মাইক্রোসফ্টের একটি নতুন সমাধান রয়েছে - সি ++ এএমপি (অন্তর্ভুক্তি এখানে )।
সি # থেকে ব্যবহার পি / ইনভোকের মাধ্যমে হবে, এখানে ডেস্কটপ অ্যাপ্লিকেশনগুলির জন্য ডেমোড করা হয়েছে , এবং এখানে (কল করবেন না) মেট্রো অ্যাপ্লিকেশনগুলির জন্য।
সম্পাদনা: আমার নোট করা উচিত যে সি ++ এএমপির একটি খোলার স্পেসিফিকেশন রয়েছে যার অর্থ এটি কেবলমাত্র এমএস সংকলক বা উইন্ডোজের জন্য নয়।
সম্পাদনা: আপাতদৃষ্টিতে, প্রযুক্তিটি এখন "রক্ষণাবেক্ষণ মোডে" রয়েছে যার অর্থ তারা বাগগুলি ঠিক করছে তবে সক্রিয়ভাবে বিকাশ করছে না।
সেন্টারস্পেস সফ্টওয়্যারটির তাদের এনএমথ লাইব্রেরিতে জিপিইউ চালিত গণনা রয়েছে যা আপনি সি # প্রকল্পে যুক্ত করতে পারেন। এটি বাণিজ্যিক পণ্য।
আপনি যদি নিজস্ব নিজস্ব অ্যালগরিটিম প্রয়োগ করতে চলেছেন তবে কাস্টম কার্নেলগুলির প্রয়োজন:
আমি সম্প্রতি এই গিথুব সংগ্রহস্থলে আমার একটি ওপেন-সোর্স প্রকল্প আপলোড করেছি যা ওপেনসিএল ব্যবহার করে।
এটি কী করে (আপনি তার উইকি পৃষ্ঠা থেকেও এটি পরীক্ষা করতে পারেন) হ'ল, একাধিক ওপেনসিএল-সক্ষম ডিভাইস এবং ব্যবহারকারীর কাছ থেকে একটি কার্নেল স্ট্রিং নির্বাচন করে সি # বা সি ++ অ্যারে মোড়ক তৈরি করুন এবং তারপরে একটি অটো-লোড-ব্যালেন্সারের সাহায্যে সমস্ত গণনা করুন এবং একটি পিসি থেকে ভাল দক্ষতা পেতে পাইপলাইনার (বিলম্বগুলি আড়াল করতে)
এটির ব্যবহারের উদাহরণ এখানে রয়েছে (1024 ওয়ার্কাইটেম সমস্ত ডিভাইসে বিভক্ত, প্রতিটি কোড একই চলমান তবে বিভিন্ন ডেটা এবং থ্রেডআইড ব্যবহার করে):
// select all GPUs and all CPUs in same pc
ClNumberCruncher gpuCpu = new ClNumberCruncher(AcceleratorType.GPU | AcceleratorType.CPU, @"
__kernel void distributeTanh(__global float * data,__global int * data2)
{
int threadId=get_global_id(0);
data[threadId]=tanh(data[threadId]);
data2[threadId]=threadId;
}
");
// a wrapper that can hold C# or C++ arrays
ClArray<float> data = new ClArray<float>(1024);
ClArray<int> data2 = new int[1024];
// load-balances "distributeTanh" on all devices more fairly
// at each repeatation of this line with same compute-id(1 here)
data.nextParam(data2).compute(gpuCpu, 1, "distributeTanh", 1024);
// threadId in kernel receives unique continuous id value for all work
// either it is in cpu or gpu doesn't matter
// compute method also has parameters to enable pipelining to
// elliminate buffer copy latencies or compute latencies
যখন সমস্ত আর ব্যবহার করা হয় না, তারা তাদের ধ্বংসকারীদের সাথে সমস্ত সি ++ সংস্থান ছেড়ে দেয় release
তবে এটি পরিপক্ক নয়, তাই গিথুব সমস্যা ট্যাবে কোনও "সমস্যা" যুক্ত করতে নির্দ্বিধায় মনে করুন। মাল্টি-পিসি-ক্লাস্টার প্রাসঙ্গিক ক্লাসগুলি এখনও কাজ করছে না এবং এখনও ইংরেজিতে অনুবাদ করা হয়নি তবে এটি কমপক্ষে একক পিসিতে সমস্ত ডিভাইস ব্যবহার করতে পারে।
ডাব্লুপিএফ এছাড়াও জিপিইউ ব্যবহার করে এবং আপনি এইচএলএসএল ব্যবহার করে কাস্টম শেডার যুক্ত করতে পারেন।