উপগোষ্ঠী নিয়ে পরীক্ষা-নিরীক্ষা
উপগোষ্ঠী বৈশিষ্ট্যটি SIMD-স্তরের সমান্তরালতা সক্ষম করে, যা একটি গোষ্ঠীর মধ্যে থ্রেডগুলিকে যোগাযোগ করতে এবং সম্মিলিত গণিত ক্রিয়াকলাপ সম্পাদন করতে দেয় (উদাহরণস্বরূপ, 16টি সংখ্যার যোগফল গণনা করা)। এটি ক্রস-থ্রেড ডেটা ভাগ করে নেওয়ার একটি অত্যন্ত দক্ষ রূপ প্রদান করে।
"অনিরাপদ ওয়েবজিপিইউ সাপোর্ট" ফ্ল্যাগের পিছনে স্থানীয় পরীক্ষার জন্য সাবগ্রুপ প্রস্তাবের একটি ন্যূনতম বাস্তবায়ন chrome://flags/#enable-unsafe-webgpu
এ উপলব্ধ।
আপনি আপনার সাইটে আসল ব্যবহারকারীদের সাথে অরিজিন ট্রায়ালের জন্য সাইন আপ করে সাবগ্রুপগুলিও চেষ্টা করতে পারেন। অরিজিন ট্রায়াল ব্যবহারের জন্য আপনার সাইটকে কীভাবে প্রস্তুত করবেন তার নির্দেশাবলীর জন্য "অরিজিন ট্রায়াল শুরু করুন" পড়ুন। অরিজিন ট্রায়ালটি Chrome 128 থেকে 131 (19 ফেব্রুয়ারী, 2025 পর্যন্ত শেষ) পর্যন্ত চলবে। Experiment-এর জন্য Intent দেখুন।
যখন "subgroups"
বৈশিষ্ট্যটি একটি GPUAdapter
এ উপলব্ধ থাকে, তখন WGSL এ সাবগ্রুপ সমর্থন পেতে এবং এর minSubgroupSize
এবং maxSubgroupSize
সীমা পরীক্ষা করার জন্য এই বৈশিষ্ট্য সহ একটি GPUDevice
অনুরোধ করুন।
আপনার WGSL কোডে এই এক্সটেনশনটি স্পষ্টভাবে সক্ষম করতে হবে, যার মধ্যে রয়েছে enable subgroups;
। সক্রিয় করা হলে, আপনি নিম্নলিখিত সংযোজনগুলিতে অ্যাক্সেস পাবেন:
-
subgroup_invocation_id
: সাবগ্রুপের মধ্যে থ্রেডের সূচকের জন্য একটি অন্তর্নির্মিত মান। -
subgroup_size
: সাবগ্রুপ আকার অ্যাক্সেসের জন্য একটি অন্তর্নির্মিত মান। -
subgroupBallot(value)
: বিট ফিল্ডের একটি সেট প্রদান করে যেখানেsubgroup_invocation_id
এর সাথে সম্পর্কিত বিট 1 হয় যদিvalue
সেই সক্রিয় আমন্ত্রণের জন্য সত্য হয় এবং অন্যথায় 0 হয়। -
subgroupBroadcast(value, id)
:subgroup_invocation_id
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 কনসোলে এই আসন্ন বৈধতা সম্পর্কে একটি সতর্কতা দেখানো হয় এবং এই পরিস্থিতিতে মানগুলিকে 0 এ জোর করে চাপ দেওয়া হয়। 352567424 সংখ্যাটি দেখুন।
যদি preventDefault থাকে তাহলে DevTools সতর্কতা না-ক্যাপচার করা ত্রুটি লুকান।
DevTools কনসোলে, uncapturederror
ইভেন্টের জন্য সতর্কতা আর প্রদর্শিত হয় না যদি uncapturederror
এর জন্য কোনও ইভেন্ট লিসেনার নিবন্ধিত থাকে এবং ইভেন্ট লিসেনার কলব্যাকের মধ্যে Event 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 ডেটা ইন্টারপোলেশন পরিচালনা করতে দেয়। এখন, নতুন ইন্টারপোলেট স্যাম্পলিং প্যারামিটারগুলি first
(ডিফল্ট) এবং either
আপনাকে অতিরিক্ত নিয়ন্ত্রণ দেয়: first
প্রিমিটিভের প্রথম শীর্ষবিন্দু থেকে মান ব্যবহার করে, যখন either
প্রথম বা শেষ শীর্ষবিন্দুকে অনুমতি দেয়। সমস্যা 340278447 দেখুন।
ভোরের আপডেট
অ্যাসিঙ্ক্রোনাস অপারেশন পরিচালনা করার জন্য ডনের WGPUFuture বাস্তবায়ন এখন সম্পূর্ণ। মূল ধারণাগুলির মধ্যে রয়েছে সুযোগসন্ধানী ইভেন্ট প্রক্রিয়াকরণের জন্য wgpuInstanceProcessEvents এবং কলব্যাক অবস্থান নির্ধারণের জন্য WGPUCallbackMode । WGPUFuture হল অসীম জীবনকাল সহ এককালীন ইভেন্টগুলিকে বোঝায় এবং wgpuInstanceWaitAny হল যেকোনো ভবিষ্যতের সমাপ্তি বা একটি সময়সীমার জন্য অপেক্ষা করছে। সংখ্যা 42240932 দেখুন।
CompositeAlphaMode::Auto
মানটি এখন Surface::GetCapabilities()
দ্বারা রিপোর্ট করা হয় না। এটি এখনও বৈধ এবং Surface::GetCapabilities().alphaMode[0]
এর সমতুল্য। সংখ্যা 292 দেখুন।
OpenGL ব্যাকএন্ড এখন প্রতিটি Present()
কলের জন্য y-flip blit সহ Surface
সমর্থন করে। সংখ্যা 344814083 দেখুন।
Adapter::GetProperties()
পদ্ধতিটি Adapter::GetInfo()
ব্যবহারের পক্ষে অবচিত।
একজন বহিরাগত অবদানকারী, যশবন্ত সমস্ত CMake ফাইল পুনর্লিখন করেছেন, যা আপডেট করা সহজ করে এবং প্রি-বিল্ডের জন্য অনুমতি দেয়। CMake প্রকল্পগুলিতে Dawn ব্যবহারের জন্য কুইকস্টার্ট গাইডটি দেখুন।
এখানে শুধুমাত্র কিছু গুরুত্বপূর্ণ বিষয় অন্তর্ভুক্ত করা হয়েছে। কমিটের সম্পূর্ণ তালিকাটি দেখুন।
WebGPU-তে নতুন কী আছে
" What's New in WebGPU" সিরিজে যা যা আলোচনা করা হয়েছে তার একটি তালিকা।
ক্রোম ১৪২
ক্রোম ১৪১
- টিন্ট আইআর সম্পন্ন হয়েছে
- WGSL কম্পাইলারে পূর্ণসংখ্যা পরিসর বিশ্লেষণ
- Vulkan ব্যাকএন্ডের জন্য SPIR-V 1.4 আপডেট
- ভোরের আপডেট
ক্রোম ১৪০
- ডিভাইসের অনুরোধগুলি অ্যাডাপ্টার ব্যবহার করে
- টেক্সচার ভিউ ব্যবহার করা হলে টেক্সচার ব্যবহারের সংক্ষিপ্ত বিবরণ
- WGSL টেক্সচারSampleLevel 1D টেক্সচার সমর্থন করে
- bgra8unorm-এর পঠনযোগ্য স্টোরেজ টেক্সচার ব্যবহার বন্ধ করুন
- GPUAdapter isFallbackAdapter অ্যাট্রিবিউটটি সরান
- ভোরের আপডেট
ক্রোম ১৩৯
- BC এবং ASTC সংকুচিত ফর্ম্যাটের জন্য 3D টেক্সচার সমর্থন
- নতুন "মূল-বৈশিষ্ট্য-এবং-সীমা" বৈশিষ্ট্য
- WebGPU সামঞ্জস্য মোডের জন্য অরিজিন ট্রায়াল
- ভোরের আপডেট
ক্রোম ১৩৮
- বাইন্ডিং রিসোর্স হিসেবে বাফার ব্যবহারের সংক্ষিপ্ত বিবরণ
- তৈরির সময় ম্যাপ করা বাফারগুলির জন্য আকারের প্রয়োজনীয়তার পরিবর্তন
- সাম্প্রতিক GPU-এর জন্য স্থাপত্য প্রতিবেদন
- GPUAdapter হল FallbackAdapter অ্যাট্রিবিউটকে অবমূল্যায়ন করুন
- ভোরের আপডেট
ক্রোম ১৩৭
- বাহ্যিক টেক্সচার বাইন্ডিংয়ের জন্য টেক্সচার ভিউ ব্যবহার করুন
- অফসেট এবং আকার নির্দিষ্ট না করেই বাফারগুলি অনুলিপি করে
- WGSL ওয়ার্কগ্রুপ ইউনিফর্মলোড পরমাণুর পয়েন্টার ব্যবহার করে
- GPUAdapterInfo powerPreference অ্যাট্রিবিউট
- GPURequestAdapterOptions compatibilityMode অ্যাট্রিবিউট সরান
- ভোরের আপডেট
ক্রোম ১৩৬
- GPUAdapterInfo হল FallbackAdapter বৈশিষ্ট্য
- D3D12-তে শেডার সংকলন সময়ের উন্নতি
- ক্যানভাস ছবি সংরক্ষণ এবং কপি করুন
- সামঞ্জস্যতা মোড সীমাবদ্ধতা উত্তোলন করুন
- ভোরের আপডেট
ক্রোম ১৩৫
- নাল বাইন্ড গ্রুপ লেআউট সহ পাইপলাইন লেআউট তৈরি করার অনুমতি দিন
- ভিউপোর্টগুলিকে রেন্ডার টার্গেট সীমানা অতিক্রম করতে দিন
- অ্যান্ড্রয়েডে পরীক্ষামূলক সামঞ্জস্যতা মোডে সহজ অ্যাক্সেস
- maxInterStageShaderComponents সীমা সরান
- ভোরের আপডেট
ক্রোম ১৩৪
- উপগোষ্ঠীর সাথে মেশিন-লার্নিং ওয়ার্কলোড উন্নত করুন
- ফ্লোট ফিল্টারেবল টেক্সচার টাইপ সাপোর্টকে ব্লেন্ডেবল হিসেবে সরিয়ে দিন
- ভোরের আপডেট
ক্রোম ১৩৩
- অতিরিক্ত unorm8x4-bgra এবং 1-কম্পোনেন্ট ভার্টেক্স ফর্ম্যাট
- অনির্ধারিত মান সহ অজানা সীমা অনুরোধ করার অনুমতি দিন
- WGSL সারিবদ্ধকরণের নিয়ম পরিবর্তন
- বাতিলের সাথে WGSL কর্মক্ষমতা বৃদ্ধি পায়
- বাহ্যিক টেক্সচারের জন্য ভিডিওফ্রেম ডিসপ্লে সাইজ ব্যবহার করুন
- copyExternalImageToTexture ব্যবহার করে অ-ডিফল্ট ওরিয়েন্টেশন সহ ছবিগুলি পরিচালনা করুন
- ডেভেলপারের অভিজ্ঞতা উন্নত করা হচ্ছে
- featureLevel এর সাথে সামঞ্জস্যতা মোড সক্ষম করুন
- পরীক্ষামূলক উপগোষ্ঠীর বৈশিষ্ট্য পরিষ্কারকরণ
- maxInterStageShaderComponents সীমা অবমূল্যায়ন করুন
- ভোরের আপডেট
ক্রোম ১৩২
- টেক্সচার ভিউ ব্যবহার
- ৩২-বিট ফ্লোট টেক্সচার ব্লেন্ডিং
- GPUDevice অ্যাডাপ্টারইনফো অ্যাট্রিবিউট
- অবৈধ ফর্ম্যাট থ্রো জাভাস্ক্রিপ্ট ত্রুটি সহ ক্যানভাস প্রসঙ্গ কনফিগার করা হচ্ছে
- টেক্সচারের উপর স্যাম্পলার সীমাবদ্ধতা ফিল্টার করা
- বর্ধিত উপগোষ্ঠী পরীক্ষা-নিরীক্ষা
- ডেভেলপারের অভিজ্ঞতা উন্নত করা হচ্ছে
- ১৬-বিট নরমালাইজড টেক্সচার ফর্ম্যাটের জন্য পরীক্ষামূলক সমর্থন
- ভোরের আপডেট
ক্রোম ১৩১
- WGSL-এ দূরত্ব ক্লিপ করুন
- GPUCanvasContext কনফিগারেশন () পান
- বিন্দু এবং রেখার আদিমগুলিতে গভীরতা পক্ষপাত থাকা উচিত নয়
- উপগোষ্ঠীর জন্য অন্তর্ভুক্তিমূলক স্ক্যান বিল্ট-ইন ফাংশন
- মাল্টি-ড্র ইনডাইরেক্টের জন্য পরীক্ষামূলক সহায়তা
- শেডার মডিউল সংকলন বিকল্প কঠোর গণিত
- GPUAdapter requestAdapterInfo() সরান
- ভোরের আপডেট
ক্রোম ১৩০
- ডুয়াল সোর্স ব্লেন্ডিং
- মেটালে শেডার সংকলনের সময়ের উন্নতি
- GPUAdapter requestAdapterInfo() এর অবচয়
- ভোরের আপডেট
ক্রোম ১২৯
ক্রোম ১২৮
- উপগোষ্ঠী নিয়ে পরীক্ষা-নিরীক্ষা
- লাইন এবং বিন্দুর জন্য গভীরতা পক্ষপাত নির্ধারণ বন্ধ করুন
- যদি preventDefault থাকে তাহলে DevTools সতর্কতা না-ক্যাপচার করা ত্রুটি লুকান।
- WGSL ইন্টারপোলেট স্যাম্পলিং প্রথমে এবং উভয়ই
- ভোরের আপডেট
ক্রোম ১২৭
- অ্যান্ড্রয়েডে OpenGL ES এর জন্য পরীক্ষামূলক সমর্থন
- GPUAdapter তথ্য বৈশিষ্ট্য
- ওয়েবঅ্যাসেম্বলি ইন্টারঅপ উন্নতি
- উন্নত কমান্ড এনকোডার ত্রুটি
- ভোরের আপডেট
ক্রোম ১২৬
- maxTextureArrayLayers সীমা বাড়ান
- Vulkan ব্যাকএন্ডের জন্য বাফার আপলোড অপ্টিমাইজেশন
- শেডার সংকলন সময়ের উন্নতি
- জমা দেওয়া কমান্ড বাফারগুলি অবশ্যই অনন্য হতে হবে
- ভোরের আপডেট
ক্রোম ১২৫
ক্রোম ১২৪
- শুধুমাত্র পঠনযোগ্য এবং পঠনযোগ্য স্টোরেজ টেক্সচার
- পরিষেবা কর্মী এবং ভাগ করা কর্মীদের সহায়তা
- নতুন অ্যাডাপ্টারের তথ্য বৈশিষ্ট্য
- বাগ সংশোধন
- ভোরের আপডেট
ক্রোম ১২৩
- WGSL-এ DP4a বিল্ট-ইন ফাংশন সাপোর্ট করে
- WGSL-এ অবাধ পয়েন্টার প্যারামিটার
- WGSL-এ কম্পোজিট ডিরেফারেন্স করার জন্য সিনট্যাক্স চিনি
- স্টেনসিল এবং গভীরতার দিকগুলির জন্য পৃথক পঠনযোগ্য অবস্থা
- ভোরের আপডেট
ক্রোম ১২২
- সামঞ্জস্যতা মোডের মাধ্যমে নাগাল বাড়ান (বিকাশের অধীনে থাকা বৈশিষ্ট্য)
- maxVertexAttributes সীমা বৃদ্ধি করুন
- ভোরের আপডেট
ক্রোম ১২১
- অ্যান্ড্রয়েডে WebGPU সাপোর্ট করুন
- উইন্ডোজে শেডার সংকলনের জন্য FXC এর পরিবর্তে DXC ব্যবহার করুন
- কম্পিউট এবং রেন্ডার পাসে টাইমস্ট্যাম্প কোয়েরি
- শেডার মডিউলের ডিফল্ট এন্ট্রি পয়েন্ট
- GPUExternalTexture কালার স্পেস হিসেবে display-p3 সাপোর্ট করে
- মেমোরি হিপস সম্পর্কিত তথ্য
- ভোরের আপডেট
ক্রোম ১২০
- WGSL-এ ১৬-বিট ফ্লোটিং-পয়েন্ট মানের জন্য সমর্থন
- সীমা অতিক্রম করুন
- গভীরতা-স্টেন্সিল অবস্থায় পরিবর্তন
- অ্যাডাপ্টারের তথ্য আপডেট
- টাইমস্ট্যাম্প কোয়েরি কোয়ান্টাইজেশন
- বসন্ত-পরিষ্কারের বৈশিষ্ট্য
ক্রোম ১১৯
- ফিল্টারযোগ্য ৩২-বিট ফ্লোট টেক্সচার
- unorm10-10-10-2 ভার্টেক্স ফর্ম্যাট
- rgb10a2uint টেক্সচার ফর্ম্যাট
- ভোরের আপডেট
ক্রোম ১১৮
-
copyExternalImageToTexture()
তে HTMLImageElement এবং ImageData সাপোর্ট - পঠন-লেখা এবং পঠন-শুধুমাত্র স্টোরেজ টেক্সচারের জন্য পরীক্ষামূলক সহায়তা
- ভোরের আপডেট
ক্রোম ১১৭
- ভার্টেক্স বাফার আনসেট করুন
- বাইন্ড গ্রুপ আনসেট করুন
- ডিভাইস হারিয়ে গেলে অ্যাসিঙ্ক পাইপলাইন তৈরির সময় ত্রুটিগুলি নীরব করুন
- SPIR-V শেডার মডিউল তৈরির আপডেট
- ডেভেলপারের অভিজ্ঞতা উন্নত করা হচ্ছে
- স্বয়ংক্রিয়ভাবে তৈরি লেআউট সহ পাইপলাইন ক্যাশ করা হচ্ছে
- ভোরের আপডেট
ক্রোম ১১৬
- ওয়েবকোডেক্স ইন্টিগ্রেশন
- GPUAdapter
requestDevice()
দ্বারা হারিয়ে যাওয়া ডিভাইসটি ফেরত পাঠানো হয়েছে -
importExternalTexture()
কল করা হলে ভিডিও প্লেব্যাক মসৃণ রাখুন - স্পেক সম্মতি
- ডেভেলপারের অভিজ্ঞতা উন্নত করা হচ্ছে
- ভোরের আপডেট
ক্রোম ১১৫
- সমর্থিত WGSL ভাষা এক্সটেনশন
- Direct3D 11 এর জন্য পরীক্ষামূলক সহায়তা
- এসি পাওয়ারে ডিফল্টভাবে ডিসক্রিট জিপিইউ পান
- ডেভেলপারের অভিজ্ঞতা উন্নত করা হচ্ছে
- ভোরের আপডেট
ক্রোম ১১৪
- জাভাস্ক্রিপ্ট অপ্টিমাইজ করুন
- কনফিগার না করা ক্যানভাসে getCurrentTexture() InvalidStateError ছুঁড়ে দেয়
- WGSL আপডেট
- ভোরের আপডেট