WebGPU-তে নতুন কী আছে (ক্রোম ১৫১-১৫২)

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

প্রকাশিত: ১২ আগস্ট, ২০২৬

উপগোষ্ঠীর আকার নিয়ন্ত্রণ

WGSL কম্পিউট শেডারে @subgroup_size অ্যাট্রিবিউট ব্যবহার করে একটি কম্পিউট পাইপলাইনের সাবগ্রুপ সাইজ নির্ধারণ করা, নির্দিষ্ট প্ল্যাটফর্মে, যেমন AI ওয়ার্কলোডের ক্ষেত্রে, সাবগ্রুপ অপারেশন ব্যবহার করার সময় কম্পিউট শেডারের পারফরম্যান্স অপ্টিমাইজ করার জন্য উপকারী।

WGSL-এ সাবগ্রুপ সাইজ কন্ট্রোল ব্যবহার করতে, GPUAdapter-এ " subgroup-size-control " ফিচারটি আছে কিনা তা পরীক্ষা করুন, তারপর এই ফিচারটি সক্রিয় করা আছে এমন একটি GPUDevice-এর জন্য অনুরোধ করুন। আপনার WGSL কোডে, স্পষ্টভাবে enable subgroups; এবং enable subgroup_size_control; যোগ করুন। এরপর আপনি ` @subgroup_size অ্যাট্রিবিউটটি ডিক্লেয়ার করতে পারেন, যা নিশ্চিত করবে যে কম্পিউট শেডারটি অ্যাডাপ্টার দ্বারা প্রদত্ত subgroupMinSize এবং subgroupMaxSize এর সীমার মধ্যে একটি নির্দিষ্ট সাবগ্রুপ সাইজে (যা অবশ্যই 2-এর ঘাত হতে হবে) রান করবে, এবং এর সাথে মিলিয়ে @builtin(subgroup_size) সেট করতে হবে। এই অ্যাট্রিবিউটটি ছাড়া, সাবগ্রুপ সাইজটি GPU ড্রাইভার দ্বারা ডাইনামিকভাবে নির্বাচিত হয় এবং এক্সিকিউশনের আগে তা অজানা থাকে।

নিম্নলিখিত উদাহরণ এবং প্রেরণের অভিপ্রায়টি দেখুন।

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("subgroup-size-control")) {
  throw new Error("Subgroup size control support is not available");
}
// Explicitly request subgroup size control support.
const device = await adapter.requestDevice({
  requiredFeatures: ["subgroup-size-control"],
});

const shaderModule = device.createShaderModule({ code: `
  enable subgroups;
  enable subgroup_size_control;

  @subgroup_size(32)
  @compute @workgroup_size(64, 1, 1)
  fn main(@builtin(subgroup_invocation_id) sg_id : u32,
          @builtin(subgroup_size) sg_size : u32) {
     // TODO: Compute shader logic using specific subgroup size.
  }`,
});

তাদের অসামান্য কাজের জন্য ইন্টেলের অংশীদারদের বিশেষ ধন্যবাদ!

setImmediates যাচাইকরণ ব্যর্থতার জন্য OperationError

WebGPU স্পেসিফিকেশনের সাথে সামঞ্জস্য রাখতে, setImmediatesdataOffset বা size এর ভ্যালিডেশন ব্যর্থ হলে RangeError এর পরিবর্তে OperationError থ্রো করা হয়। CL chromium:7977566 দেখুন।

ভোরের আপডেট

snorm10-10-10-2 ভার্টেক্স ফরম্যাটের জন্য পরীক্ষামূলক সাপোর্ট ' allow_unsafe_apis ' টগলের পেছনে উপলব্ধ আছে। wgpu::VertexFormat::Snorm10_10_10_2 ফরম্যাটটি একটি চার-উপাদান বিশিষ্ট ভেক্টরকে উপস্থাপন করে, যেখানে RGB চ্যানেলগুলোর জন্য ১০-বিটের সাইনড নর্মালাইজড ইন্টিজার এবং একটি ২-বিটের আলফা কম্পোনেন্ট থাকে। ইস্যু dawn:536160421 দেখুন।

OpenGL এখন ডেপথ বা স্টেনসিলযুক্ত টেক্সচার ফরম্যাটের জন্য ট্রানজিয়েন্ট অ্যাটাচমেন্ট সমর্থন করে। ইস্যু dawn:462577182 দেখুন।

এখানে কেবল কয়েকটি মূল বিষয় তুলে ধরা হয়েছে। কমিটগুলোর বিস্তারিত তালিকাটি দেখুন।

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

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

ক্রোম ১৫১-১৫২

ক্রোম ১৪৯-১৫০

ক্রোম ১৪৭-১৪৮

ক্রোম ১৪৬

ক্রোম ১৪৫

ক্রোম ১৪৪

ক্রোম ১৪৩

ক্রোম ১৪২

ক্রোম ১৪১

ক্রোম ১৪০

ক্রোম ১৩৯

ক্রোম ১৩৮

ক্রোম ১৩৭

ক্রোম ১৩৬

ক্রোম ১৩৫

ক্রোম ১৩৪

ক্রোম ১৩৩

ক্রোম ১৩২

ক্রোম ১৩১

ক্রোম ১৩০

ক্রোম ১২৯

ক্রোম ১২৮

ক্রোম ১২৭

ক্রোম ১২৬

ক্রোম ১২৫

ক্রোম ১২৪

ক্রোম ১২৩

ক্রোম ১২২

ক্রোম ১২১

ক্রোম ১২০

ক্রোম ১১৯

ক্রোম ১১৮

ক্রোম ১১৭

ক্রোম ১১৬

ক্রোম ১১৫

ক্রোম ১১৪

ক্রোম ১১৩