WebGPU-তে নতুন কী আছে (ক্রোম ১৪৭-১৪৮)

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

প্রকাশিত: ২২ এপ্রিল, ২০২৬

WGSL রৈখিক_সূচীকরণ এক্সটেনশন

WGSL ল্যাঙ্গুয়েজ এক্সটেনশন linear_indexing আপনাকে ওয়ার্কগ্রুপে নিম্নলিখিত বিল্ট-ইন ভ্যালুগুলো ব্যবহার করার সুযোগ দেয়:

  • global_invocation_index : মোট কম্পিউট শেডার গ্রিডের মধ্যে বর্তমান ইনভোকেশনের রৈখিক অবস্থান। এটি একটি u32 ইনপুট মান যা global_invocation_id , workgroup_size , এবং num_workgroups উপর ভিত্তি করে গণনা করা হয়।

  • workgroup_index : সামগ্রিক কম্পিউট শেডার গ্রিডের মধ্যে বর্তমান ওয়ার্কগ্রুপের রৈখিক অবস্থান। এটি একটি u32 ইনপুট মান, যেখানে একই ওয়ার্কগ্রুপের অন্তর্গত সমস্ত ইনভোকেশন একই ইনডেক্স ব্যবহার করে।

এই এক্সটেনশনটি 3D স্থানাঙ্ক থেকে ম্যানুয়াল সূচক গণনার সমস্যার সমাধান করে, যা একটি পুনরাবৃত্তিমূলক এবং ত্রুটিপ্রবণ প্রক্রিয়া। এই লজিকটিকে সরাসরি ভাষার মধ্যে নিয়ে আসার মাধ্যমে, WGSL কোডের পঠনযোগ্যতা উন্নত করে এবং সাধারণ পুনরাবৃত্তিমূলক গণনাগুলো দূর করে।

এই ল্যাঙ্গুয়েজ এক্সটেনশনটি navigator.gpu.wgslLanguageFeatures ব্যবহার করে ফিচার-ডিটেক্ট করা যেতে পারে। নিম্নলিখিত উদাহরণ এবং শিপ করার ইন্টেন্টটি দেখুন।

if (!navigator.gpu.wgslLanguageFeatures.has("linear_indexing")) {
  throw new Error(`WGSL global_invocation_index and workgroup_index built-in values are not available`);
}

const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

const shaderModule = device.createShaderModule({ code: `
  requires linear_indexing;

  override x : u32;
  override y : u32;
  override z : u32;

  @compute @workgroup_size(x, y, z)
  fn main(@builtin(workgroup_index) wg_index : u32,
          @builtin(global_invocation_index) g_index : u32) {

  // The workgroup_index built-in value is equivalent to:
  // (@builtin(workgroup_id).x +
  // (@builtin(workgroup_id).y * @builtin(num_workgroups).x) +
  // (@builtin(workgroup_id).z * @builtin(num_workgroups).x * @builtin(num_workgroups).y))

  // The global_invocation_index built-in value is equivalent to:
  // (@builtin(global_invocation_id).x +
  // (@builtin(global_invocation_id).y * x * @builtin(num_workgroups).x) +
  // (@builtin(global_invocation_id).z * x * @builtin(num_workgroups).x * y * @builtin(num_workgroups).y))
  }`,
});

লিনাক্সে এনভিডিয়ার ওয়েবজিপিইউ

লিনাক্সে আগেভাগে WebGPU চালু করার পর, Wayland-এও আধুনিক NVIDIA ড্রাইভার (2024-05) অন্তর্ভুক্ত করার জন্য এর সমর্থন প্রসারিত হচ্ছে। ইস্যু 442791440 দেখুন।

ভোরের আপডেট

wgpu::FeatureName::AdapterPropertiesDRM , যা শুধুমাত্র Vulkan-এ উপলব্ধ, আপনাকে অ্যাডাপ্টার সম্পর্কিত Linux DRM তথ্য জিজ্ঞাসা করার সুযোগ দেয়। Dawn CL 299575 দেখুন।

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

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

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

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

ক্রোম ১৪৬

ক্রোম ১৪৫

ক্রোম ১৪৪

ক্রোম ১৪৩

ক্রোম ১৪২

ক্রোম ১৪১

ক্রোম ১৪০

ক্রোম ১৩৯

ক্রোম ১৩৮

ক্রোম ১৩৭

ক্রোম ১৩৬

ক্রোম ১৩৫

ক্রোম ১৩৪

ক্রোম ১৩৩

ক্রোম ১৩২

ক্রোম ১৩১

ক্রোম ১৩০

ক্রোম ১২৯

ক্রোম ১২৮

ক্রোম ১২৭

ক্রোম ১২৬

ক্রোম ১২৫

ক্রোম ১২৪

ক্রোম ১২৩

ক্রোম ১২২

ক্রোম ১২১

ক্রোম ১২০

ক্রোম ১১৯

ক্রোম ১১৮

ক্রোম ১১৭

ক্রোম ১১৬

ক্রোম ১১৫

ক্রোম ১১৪

ক্রোম ১১৩