گروه W3C GU for the Web Community Group، یک زبان سایه پردازی گرافیکی جدید برای اِیپیآی WebGPU که با نام «Web High Level Shading Language» (زبان سایه پردازی سطح بالای وب) یا WHLSL (که به صورت «whistle» تلفظ میشود) شناخته میشود را معرفی کرد. این زبان در واقع HLSL (زبان سایه پردازی سطح بالا برای DirectX) را در جهت فراهم کردن امنیت بیشتر گسترش میدهد.
سال پیش، گروه W3C GU for the Web Community Group توسط مهندسانی از Apple، Mozilla، Microsoft، Google و برخی شرکتهای دیگر تشکیل شد. این گروه در جهت آوردن یک اِیپیآی گرافیک سه بعدی سطح پایین به نام WebGPU کار میکرد.
WebGPU، درست به مانند هر اِیپیآی گرافیک سه بعدی مدرن دیگری، از سایه پردازها استفاده میکند. سایه پردازها، برنامههایی هستند که از معماری خاص GPUها بهره میبرند. برای مثال، برنامههایی که برای Metal طراحی شدهاند از Metal Shading Language استفاده میکنند، برنامههایی که برای DirectX طراحی شدهاند از HLSL استفاده میکنند، و برنامههایی که برای Vulkan طراحی شدهاند از SPIR-V یا GLSL استفاده میکنند. به همین علت گروه WebKit، سایه پرداز WHLSL را برای اِیپیآی WebGPU معرفی کرد.
در اینجا برخی از نیازمندیها را مشاهده مینمایید که WHLSL در هدف دارد تا برآورده کند:
نیاز به یک زبان سایه پرداز امن
با صرف نظر از کاری که یک برنامه انجام میدهد، سایه پرداز فقط باید اجازه داشته باشد که دادهها را از دامنه صفحه وب بخواند. بدون این تضمین امنیتی، وبسایتهای مخرب میتوانند یک سایه پرداز را اجرا کنند که پیکسلها را از بخشهای دیگر صفحه، حتی از برنامههای بومی میخواند.
زبان مختص وب
برای تضمین قابلیت همکاری بین مرورگرها، یک زبان سایه پردازی برای Web باید به طور دقیق مشخص شده باشد. همچنین حتی گروههای رندر هم سایه پردازها را در زبان سفارشی خود مینویسند، و بعدا به هر زبان دیگری که مورد نیاز باشد کمپایل میشوند. به همین علت است که زبان سایه پرداز باید یک مجموعه کوچک از قواعد یکپارچه و قوانین بررسی تایپ داشته باشد تا نویسندگان کمپایلر بتوانند در هنگام منتشر کردن این زبان، به آن ارجاع کنند.
قابل ترجمه به زبانهای دیگر
از آنجایی که WebGPU طراحی شده است تا بر پایه Metal، Direct3D 12 و Vulkan کار کند، سایه پرداز مورد نظر باید قابلیت ترجمه به Metal Shading Language، HLSL (یا DXIL) و SPIR-V را داشته باشد. باید تدارکات نمایش دادن سایه پردازها، به گونهای که برای APIهای دیگر به جز WebGPU قابل قبول باشد، دیده شود.
یک زبان کارآمد
برای فراهم کردن یک کارایی بهتر به صورت کلی، کمپایلر باید سریعا اجرا شود و برنامههایی که توسط کمپایلر تولید شدهاند، باید به طور موثر بر روی GPUهای واقعی اجرا شوند.
سادگی در خواندن و نوشتن
خواندن و نوشتن زبان سایه پرداز باید برای توسعه دهندگان راحت باشد. این زبان باید هم برای توسعه دهندگان GPU و هم برای توسعه دهندگان CPU آشنا باشد. از آنجایی که برنامهنویسان GPU در نوشتن سایه پردازی تجربه دارند، مشتریهای مهمی هستند. و همچنین از آنجایی که حال GPUها به وسعت در زمینههای متنوعی مانند یادگیری ماشین و شبکههای عصبی استفاده میشوند، برنامهنویسان CPU هم مشتریهای مهمی هستند.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید