WGSL-এ DP4a বিল্ট-ইন ফাংশন সাপোর্ট করে
DP4a (4 Elements and Accumulate এর ডট প্রোডাক্ট) বলতে GPU নির্দেশাবলীর একটি সেট বোঝায় যা সাধারণত কোয়ান্টাইজেশনের জন্য ডিপ লার্নিং ইনফারেন্সে ব্যবহৃত হয়। এটি 8-বিট ইন্টিজার ডট প্রোডাক্টগুলি দক্ষতার সাথে সম্পাদন করে যাতে এই ধরনের int8-কোয়ান্টাইজড মডেলগুলির গণনা ত্বরান্বিত হয়। এটি মেমরি এবং নেটওয়ার্ক ব্যান্ডউইথের (75% পর্যন্ত) সাশ্রয় করতে পারে এবং f32 সংস্করণের তুলনায় ইনফারেন্সিংয়ে যেকোনো মেশিন লার্নিং মডেলের কর্মক্ষমতা উন্নত করতে পারে। ফলস্বরূপ, এটি এখন অনেক জনপ্রিয় AI ফ্রেমওয়ার্কের মধ্যে ব্যাপকভাবে ব্যবহৃত হয়।
যখন "packed_4x8_integer_dot_product" WGSL ভাষা এক্সটেনশনটি navigator.gpu.wgslLanguageFeatures এ উপস্থিত থাকে, তখন আপনি এখন dot4U8Packed এবং dot4I8Packed বিল্ট-ইন ফাংশনগুলির সাহায্যে আপনার WGSL শেডার কোডে ডট পণ্য নির্দেশাবলীর ইনপুট হিসাবে 8-বিট পূর্ণসংখ্যার 4-কম্পোনেন্ট ভেক্টর প্যাকিং 32-বিট পূর্ণসংখ্যার স্কেলার ব্যবহার করতে পারেন। আপনি pack4xI8 , pack4xU8 , pack4xI8Clamp , pack4xU8Clamp , unpack4xI8 , এবং unpack4xU8 WGSL বিল্ট-ইন ফাংশনগুলির সাথে 8-বিট পূর্ণসংখ্যার প্যাকিং 4-কম্পোনেন্ট ভেক্টরগুলির সাথে প্যাকিং এবং আনপ্যাকিংয়ের নির্দেশাবলীও ব্যবহার করতে পারেন।
আপনার WGSL শেডার কোডের উপরে requires packed_4x8_integer_dot_product; দিয়ে অ-পোর্টেবিলিটির সম্ভাবনা সম্পর্কে সংকেত দেওয়ার জন্য একটি requires-directive ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। নিম্নলিখিত উদাহরণটি দেখুন এবং tint:1497 ইস্যু করুন ।
if (!navigator.gpu.wgslLanguageFeatures.has("packed_4x8_integer_dot_product")) {
throw new Error(`DP4a built-in functions are not available`);
}
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
const shaderModule = device.createShaderModule({ code: `
requires packed_4x8_integer_dot_product;
fn main() {
const result: u32 = dot4U8Packed(0x01020304u, 0x02040405u); // 42
}`,
});
এই স্পেসিফিকেশন এবং বাস্তবায়ন সম্পূর্ণ করার জন্য সাংহাইতে ইন্টেলের ওয়েব গ্রাফিক্স টিমকে বিশেষ ধন্যবাদ!
WGSL-এ অবাধ পয়েন্টার প্যারামিটার
"unrestricted_pointer_parameters" WGSL ভাষা এক্সটেনশন WGSL ফাংশনে কোন পয়েন্টারগুলি প্রেরণ করা যেতে পারে তার উপর বিধিনিষেধ শিথিল করে:
ব্যবহারকারী ঘোষিত ফাংশনগুলিতে
storage,uniformএবংworkgroupঠিকানা স্থানের প্যারামিটার পয়েন্টার।ব্যবহারকারী ঘোষিত ফাংশনগুলিতে স্ট্রাকচার মেম্বার এবং অ্যারে এলিমেন্টের পয়েন্টার পাস করা।
আরও জানতে WGSL-এর "পয়েন্টার অ্যাজ ফাংশন প্যারামিটারস | ট্যুর" দেখুন।
এই বৈশিষ্ট্যটি navigator.gpu.wgslLanguageFeatures ব্যবহার করে বৈশিষ্ট্য-শনাক্ত করা যেতে পারে। আপনার WGSL শেডার কোডের উপরে requires unrestricted_pointer_parameters; দিয়ে অ-পোর্টেবিলিটির সম্ভাবনা সংকেত দেওয়ার জন্য সর্বদা একটি requires-directive ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। নিম্নলিখিত উদাহরণটি দেখুন, WGSL স্পেক পরিবর্তন হয় এবং tint:2053 ইস্যু করে ।
if (!navigator.gpu.wgslLanguageFeatures.has("unrestricted_pointer_parameters")) {
throw new Error(`Unrestricted pointer parameters are not available`);
}
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
const shaderModule = device.createShaderModule({ code: `
requires unrestricted_pointer_parameters;
@group(0) @binding(0) var<storage, read_write> S : i32;
fn func(pointer : ptr<storage, i32, read_write>) {
*pointer = 42;
}
@compute @workgroup_size(1)
fn main() {
func(&S);
}`
});
WGSL-এ কম্পোজিট ডিরেফারেন্স করার জন্য সিনট্যাক্স চিনি
যখন "pointer_composite_access" WGSL ভাষা এক্সটেনশনটি navigator.gpu.wgslLanguageFeatures তে উপস্থিত থাকে, তখন আপনার WGSL শেডার কোড এখন একই ডট ( . ) সিনট্যাক্স ব্যবহার করে জটিল ডেটা ধরণের উপাদানগুলিতে অ্যাক্সেস সমর্থন করে, আপনি সরাসরি ডেটার সাথে কাজ করছেন বা এর পয়েন্টার দিয়ে করছেন। এটি কীভাবে কাজ করে তা এখানে:
যদি
fooএকটি পয়েন্টার হয়:foo.barলেখার জন্য আরও সুবিধাজনক উপায়(*foo).bar। পয়েন্টারটিকে একটি "রেফারেন্স" তে রূপান্তর করার জন্য সাধারণত তারকাচিহ্ন (*) প্রয়োজন হত যা ডিরেফারেন্স করা যেতে পারে, কিন্তু এখন পয়েন্টার এবং রেফারেন্স উভয়ই অনেক বেশি একই রকম এবং প্রায় বিনিময়যোগ্য।যদি
fooএকটি পয়েন্টার না হয়: ডট (.) অপারেটরটি ঠিক সেইভাবে কাজ করে যেমনটি আপনি সরাসরি সদস্যদের অ্যাক্সেস করার জন্য ব্যবহার করেন।
একইভাবে, যদি pa একটি পয়েন্টার হয় যা একটি অ্যারের শুরুর ঠিকানা সংরক্ষণ করে, তাহলে pa[i] ব্যবহার করলে আপনি মেমরির অবস্থানে সরাসরি অ্যাক্সেস পাবেন যেখানে সেই অ্যারের 'i 'th উপাদানটি সংরক্ষণ করা হয়।
আপনার WGSL শেডার কোডের উপরে requires pointer_composite_access; দিয়ে অ-পোর্টেবিলিটির সম্ভাবনা সংকেত দেওয়ার জন্য একটি requires-directive ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। নিম্নলিখিত উদাহরণটি দেখুন এবং tint:2113 ইস্যু করুন ।
if (!navigator.gpu.wgslLanguageFeatures.has("pointer_composite_access")) {
throw new Error(`Pointer composite access is not available`);
}
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
const shaderModule = device.createShaderModule({ code: `
requires pointer_composite_access;
fn main() {
var a = vec3f();
let p : ptr<function, vec3f> = &a;
let r1 = (*p).x; // always valid.
let r2 = p.x; // requires pointer composite access.
}`
});
স্টেনসিল এবং গভীরতার দিকগুলির জন্য পৃথক পঠনযোগ্য অবস্থা
পূর্বে, রেন্ডার পাসে রিড-ওনলি ডেপথ-স্টেন্সিল সংযুক্তির জন্য উভয় দিক (ডেপথ এবং স্টেনসিল) কেবল-পঠনযোগ্য করতে হত। এই সীমাবদ্ধতা তুলে নেওয়া হয়েছে। এখন, আপনি ডেপথ দিকটি রিড-ওনলি ফ্যাশনে ব্যবহার করতে পারেন, উদাহরণস্বরূপ কন্টাক্ট শ্যাডো ট্রেসিংয়ের জন্য, যখন স্টেনসিল বাফারটি আরও প্রক্রিয়াকরণের জন্য পিক্সেল সনাক্ত করার জন্য লেখা হয়। দেখুন ইস্যু dawn:2146 ।
ভোরের আপডেট
wgpuDeviceSetUncapturedErrorCallback() দিয়ে সেট করা আনক্যাপচারড এরর কলব্যাক এখন ত্রুটিটি ঘটলে তাৎক্ষণিকভাবে কল করা হয়। ডেভেলপাররা ডিবাগিংয়ের জন্য এটিই আশা করে এবং চায়। change dawn:173620 দেখুন।
webgpu.h API থেকে wgpuSurfaceGetPreferredFormat() পদ্ধতিটি বাস্তবায়িত হয়েছে। সমস্যাটি দেখুন dawn:1362 ।
এখানে শুধুমাত্র কিছু গুরুত্বপূর্ণ বিষয় অন্তর্ভুক্ত করা হয়েছে। কমিটের সম্পূর্ণ তালিকাটি দেখুন।
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 আপডেট
- ভোরের আপডেট