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

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

প্রকাশিত: ২৬ ফেব্রুয়ারী, ২০২৫

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

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

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

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

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

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

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

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

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

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

ফ্লোট ফিল্টারেবল টেক্সচার টাইপ সাপোর্টকে ব্লেন্ডেবল হিসেবে সরিয়ে দিন

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

ভোরের আপডেট

ডন-এর এখন macOS 11 এবং iOS 14 প্রয়োজন এবং এটি শুধুমাত্র Metal 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-তে নতুন কী আছে

" What's New in WebGPU" সিরিজে যা যা আলোচনা করা হয়েছে তার একটি তালিকা।

ক্রোম ১৪২

ক্রোম ১৪১

ক্রোম ১৪০

ক্রোম ১৩৯

ক্রোম ১৩৮

ক্রোম ১৩৭

ক্রোম ১৩৬

ক্রোম ১৩৫

ক্রোম ১৩৪

ক্রোম ১৩৩

ক্রোম ১৩২

ক্রোম ১৩১

ক্রোম ১৩০

ক্রোম ১২৯

ক্রোম ১২৮

ক্রোম ১২৭

ক্রোম ১২৬

ক্রোম ১২৫

ক্রোম ১২৪

ক্রোম ১২৩

ক্রোম ১২২

ক্রোম ১২১

ক্রোম ১২০

ক্রোম ১১৯

ক্রোম ১১৮

ক্রোম ১১৭

ক্রোম ১১৬

ক্রোম ১১৫

ক্রোম ১১৪

ক্রোম ১১৩