DP4a বিল্ট-ইন ফাংশন WGSL-এ সমর্থন করে
DP4a (4টি উপাদানের ডট প্রোডাক্ট এবং একমুলেট) বলতে বোঝায় GPU নির্দেশাবলীর একটি সেট যা সাধারণত কোয়ান্টাইজেশনের জন্য গভীর শিক্ষার অনুমানে ব্যবহৃত হয়। এটি দক্ষতার সাথে 8-বিট পূর্ণসংখ্যা বিন্দু পণ্য সঞ্চালন করে এই ধরনের int8-কোয়ান্টাইজড মডেলের গণনাকে ত্বরান্বিত করতে। এটি মেমরি এবং নেটওয়ার্ক ব্যান্ডউইথের (75% পর্যন্ত) সংরক্ষণ করতে পারে এবং তাদের f32 সংস্করণের তুলনায় অনুমানে যেকোন মেশিন লার্নিং মডেলের কর্মক্ষমতা উন্নত করতে পারে। ফলস্বরূপ, এটি এখন অনেক জনপ্রিয় এআই ফ্রেমওয়ার্কের মধ্যে ব্যাপকভাবে ব্যবহৃত হয়।
যখন "packed_4x8_integer_dot_product"
WGSL ল্যাঙ্গুয়েজ এক্সটেনশনটি navigator.gpu.wgslLanguageFeatures
এ উপস্থিত থাকে, তখন আপনি এখন 32-বিট ইন্টিজার স্কেলার ব্যবহার করতে পারেন যা 8-বিট পূর্ণসংখ্যার 4-কম্পোনেন্ট ভেক্টর প্যাকিং করে আপনার ডট শেডার কোডে ডট প্রোডাক্ট নির্দেশাবলীতে ইনপুট হিসাবে dot4U8Packed
এবং dot4I8Packed
প্যাকড বিল্ট-ইন ফাংশন। এছাড়াও আপনি pack4xI8
, pack4xU8
, pack4xI8Clamp
, pack4xU8Clamp
, unpack4xI8
, এবং unpack4xU8
WGSL বিল্ট-ইন ফাংশন সহ 8-বিট পূর্ণসংখ্যার প্যাক করা 4-কম্পোনেন্ট ভেক্টরগুলির সাথে প্যাকিং এবং আনপ্যাক করার নির্দেশাবলী ব্যবহার করতে পারেন।
requires packed_4x8_integer_dot_product;
এর সাথে নন-পোর্টেবিলিটির সম্ভাব্যতার সংকেত দিতে প্রয়োজন-নির্দেশ ব্যবহার করার পরামর্শ দেওয়া হয়; আপনার WGSL শেডার কোডের শীর্ষে। নিম্নলিখিত উদাহরণ এবং সমস্যা টিন্ট দেখুন: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
ব্যবহার করে বৈশিষ্ট্য সনাক্ত করা যেতে পারে। requires unrestricted_pointer_parameters;
সহ নন-পোর্টেবিলিটির সম্ভাব্যতার সংকেত দিতে সর্বদা প্রয়োজন-নির্দেশ ব্যবহার করার পরামর্শ দেওয়া হয়; আপনার WGSL শেডার কোডের শীর্ষে। নিম্নলিখিত উদাহরণ দেখুন, WGSL স্পেস পরিবর্তন , এবং ইস্যু টিন্ট: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
' তম উপাদানটি সংরক্ষণ করা হয়।
requires pointer_composite_access;
সাথে অ-বহনযোগ্যতার সম্ভাব্যতার সংকেত দিতে একটি প্রয়োজন-নির্দেশ ব্যবহার করার পরামর্শ দেওয়া হয়; আপনার WGSL শেডার কোডের শীর্ষে। নিম্নলিখিত উদাহরণ এবং সমস্যা টিন্ট দেখুন: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.
}`
});
স্টেনসিল এবং গভীরতার দিকগুলির জন্য আলাদা পঠনযোগ্য অবস্থা
পূর্বে, রেন্ডার পাসে শুধুমাত্র-পঠনযোগ্য গভীরতা-স্টেনসিল সংযুক্তিগুলির জন্য উভয় দিক (গভীরতা এবং স্টেনসিল) শুধুমাত্র পাঠযোগ্য হতে হবে। এই সীমাবদ্ধতা তুলে নেওয়া হয়েছে। এখন, আপনি কেবল-পঠন ফ্যাশনে গভীরতার দিকটি ব্যবহার করতে পারেন, উদাহরণস্বরূপ যোগাযোগের ছায়া ট্রেসিংয়ের জন্য, যখন স্টেনসিল বাফারটি আরও প্রক্রিয়াকরণের জন্য পিক্সেল সনাক্ত করতে লেখা হয়। দেখুন ভোরের সংখ্যা: 2146 ।
ভোরের আপডেট
wgpuDeviceSetUncapturedErrorCallback()
সহ ক্যাপচারড ত্রুটি কলব্যাক সেটটি এখন ত্রুটিটি ঘটলে সাথে সাথে কল করা হয়। ডেভেলপাররা ক্রমাগত এটিই আশা করে এবং ডিবাগিংয়ের জন্য চায়। দেখুন পরিবর্তন ভোর:173620 ।
webgpu.h API থেকে wgpuSurfaceGetPreferredFormat()
পদ্ধতি প্রয়োগ করা হয়েছে। প্রভাত সংখ্যা দেখুন: 1362 ।
এটি শুধুমাত্র কিছু মূল হাইলাইট কভার করে। কমিটের সম্পূর্ণ তালিকা দেখুন।
WebGPU-তে নতুন কি আছে
ওয়েবজিপিইউ সিরিজে নতুন কী কভার করা হয়েছে তার একটি তালিকা।
ক্রোম 131
- WGSL এ ক্লিপ দূরত্ব
- GPUCanvasContext getConfiguration()
- বিন্দু এবং লাইন আদিম গভীরতা পক্ষপাত থাকতে হবে না
- সাবগ্রুপগুলির জন্য অন্তর্নির্মিত ফাংশন অন্তর্ভুক্ত স্ক্যান
- মাল্টি-ড্র পরোক্ষ জন্য পরীক্ষামূলক সমর্থন
- Shader মডিউল সংকলন বিকল্প কঠোর গণিত
- GPUAdapter requestAdapterInfo() সরান
- ভোরের আপডেট
ক্রোম 130
- দ্বৈত উৎস মিশ্রন
- ধাতুতে Shader সংকলন সময় উন্নতি
- GPUAdapter রিকোয়েস্ট অ্যাডাপ্টারইনফো() এর অবচয়
- ভোরের আপডেট
ক্রোম 129
ক্রোম 128
- সাবগ্রুপগুলির সাথে পরীক্ষা করা হচ্ছে
- লাইন এবং পয়েন্টের জন্য গভীরতার পক্ষপাত সেটিং বাতিল করুন
- ডিফল্ট প্রতিরোধ করলে ক্যাপচারড ত্রুটি DevTools সতর্কতা লুকান
- WGSL ইন্টারপোলেট স্যাম্পলিং প্রথমে এবং হয়
- ভোরের আপডেট
ক্রোম 127
- অ্যান্ড্রয়েডে OpenGL ES-এর জন্য পরীক্ষামূলক সমর্থন
- GPUAdapter তথ্য বৈশিষ্ট্য
- WebAssembly ইন্টারপ উন্নতি
- উন্নত কমান্ড এনকোডার ত্রুটি
- ভোরের আপডেট
ক্রোম 126
- maxTextureArrayLayers সীমা বাড়ান
- Vulkan ব্যাকএন্ডের জন্য বাফার আপলোড অপ্টিমাইজেশান
- Shader সংকলন সময় উন্নতি
- জমা দেওয়া কমান্ড বাফার অনন্য হতে হবে
- ভোরের আপডেট
ক্রোম 125
ক্রোম 124
- রিড-ওনলি এবং রিড-রাইট স্টোরেজ টেক্সচার
- সেবা কর্মী এবং শেয়ার্ড ওয়ার্কার্স সমর্থন
- নতুন অ্যাডাপ্টারের তথ্য বৈশিষ্ট্য
- বাগ ফিক্স
- ভোরের আপডেট
ক্রোম 123
- DP4a বিল্ট-ইন ফাংশন WGSL-এ সমর্থন করে
- WGSL-এ অনিয়ন্ত্রিত পয়েন্টার পরামিতি
- WGSL-এ কম্পোজিট ডিরেফারেন্স করার জন্য সিনট্যাক্স চিনি
- স্টেনসিল এবং গভীরতার দিকগুলির জন্য আলাদা পঠনযোগ্য অবস্থা
- ভোরের আপডেট
ক্রোম 122
- সামঞ্জস্যপূর্ণ মোডের সাথে নাগাল প্রসারিত করুন (বিকাশের বৈশিষ্ট্য)
- maxVertexAttributes সীমা বাড়ান
- ভোরের আপডেট
ক্রোম 121
- অ্যান্ড্রয়েডে WebGPU সমর্থন করুন
- উইন্ডোজে শেডার কম্পাইলেশনের জন্য FXC-এর পরিবর্তে DXC ব্যবহার করুন
- গণনা এবং রেন্ডার পাসে টাইমস্ট্যাম্প প্রশ্ন
- শেডার মডিউলে ডিফল্ট এন্ট্রি পয়েন্ট
- GPUExternalTexture রঙের স্থান হিসাবে প্রদর্শন-p3 সমর্থন করে
- মেমরি হিপ তথ্য
- ভোরের আপডেট
ক্রোম 120
- WGSL-এ 16-বিট ফ্লোটিং-পয়েন্ট মানগুলির জন্য সমর্থন
- সীমা ধাক্কা
- গভীরতা-স্টেনসিল অবস্থায় পরিবর্তন
- অ্যাডাপ্টারের তথ্য আপডেট
- টাইমস্ট্যাম্প ক্যোয়ান্টাইজেশন
- বসন্ত-পরিষ্কার বৈশিষ্ট্য
ক্রোম 119
- ফিল্টারযোগ্য 32-বিট ফ্লোট টেক্সচার
- unorm10-10-10-2 শীর্ষবিন্দু বিন্যাস
- rgb10a2uint টেক্সচার ফরম্যাট
- ভোরের আপডেট
ক্রোম 118
-
copyExternalImageToTexture()
এ HTMLImageElement এবং ImageData সমর্থন - পঠন-লেখা এবং শুধুমাত্র-পঠন সঞ্চয়স্থান টেক্সচারের জন্য পরীক্ষামূলক সমর্থন
- ভোরের আপডেট
ক্রোম 117
- শীর্ষবিন্দু বাফার আনসেট করুন
- বাইন্ড গ্রুপ আনসেট করুন
- ডিভাইস হারিয়ে গেলে অ্যাসিঙ্ক পাইপলাইন তৈরির ত্রুটিগুলি নীরব করুন৷
- SPIR-V shader মডিউল তৈরির আপডেট
- বিকাশকারীর অভিজ্ঞতা উন্নত করা
- স্বয়ংক্রিয়ভাবে তৈরি লেআউট সহ পাইপলাইন ক্যাশ করা হচ্ছে
- ভোরের আপডেট
ক্রোম 116
- ওয়েবকোডেক্স ইন্টিগ্রেশন
- হারিয়ে যাওয়া ডিভাইস GPUAdapter
requestDevice()
দ্বারা ফেরত দেওয়া হয়েছে -
importExternalTexture()
বলা হলে ভিডিও প্লেব্যাক মসৃণ রাখুন - বিশেষ সঙ্গতি
- বিকাশকারীর অভিজ্ঞতা উন্নত করা
- ভোরের আপডেট
ক্রোম 115
- WGSL ভাষা এক্সটেনশন সমর্থিত
- Direct3D 11 এর জন্য পরীক্ষামূলক সমর্থন
- AC পাওয়ারে ডিফল্টরূপে আলাদা GPU পান
- বিকাশকারীর অভিজ্ঞতা উন্নত করা
- ভোরের আপডেট
ক্রোম 114
- জাভাস্ক্রিপ্ট অপ্টিমাইজ করুন
- getCurrentTexture() কনফিগার না করা ক্যানভাসে InvalidStateError নিক্ষেপ করে
- WGSL আপডেট
- ভোরের আপডেট