WebGPU (Chrome 134) এ নতুন কি আছে

ফ্রাঁসোয়া বিউফোর্ট
François Beaufort

প্রকাশিত: ফেব্রুয়ারি 26, 2025

সাবগ্রুপগুলির সাথে মেশিন-লার্নিং ওয়ার্কলোড উন্নত করুন

এক বছরের উন্নয়ন ও পরীক্ষা-নিরীক্ষার পর, SIMD-স্তরের সমান্তরালতা সক্ষম করে এমন সাবগ্রুপ WebGPU বৈশিষ্ট্য এখন উপলব্ধ। এটি একটি ওয়ার্কগ্রুপের থ্রেডগুলিকে যোগাযোগ করতে এবং সম্মিলিত গণিত ক্রিয়াকলাপ সম্পাদন করতে দেয়, যেমন সংখ্যার যোগফল গণনা করা এবং ক্রস-থ্রেড ডেটা ভাগ করার জন্য একটি কার্যকর পদ্ধতি অফার করে। মূল প্রস্তাব এবং ক্রোমেস্ট্যাটাস এন্ট্রি দেখুন।

রেফারেন্সের জন্য, Google Meet অরিজিন ট্রায়ালের সময় কিছু ডিভাইসে ম্যাট্রিক্স-ভেক্টর মাল্টিপ্লাই শেডারের জন্য প্যাক করা পূর্ণসংখ্যা ডট পণ্যের বিপরীতে সাবগ্রুপের বেঞ্চমার্কিং করার সময় 2.3-2.9 গুণ গতি বৃদ্ধি পেয়েছে।

যখন একটি GPUAdapter"subgroups" বৈশিষ্ট্য উপলব্ধ থাকে, তখন WGSL-এ সাবগ্রুপ সমর্থন পেতে এই বৈশিষ্ট্য সহ একটি GPUDevice অনুরোধ করুন। subgroupMinSize এবং subgroupMaxSize অ্যাডাপ্টারের তথ্যের মানগুলি পরীক্ষা করা সহায়ক—উদাহরণস্বরূপ, যদি আপনার কাছে একটি হার্ডকোডড অ্যালগরিদম থাকে যার জন্য একটি নির্দিষ্ট আকারের একটি সাবগ্রুপ প্রয়োজন।

আপনাকে আপনার ডাব্লুজিএসএল কোডে এই এক্সটেনশনটি সুস্পষ্টভাবে সক্ষম করতে হবে enable subgroups; কম্পিউট এবং ফ্র্যাগমেন্ট শেডার উভয় পর্যায়ে নিম্নলিখিত বিল্ট-ইন মানগুলিতে অ্যাক্সেস পেতে:

  • subgroup_invocation_id : সাবগ্রুপের মধ্যে থ্রেডের সূচকের জন্য একটি অন্তর্নির্মিত মান।

  • subgroup_size : সাবগ্রুপ সাইজ অ্যাক্সেসের জন্য একটি অন্তর্নির্মিত মান।

অসংখ্য সাবগ্রুপ বিল্ট-ইন ফাংশন (উদাহরণস্বরূপ, subgroupAdd() , subgroupBallot() , subgroupBroadcast() , subgroupShuffle() ) একটি সাবগ্রুপের মধ্যে আহ্বানের মধ্যে দক্ষ যোগাযোগ এবং গণনা সক্ষম করে। এই সাবগ্রুপ অপারেশনগুলিকে একক-নির্দেশনা মাল্টিপল-থ্রেড (SIMT) অপারেশন হিসাবে শ্রেণীবদ্ধ করা হয়। উপরন্তু, কোয়াড বিল্ট-ইন ফাংশন , যা একটি কোয়াড ইনভোকেশনে কাজ করে, কোয়াডের মধ্যে ডেটা যোগাযোগ সহজতর করে।

আপনি যখন "shader-f16" এবং "subgroups" উভয় বৈশিষ্ট্য সহ একটি GPUDevice অনুরোধ করেন তখন আপনি সাবগ্রুপের সাথে f16 মান ব্যবহার করতে পারেন।

নিম্নোক্ত নমুনাটি সাবগ্রুপ অন্বেষণের জন্য একটি ভাল সূচনা বিন্দু: এটি একটি শেডার দেখায় যা মধ্যবর্তী ফলাফলের জন্য মেমরি পড়া বা না লিখে ফ্যাক্টোরিয়াল গণনা করতে subgroupExclusiveMul() বিল্ট-ইন ফাংশন ব্যবহার করে।

মিশ্রনযোগ্য হিসাবে ফ্লোট ফিল্টারযোগ্য টেক্সচার প্রকার সমর্থন সরান

এখন যেহেতু 32-বিট ফ্লোট টেক্সচার ব্লেন্ডিং "float32-blendable" বৈশিষ্ট্যের সাথে উপলব্ধ, ফ্লোট ফিল্টারযোগ্য টেক্সচারের প্রকারের মিশ্রনযোগ্য হিসাবে ভুল সমর্থন মুছে ফেলা হয়েছে। সংখ্যা 364987733 দেখুন।

ভোরের আপডেট

Dawn-এর এখন macOS 11 এবং iOS 14 প্রয়োজন এবং শুধুমাত্র মেটাল 2.3+ সমর্থন করে। সংখ্যা 381117827 দেখুন।

wgpu::Instance নতুন GetWGSLLanguageFeatures() পদ্ধতি এখন EnumerateWGSLLanguageFeatures() প্রতিস্থাপন করে। সংখ্যা 368672124 দেখুন।

নিম্নলিখিত বাইন্ডিং টাইপগুলির একটি Undefined মান রয়েছে এবং বাইন্ডিং লেআউটে তাদের ডিফল্ট মানগুলি পরিবর্তন করা হয়েছে। সংখ্যা 377820810 দেখুন।

  • wgpu::BufferBindingType::Undefined এখন Uniform
  • wgpu::SamplerBindingType::Undefined এখন Filtering
  • wgpu::TextureSampleType::Undefined এখন Float
  • wgpu::StorageTextureAccess::Undefined এখন শুধুমাত্র WriteOnly

এটি শুধুমাত্র কিছু মূল হাইলাইট কভার করে। কমিটের সম্পূর্ণ তালিকা দেখুন।

WebGPU-তে নতুন কি আছে

ওয়েবজিপিইউ সিরিজে নতুন কী কভার করা হয়েছে তার একটি তালিকা।

ক্রোম 134

ক্রোম 133

ক্রোম 132

ক্রোম 131

ক্রোম 130

ক্রোম 129

ক্রোম 128

ক্রোম 127

ক্রোম 126

ক্রোম 125

ক্রোম 124

ক্রোম 123

ক্রোম 122

ক্রোম 121

ক্রোম 120

ক্রোম 119

ক্রোম 118

ক্রোম 117

ক্রোম 116

ক্রোম 115

ক্রোম 114

ক্রোম 113