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

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

এবার WebGPU-এর ফিচার সংখ্যা কিছুটা কম মনে হতে পারে, কিন্তু খুব শীঘ্রই বড় ধরনের উন্নতি আসছে! পরবর্তী রিলিজগুলোতে DP4a, রিড-অনলি ও রিড-রাইট স্টোরেজ টেক্সচার, পৃথক স্টেনসিল ও ডেপথ অ্যাসপেক্ট কন্ট্রোল, 3D টেক্সচার স্লাইসে রেন্ডারিং এবং শেডার কম্পাইলেশনের উন্নতির মতো ফিচার অন্তর্ভুক্ত থাকবে।

এরই মধ্যে, জেনে নিন কীভাবে হেডলেস ক্রোমে WebGPU এবং WebGL সাপোর্টের মাধ্যমে আপনার ওয়েব এআই মডেল টেস্টিংকে আরও শক্তিশালী করবেন এবং কেন ক্রোমে WebGPU নিষ্ক্রিয় থাকতে পারে বা কাজ নাও করতে পারে

কম্প্যাটিবিলিটি মোডের মাধ্যমে পরিধি প্রসারিত করুন (ফিচারটি নির্মাণাধীন)

WebGPU আধুনিক গ্রাফিক্স এপিআই (Vulkan, Metal, এবং D3D12)-এর সাথে ভালোভাবে সামঞ্জস্যপূর্ণ, কিন্তু কিছু ডিভাইসে এগুলোর সাপোর্ট নেই। এটি WebGPU-এর সহজলভ্যতাকে সীমিত করে, বিশেষ করে Windows (৩১% Chrome ব্যবহারকারীর কাছে D3D11.1+ নেই), Android (২৩%-এর কাছে Vulkan 1.1+ নেই) এবং ChromeOS (যেখানে Vulkan-এর ব্যবহার বাড়ছে)-এর মতো প্ল্যাটফর্মগুলোতে।

এই সমস্যার সমাধানের জন্য ক্রোম টিম WebGPU-তে একটি কম্প্যাটিবিলিটি মোড নিয়ে কাজ করছে, যা D3D11 এবং OpenGL ES-এর মতো পুরোনো API-গুলোতে কাজ করার উপযোগী কিছুটা সীমিত সংস্করণ প্রদান করবে। এর ফলে WebGPU-এর সম্ভাব্য ব্যবহারকারীর সংখ্যা বাড়বে।

গুরুত্বপূর্ণ বিষয় হলো, কম্প্যাটিবিলিটি মোড ব্যবহারকারী অ্যাপ্লিকেশনগুলো সম্পূর্ণ বৈধ ওয়েবজিপিইউ অ্যাপ্লিকেশন হিসেবেই থাকে। কম্প্যাটিবিলিটি মোড সমর্থনবিহীন ডিভাইসগুলো স্বয়ংক্রিয়ভাবে কোর ওয়েবজিপিইউ অ্যাডাপ্টার ব্যবহার করবে, যা এর ব্যাপক ব্যবহারযোগ্যতা নিশ্চিত করে।

WebGPU সামঞ্জস্য মোডের ডায়াগ্রাম।
WebGPU সামঞ্জস্য মোডের পরিধি প্রসারিত হয়েছে।

প্রস্তাবটি দেখুন এবং কোনো প্রশ্ন থাকলে মন্তব্য করুন

maxVertexAttributes সীমা বৃদ্ধি করুন

একটি GPURenderPipeline তৈরি করার সময় বাফার জুড়ে মোট অ্যাট্রিবিউটের সর্বোচ্চ সংখ্যা ডিফল্টরূপে ১৬। এখন, সমর্থিত হলে maxVertexAttributes সীমা ব্যবহার করে ৩০টি পর্যন্ত অ্যাট্রিবিউটের জন্য অনুরোধ করা সম্ভব। নিম্নলিখিত উদাহরণ এবং dawn:2223 ইস্যুটি দেখুন।

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

if (adapter.limits.maxVertexAttributes < 30) {
  // When the desired limit isn't supported, take action to either fall back to
  // a code path that does not require the higher limit or notify the user that
  // their device does not meet minimum requirements.
}

// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
  requiredLimits: { maxVertexAttributes: 30 },
});

ভোরের আপডেট

"expose_wgsl_experimental_features" নামে একটি নতুন ইনস্ট্যান্স টগল যোগ করা হয়েছে, যা ইনস্ট্যান্সটিকে শুধুমাত্র পরীক্ষামূলক WGSL ফিচারগুলো প্রকাশ করতে এবং অনিরাপদগুলো নয় এমন ফিচারগুলো প্রকাশ করতে সাহায্য করে। এর ফলে, "allow_unsafe_apis" টগলটি সক্রিয় করার প্রয়োজন ছাড়াই নিরাপদ পরীক্ষামূলক WGSL ফিচারগুলো ব্যবহার করা যাবে। ইস্যু dawn:2260 দেখুন।

Node.js-এর জন্য Dawn বাইন্ডিং- এ সাম্প্রতিক উন্নতিগুলোর মধ্যে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত:

  • GPUSupportedFeatures::getSize() যোগ করা হয়েছে।
  • GPUAdapter পুরনো হয়ে যাওয়া বাস্তবায়ন করা হয়েছে।
  • ডিভাইসগুলোর জন্য GPUInternalError এখন সঠিকভাবে রিপোর্ট করা হয়।
  • অ্যাট্রিবিউটগুলো এখন গণনাযোগ্য।

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

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

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

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

ক্রোম ১৪৬

ক্রোম ১৪৫

ক্রোম ১৪৪

ক্রোম ১৪৩

ক্রোম ১৪২

ক্রোম ১৪১

ক্রোম ১৪০

ক্রোম ১৩৯

ক্রোম ১৩৮

ক্রোম ১৩৭

ক্রোম ১৩৬

ক্রোম ১৩৫

ক্রোম ১৩৪

ক্রোম ১৩৩

ক্রোম ১৩২

ক্রোম ১৩১

ক্রোম ১৩০

ক্রোম ১২৯

ক্রোম ১২৮

ক্রোম ১২৭

ক্রোম ১২৬

ক্রোম ১২৫

ক্রোম ১২৪

ক্রোম ১২৩

ক্রোম ১২২

ক্রোম ১২১

ক্রোম ১২০

ক্রোম ১১৯

ক্রোম ১১৮

ক্রোম ১১৭

ক্রোম ১১৬

ক্রোম ১১৫

ক্রোম ১১৪

ক্রোম ১১৩