আমি ব্যাচেলর প্রজেক্টের জন্য জিপিইউতে আইসোসরফেস অ্যালগরিদমগুলি অন্বেষণ করছি (বিশেষত সত্যিকারের মূল্যবান ক্ষেত্রগুলির চেয়ে কেবলমাত্র বাইনারি / আউট ভক্সেল ডেটাতে মনোনিবেশ করা)। সুতরাং আমার ওপেন ফ্রেমওয়ার্কগুলিতে ভাল পুরাতন মার্চিং কিউবস এবং চলমান সিপিইউ বাস্তবায়ন রয়েছে, এবং এখন এটি জিএলএসএল কম্পিউট শেডারগুলিতে পোর্ট করার চেষ্টা করার পর্যায়ে রয়েছে, এবং ডুব দেওয়ার আগে আমি কী ভুলগুলি দেখতে পাচ্ছি I've এর আগে এটি আমার কাছে সব নতুন।
আমার প্রথম সমস্যাটি কীভাবে দক্ষতার সাথে একটি কাজের গোষ্ঠীতে কয়েক ডজন বা শত থ্রেড জুড়ে একটি অনুসন্ধান সারণী ব্যবহার করতে হয়? আমি বুঝতে পারি যে একটি জিপিইউর বিভিন্ন কাজের জন্য বিভিন্ন ধরণের মেমরি রয়েছে তবে প্রতিটি কীভাবে পরিচালিত হয় বা কোন ধরণের ব্যবহার করতে হবে তা সম্পর্কে পুরোপুরি নিশ্চিত নয়।
পল বোর্কের ক্লাসিক কোপিসপাস্ট টেবিলটি 256 * 16 অ্যারে তাই কোনও স্কেলার বাইট টাইপ ব্যবহার করা হলে এটি সম্ভবত 4 কেবি টেক্সচার বা এসএসবিওতে প্যাক করা যেতে পারে।
প্রশ্নটি হল, কিভাবে বিভিন্ন থ্রেড একে অপরকে ট্রিপিং থেকে থামানো যায়? প্রতিটি ওয়ার্ক গ্রুপের অনেকগুলি কিউবার একইভাবে একই কনফিগারেশন থাকতে পারে তাই একই সাথে একই সময়ে বাফারে একই অবস্থান অ্যাক্সেস করার চেষ্টা করা হচ্ছে। এটি মোকাবেলা করার জন্য কি কোনও কার্যকারিতা বা অপ্টিমাইজেশন রয়েছে?