উপগোষ্ঠী নিয়ে পরীক্ষা-নিরীক্ষা
সাবগ্রুপ ফিচারটি SIMD-স্তরের প্যারালালিজম সক্ষম করে, যার ফলে একটি গ্রুপের অন্তর্ভুক্ত থ্রেডগুলো একে অপরের সাথে যোগাযোগ করতে এবং সম্মিলিত গাণিতিক অপারেশন (যেমন, ১৬টি সংখ্যার যোগফল গণনা করা) সম্পাদন করতে পারে। এটি ক্রস-থ্রেড ডেটা শেয়ারিংয়ের একটি অত্যন্ত কার্যকর মাধ্যম প্রদান করে।
সাবগ্রুপ প্রস্তাবনাটির একটি সংক্ষিপ্ত বাস্তবায়ন স্থানীয় পরীক্ষার জন্য chrome://flags/#enable-unsafe-webgpu -এ থাকা "Unsafe WebGPU Support" ফ্ল্যাগটির পেছনে উপলব্ধ আছে।
আপনি অরিজিন ট্রায়ালের জন্য সাইন আপ করে আসল ব্যবহারকারীদের দিয়ে আপনার সাইটে সাবগ্রুপগুলোও পরীক্ষা করে দেখতে পারেন। অরিজিন ট্রায়াল ব্যবহারের জন্য আপনার সাইট কীভাবে প্রস্তুত করবেন, তার নির্দেশাবলীর জন্য ‘অরিজিন ট্রায়াল দিয়ে শুরু করুন’ পড়ুন। অরিজিন ট্রায়ালটি ক্রোম ১২৮ থেকে ১৩১ পর্যন্ত চলবে (যা ১৯ ফেব্রুয়ারি, ২০২৫-এ শেষ হবে)। ‘পরীক্ষার অভিপ্রায়’ দেখুন।
যখন কোনো GPUAdapter এ "subgroups" ফিচারটি উপলব্ধ থাকে, তখন WGSL-এ সাবগ্রুপ সাপোর্ট পাওয়ার জন্য এই ফিচারযুক্ত একটি GPUDevice জন্য অনুরোধ করুন এবং এর minSubgroupSize ও maxSubgroupSize সীমাগুলো পরীক্ষা করুন।
আপনাকে আপনার WGSL কোডে ` enable subgroups; ব্যবহার করে এই এক্সটেনশনটি স্পষ্টভাবে সক্রিয় করতে হবে। সক্রিয় করা হলে, আপনি নিম্নলিখিত অতিরিক্ত সুবিধাগুলো পাবেন:
-
subgroup_invocation_id: সাবগ্রুপের মধ্যে থ্রেডের সূচকের জন্য একটি বিল্ট-ইন মান। -
subgroup_size: সাবগ্রুপের আকার অ্যাক্সেস করার জন্য একটি বিল্ট-ইন মান। -
subgroupBallot(value): এক সেট বিট ফিল্ড রিটার্ন করে, যেখানে সেই সক্রিয় ইনভোকেশনের জন্যvaluetrue হলেsubgroup_invocation_idএর সংশ্লিষ্ট বিটটির মান 1 হয় এবং অন্যথায় 0 হয়। -
subgroupBroadcast(value, id):idসাথে মেলে এমনsubgroup_invocation_idসহ ইনভোকেশন থেকেvalueসাবগ্রুপের মধ্যে থাকা সমস্ত ইনভোকেশনে ব্রডকাস্ট করে। দ্রষ্টব্য:idঅবশ্যই একটি কম্পাইল-টাইম কনস্ট্যান্ট হতে হবে।
ভবিষ্যতে subgroupAdd , subgroupAll , subgroupElect , subgroupShuffle এর মতো আরও বিল্ট-ইন ফাংশন যোগ করা হবে। ইস্যু 354738715 দেখুন।
সাবগ্রুপ অপারেশনে f16 ব্যবহারের অনুমতি দিতে, "subgroups" , "subgroups-f16" , এবং "shader-f16" ফিচারগুলোসহ একটি GPUDevice জন্য অনুরোধ করুন, তারপর আপনার WGSL কোডে enable f16, subgroups, subgroups_f16; কমান্ড ব্যবহার করে এটি সক্রিয় করুন।
নিম্নলিখিত কোড স্নিপেটটি সাবগ্রুপগুলির সম্ভাবনা নিয়ে পরীক্ষা-নিরীক্ষা ও আবিষ্কার করার জন্য একটি ভিত্তি প্রদান করে।
const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("subgroups")) {
throw new Error("Subgroups support is not available");
}
// Explicitly request subgroups support.
const device = await adapter.requestDevice({
requiredFeatures: ["subgroups"],
});
const shaderModule = device.createShaderModule({ code: `
enable subgroups;
var<workgroup> wgmem : u32;
@group(0) @binding(0)
var<storage, read> inputs : array<u32>;
@group(0) @binding(1)
var<storage, read_write> output : array<u32>;
@compute @workgroup_size(64)
fn main(@builtin(subgroup_size) subgroupSize : u32,
@builtin(subgroup_invocation_id) id : u32,
@builtin(local_invocation_index) lid : u32) {
// One thread per workgroup writes the value to workgroup memory.
if (lid == 0) {
wgmem = inputs[lid];
}
workgroupBarrier();
var v = 0u;
// One thread per subgroup reads the value from workgroup memory
// and shares that value with every other thread in the subgroup
// to reduce local memory bandwidth.
if (id == 0) {
v = wgmem;
}
v = subgroupBroadcast(v, 0);
output[lid] = v;
}`,
});
// Send the appropriate commands to the GPU...
লাইন এবং পয়েন্টের জন্য ডেপথ বায়াস সেট করা অপ্রচলিত।
WebGPU স্পেসিফিকেশনের একটি পরিবর্তনের ফলে, যখন কোনো রেন্ডার পাইপলাইনের টপোলজি লাইন বা পয়েন্ট টাইপের হয়, তখন depthBias , depthBiasSlopeScale , এবং depthBiasClamp কোনো অশূন্য মানে সেট করা একটি ভ্যালিডেশন এরর হিসেবে গণ্য হবে। ডেভেলপারদের তাদের কোড আপডেট করার জন্য যথেষ্ট সময় দিতে, এই আসন্ন ভ্যালিডেশন সম্পর্কে DevTools কনসোলে একটি সতর্কবার্তা দেখানো হয় এবং একই সাথে এই পরিস্থিতিতে মানগুলোকে ০-তে সেট করতে বাধ্য করা হয়। ইস্যু 352567424 দেখুন।
preventDefault ব্যবহার করলে ক্যাপচার না করা ত্রুটির DevTools সতর্কতা লুকান
DevTools কনসোলে, uncapturederror ইভেন্টের জন্য সতর্কবার্তা আর প্রদর্শিত হয় না, যদি uncapturederror এর জন্য একটি ইভেন্ট লিসেনার রেজিস্টার করা থাকে এবং সেই ইভেন্ট লিসেনারের কলব্যাকের মধ্যে preventDefault() ` মেথডটি কল করা হয়ে থাকে। এই আচরণটি জাভাস্ক্রিপ্টের ইভেন্ট হ্যান্ডলিংয়ের সাথে মিলে যায়। নিম্নলিখিত উদাহরণ এবং ইস্যু 40263619 দেখুন।
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
device.addEventListener("uncapturederror", (event) => {
// Prevents browser warning to show up in the DevTools Console.
event.preventDefault();
// TODO: Handle event.error
});
WGSL প্রথমে ইন্টারপোলেট স্যাম্পলিং করে এবং হয়
WGSL interpolate অ্যাট্রিবিউট আপনাকে ব্যবহারকারী-সংজ্ঞায়িত IO ডেটা ইন্টারপোলেশন পরিচালনা করতে দেয়। এখন, নতুন interpolate স্যাম্পলিং প্যারামিটার first (ডিফল্ট) এবং either আপনাকে অতিরিক্ত নিয়ন্ত্রণ দেয়: first প্রিমিটিভের প্রথম ভার্টেক্সের মান ব্যবহার করে, যেখানে either প্রথম বা শেষ ভার্টেক্স উভয়কেই অনুমতি দেয়। ইস্যু 340278447 দেখুন।
ভোরের আপডেট
অ্যাসিঙ্ক্রোনাস অপারেশন পরিচালনার জন্য ডন-এর WGPUFuture-এর বাস্তবায়ন এখন সম্পূর্ণ হয়েছে। এর মূল ধারণাগুলোর মধ্যে রয়েছে সুযোগসন্ধানী ইভেন্ট প্রক্রিয়াকরণের জন্য wgpuInstanceProcessEvents এবং কলব্যাক লোকেশন নির্ধারণের জন্য WGPUCallbackMode । WGPUFuture অসীম জীবনকালসহ এককালীন ইভেন্টকে বোঝায়, এবং wgpuInstanceWaitAny যেকোনো ফিউচারের সমাপ্তি বা টাইমআউটের জন্য অপেক্ষা করে। ইস্যু 42240932 দেখুন।
Surface::GetCapabilities() এখন CompositeAlphaMode::Auto মানটি রিপোর্ট করে না। এটি এখনও বৈধ, এবং Surface::GetCapabilities().alphaMode[0] এর সমতুল্য। ইস্যু 292 দেখুন।
OpenGL ব্যাকএন্ড এখন প্রতিটি Present() কলের জন্য একটি y-ফ্লিপ ব্লিট সহ Surface সমর্থন করে। ইস্যু 344814083 দেখুন।
Adapter::GetProperties() মেথডটি এখন আর ব্যবহার করা হয় না এবং এর পরিবর্তে Adapter::GetInfo() মেথডটি ব্যবহৃত হয়।
বহিরাগত অবদানকারী যশোবন্ত সমস্ত CMake ফাইল নতুন করে লিখেছেন, যার ফলে সেগুলি আপডেট করা আরও সহজ হয়েছে এবং প্রি-বিল্ড করা সম্ভব হয়েছে। CMake প্রোজেক্টে Dawn ব্যবহার করার জন্য কুইকস্টার্ট গাইডটি দেখুন।
এখানে কেবল কয়েকটি মূল বিষয় তুলে ধরা হয়েছে। কমিটগুলোর বিস্তারিত তালিকাটি দেখুন।
WebGPU-তে নতুন কী আছে
'What's New in WebGPU' সিরিজে যা যা আলোচনা করা হয়েছে, তার একটি তালিকা।
ক্রোম ১৪৭-১৪৮
ক্রোম ১৪৬
- OpenGL ES 3.1-এ WebGPU সামঞ্জস্যপূর্ণ মোড সমর্থন করে
- ক্ষণস্থায়ী সংযুক্তি
- WGSL টেক্সচার_এবং_স্যাম্পলার_লেট এক্সটেনশন
- ভোরের আপডেট
ক্রোম ১৪৫
- WGSL উপগোষ্ঠী_একরূপতা সম্প্রসারণ
- ওয়ার্কারদের মধ্যে পরীক্ষামূলক সিঙ্ক্রোনাস বাফার ম্যাপিং
- ভোরের আপডেট
ক্রোম ১৪৪
- WGSL উপগোষ্ঠী_আইডি এক্সটেনশন
- WGSL uniform_buffer_standard_layout এক্সটেনশন
- লিনাক্সে ওয়েবজিপিইউ
- দ্রুততর writeBuffer এবং writeTexture
- ভোরের আপডেট
ক্রোম ১৪৩
ক্রোম ১৪২
ক্রোম ১৪১
- টিন্ট আইআর সম্পন্ন হয়েছে
- WGSL কম্পাইলারে পূর্ণসংখ্যার পরিসর বিশ্লেষণ
- ভুলকান ব্যাকএন্ডের জন্য SPIR-V 1.4 আপডেট
- ভোরের আপডেট
ক্রোম ১৪০
- ডিভাইস অ্যাডাপ্টার ব্যবহারের অনুরোধ করে।
- যেখানে টেক্সচার ভিউ ব্যবহৃত হয়, সেখানে টেক্সচার ব্যবহারের সংক্ষিপ্ত রূপ।
- WGSL textureSampleLevel 1D টেক্সচার সমর্থন করে
- bgra8unorm রিড-অনলি স্টোরেজ টেক্সচারের ব্যবহার অপ্রচলিত করুন
- GPUAdapter isFallbackAdapter অ্যাট্রিবিউটটি সরান
- ভোরের আপডেট
ক্রোম ১৩৯
- BC এবং ASTC কম্প্রেসড ফরম্যাটের জন্য 3D টেক্সচার সাপোর্ট
- নতুন 'কোর-ফিচার-অ্যান্ড-লিমিটস' ফিচার
- WebGPU সামঞ্জস্য মোডের জন্য Origin ট্রায়াল
- ভোরের আপডেট
ক্রোম ১৩৮
- বাইন্ডিং রিসোর্স হিসেবে বাফার ব্যবহারের সংক্ষিপ্ত রূপ
- তৈরির সময় ম্যাপ করা বাফারগুলির আকারের প্রয়োজনীয়তা পরিবর্তিত হয়।
- সাম্প্রতিক জিপিইউগুলির জন্য স্থাপত্য প্রতিবেদন
- GPUAdapter isFallbackAdapter অ্যাট্রিবিউটটি অপ্রচলিত করুন
- ভোরের আপডেট
ক্রোম ১৩৭
- এক্সটার্নাল টেক্সচার বাইন্ডিং এর জন্য টেক্সচার ভিউ ব্যবহার করুন
- অফসেট এবং আকার নির্দিষ্ট না করে বাফার কপি করা হয়
- WGSL workgroupUniformLoad অ্যাটমিকের পয়েন্টার ব্যবহার করে
- GPUAdapterInfo powerPreference অ্যাট্রিবিউট
- GPURequestAdapterOptions-এর compatibilityMode অ্যাট্রিবিউটটি মুছে ফেলুন
- ভোরের আপডেট
ক্রোম ১৩৬
- GPUAdapterInfo isFallbackAdapter অ্যাট্রিবিউট
- D3D12-এ শেডার কম্পাইলেশন সময়ের উন্নতি
- ক্যানভাসের ছবিগুলো সংরক্ষণ ও কপি করুন
- লিফট সামঞ্জস্য মোড সীমাবদ্ধতা
- ভোরের আপডেট
ক্রোম ১৩৫
- নাল বাইন্ড গ্রুপ লেআউট সহ পাইপলাইন লেআউট তৈরির অনুমতি দিন
- ভিউপোর্টগুলিকে রেন্ডার টার্গেটের সীমানা ছাড়িয়ে প্রসারিত করার অনুমতি দিন
- অ্যান্ড্রয়েডে পরীক্ষামূলক সামঞ্জস্য মোডে আরও সহজে প্রবেশ করা যায়
- maxInterStageShaderComponents সীমা অপসারণ করুন
- ভোরের আপডেট
ক্রোম ১৩৪
- সাবগ্রুপের মাধ্যমে মেশিন-লার্নিং ওয়ার্কলোড উন্নত করুন
- ফ্লোট ফিল্টারযোগ্য টেক্সচার প্রকারের সমর্থন ব্লেন্ডেবল হিসেবে অপসারণ করুন
- ভোরের আপডেট
ক্রোম ১৩৩
- অতিরিক্ত unorm8x4-bgra এবং 1-কম্পোনেন্ট ভার্টেক্স ফরম্যাট
- অনির্ধারিত মান দিয়ে অজানা সীমা অনুরোধ করার অনুমতি দিন।
- WGSL অ্যালাইনমেন্ট নিয়মের পরিবর্তন
- বর্জনের মাধ্যমে WGSL-এর কর্মক্ষমতা বৃদ্ধি
- বাহ্যিক টেক্সচারের জন্য VideoFrame displaySize ব্যবহার করুন
- `copyExternalImageToTexture` ব্যবহার করে ডিফল্ট ওরিয়েন্টেশন ছাড়া অন্য ওরিয়েন্টেশনের ছবি পরিচালনা করুন।
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- featureLevel-এর সাথে সামঞ্জস্য মোড সক্রিয় করুন
- পরীক্ষামূলক উপগোষ্ঠীর বৈশিষ্ট্য পরিষ্করণ
- maxInterStageShaderComponents সীমা বাতিল করুন
- ভোরের আপডেট
ক্রোম ১৩২
- টেক্সচার ভিউ ব্যবহার
- ৩২-বিট ফ্লোট টেক্সচার ব্লেন্ডিং
- GPUDevice অ্যাডাপ্টারইনফো অ্যাট্রিবিউট
- ভুল ফরম্যাটে ক্যানভাস কনটেক্সট কনফিগার করলে জাভাস্ক্রিপ্ট ত্রুটি দেখা দেয়।
- টেক্সচারের উপর ফিল্টারিং স্যাম্পলারের সীমাবদ্ধতা
- বর্ধিত উপগোষ্ঠী পরীক্ষা
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- ১৬-বিট নর্মালাইজড টেক্সচার ফরম্যাটের জন্য পরীক্ষামূলক সমর্থন
- ভোরের আপডেট
ক্রোম ১৩১
- WGSL-এ ক্লিপ দূরত্ব
- GPUCanvasContext getConfiguration()
- বিন্দু এবং রেখা প্রিমিটিভগুলিতে গভীরতার পক্ষপাত থাকা উচিত নয়।
- উপগোষ্ঠীগুলির জন্য অন্তর্ভুক্তিমূলক স্ক্যান অন্তর্নির্মিত ফাংশন
- মাল্টি-ড্র ইনডিরেক্টের জন্য পরীক্ষামূলক সমর্থন
- শেডার মডিউল সংকলন বিকল্প কঠোর গণিত
- GPUAdapter requestAdapterInfo() অপসারণ করুন
- ভোরের আপডেট
ক্রোম ১৩০
- দ্বৈত উৎস মিশ্রণ
- মেটালে শেডার কম্পাইলেশন সময়ের উন্নতি
- GPUAdapter requestAdapterInfo() এর অপ্রচলিতকরণ
- ভোরের আপডেট
ক্রোম ১২৯
ক্রোম ১২৮
- উপগোষ্ঠী নিয়ে পরীক্ষা-নিরীক্ষা
- লাইন এবং পয়েন্টের জন্য ডেপথ বায়াস সেট করা অপ্রচলিত।
- preventDefault ব্যবহার করলে ক্যাপচার না করা ত্রুটির DevTools সতর্কতা লুকান
- WGSL প্রথমে ইন্টারপোলেট স্যাম্পলিং করে এবং হয়
- ভোরের আপডেট
ক্রোম ১২৭
- অ্যান্ড্রয়েডে OpenGL ES-এর জন্য পরীক্ষামূলক সমর্থন
- GPUAdapter তথ্য অ্যাট্রিবিউট
- ওয়েবঅ্যাসেম্বলি ইন্টারঅপ উন্নতি
- উন্নত কমান্ড এনকোডার ত্রুটি
- ভোরের আপডেট
ক্রোম ১২৬
- maxTextureArrayLayers সীমা বৃদ্ধি করুন
- ভলকান ব্যাকএন্ডের জন্য বাফার আপলোড অপ্টিমাইজেশন
- শেডার কম্পাইলেশন সময়ের উন্নতি
- জমা দেওয়া কমান্ড বাফারগুলি অবশ্যই অনন্য হতে হবে।
- ভোরের আপডেট
ক্রোম ১২৫
ক্রোম ১২৪
- পঠন-যোগ্য এবং পঠন-লিখনযোগ্য স্টোরেজ টেক্সচার
- পরিষেবা কর্মী এবং ভাগাভাগি কর্মীদের সমর্থন
- নতুন অ্যাডাপ্টার তথ্যের বৈশিষ্ট্য
- বাগ সংশোধন
- ভোরের আপডেট
ক্রোম ১২৩
- WGSL-এ DP4a-এর অন্তর্নির্মিত ফাংশনগুলির সমর্থন
- WGSL-এ অবাধ পয়েন্টার প্যারামিটার
- WGSL-এ কম্পোজিট ডি-রেফারেন্সিং-এর জন্য সিনট্যাক্স সুগার
- স্টেনসিল এবং গভীরতার দিকগুলির জন্য পৃথক পঠনযোগ্য অবস্থা
- ভোরের আপডেট
ক্রোম ১২২
- কম্প্যাটিবিলিটি মোডের মাধ্যমে পরিধি প্রসারিত করুন (ফিচারটি নির্মাণাধীন)
- maxVertexAttributes সীমা বৃদ্ধি করুন
- ভোরের আপডেট
ক্রোম ১২১
- অ্যান্ড্রয়েডে ওয়েবজিপিইউ সমর্থন করুন
- উইন্ডোজে শেডার কম্পাইলেশনের জন্য FXC-এর পরিবর্তে DXC ব্যবহার করুন।
- কম্পিউট এবং রেন্ডার পাসে টাইমস্ট্যাম্প কোয়েরি
- শেডার মডিউলগুলির ডিফল্ট এন্ট্রি পয়েন্ট
- GPUExternalTexture কালার স্পেস হিসেবে display-p3 সমর্থন করে।
- মেমরি হিপস তথ্য
- ভোরের আপডেট
ক্রোম ১২০
- WGSL-এ ১৬-বিট ফ্লোটিং-পয়েন্ট মানের জন্য সমর্থন
- সীমা ছাড়িয়ে যান
- গভীরতা-স্টেনসিল অবস্থার পরিবর্তন
- অ্যাডাপ্টার তথ্যের আপডেট
- টাইমস্ট্যাম্প কোয়েরি কোয়ান্টাইজেশন
- বসন্তকালীন পরিষ্কার-পরিচ্ছন্নতার বৈশিষ্ট্য
ক্রোম ১১৯
- ফিল্টারযোগ্য ৩২-বিট ফ্লোট টেক্সচার
- অগঠিত১০-১০-১০-২ শীর্ষবিন্দু বিন্যাস
- rgb10a2uint টেক্সচার ফরম্যাট
- ভোরের আপডেট
ক্রোম ১১৮
-
copyExternalImageToTexture()ফাংশনে HTMLImageElement এবং ImageData-এর সাপোর্ট - রিড-রাইট এবং রিড-অনলি স্টোরেজ টেক্সচারের জন্য পরীক্ষামূলক সমর্থন
- ভোরের আপডেট
ক্রোম ১১৭
- আনসেট ভার্টেক্স বাফার
- আনসেট বাইন্ড গ্রুপ
- ডিভাইস হারিয়ে গেলে অ্যাসিঙ্ক পাইপলাইন তৈরির ত্রুটিগুলো নীরব করুন
- SPIR-V শেডার মডিউল তৈরির আপডেট
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- স্বয়ংক্রিয়ভাবে তৈরি লেআউট সহ ক্যাশিং পাইপলাইন
- ভোরের আপডেট
ক্রোম ১১৬
- ওয়েবকোডেকস ইন্টিগ্রেশন
- GPUAdapter
requestDevice()দ্বারা ফেরত দেওয়া হারানো ডিভাইস -
importExternalTexture()কল করা হলে ভিডিও প্লেব্যাক মসৃণ রাখুন - স্পেক সঙ্গতি
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- ভোরের আপডেট
ক্রোম ১১৫
- সমর্থিত WGSL ভাষা এক্সটেনশন
- Direct3D 11 এর জন্য পরীক্ষামূলক সমর্থন
- এসি পাওয়ারে ডিফল্টভাবে ডেডিকেটেড জিপিইউ পাওয়া যায়।
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- ভোরের আপডেট
ক্রোম ১১৪
- জাভাস্ক্রিপ্ট অপ্টিমাইজ করুন
- অকনফিগার করা ক্যানভাসে getCurrentTexture() কল করলে InvalidStateError থ্রো করে।
- WGSL আপডেট
- ভোরের আপডেট