W3C வரைவு WebGPU தரநிலையை வெளியிடுகிறது

W3C ஆனது WebGPU மற்றும் WebGPU ஷேடிங் லாங்குவேஜ் (WGSL) விவரக்குறிப்புகளின் முதல் வரைவுகளை வெளியிட்டுள்ளது, இது ரெண்டரிங் மற்றும் கம்ப்யூட்டிங் போன்ற GPU செயல்பாடுகளைச் செய்வதற்கான APIகளை வரையறுக்கிறது. கருத்துரீதியாக வல்கன், மெட்டல் மற்றும் டைரக்ட்3டி 12 ஏபிஐகளைப் போன்றது. மொஸில்லா, கூகுள், ஆப்பிள் மற்றும் மைக்ரோசாப்ட் ஆகியவற்றின் பொறியாளர்களை உள்ளடக்கிய பணிக் குழுவினால் விவரக்குறிப்புகள் தயாரிக்கப்பட்டன.

கருத்துரீதியாக, WebGPU ஆனது WebGL இலிருந்து வல்கன் கிராபிக்ஸ் API ஆனது OpenGL இலிருந்து வேறுபடுவதைப் போலவே வேறுபடுகிறது, ஆனால் இது ஒரு குறிப்பிட்ட கிராபிக்ஸ் API ஐ அடிப்படையாகக் கொண்டது அல்ல, ஆனால் Vulkan, Metal மற்றும் ஆகியவற்றில் காணப்படும் அதே குறைந்த-நிலை ஆதிநிலைகளைப் பயன்படுத்தும் உலகளாவிய அடுக்கு ஆகும். டைரக்ட்3டி. WebGPU ஆனது அமைப்பு, செயலாக்கம் மற்றும் GPU க்கு கட்டளைகளை அனுப்புதல், தொடர்புடைய வளங்கள், நினைவகம், இடையகங்கள், அமைப்பு பொருள்கள் மற்றும் தொகுக்கப்பட்ட கிராபிக்ஸ் ஷேடர்கள் ஆகியவற்றின் மீது குறைந்த அளவிலான கட்டுப்பாட்டுடன் JavaScript பயன்பாடுகளை வழங்குகிறது. இந்த அணுகுமுறை மேல்நிலை செலவுகளைக் குறைப்பதன் மூலமும், GPU உடன் பணிபுரியும் திறனை அதிகரிப்பதன் மூலமும் கிராபிக்ஸ் பயன்பாடுகளுக்கான அதிக செயல்திறனை அடைய உங்களை அனுமதிக்கிறது.

வல்கன், மெட்டல் அல்லது டைரக்ட்3டியை நேரடியாக அணுகும், ஆனால் குறிப்பிட்ட இயங்குதளங்களுடன் இணைக்கப்படாத, தனித்தனி நிரல்களை விட மோசமாகச் செயல்படும் சிக்கலான 3டி திட்டங்களை வலைக்கு உருவாக்க WebGPU உதவுகிறது. WebGPU ஆனது WebAssembly இல் தொகுக்கப்படுவதன் மூலம் நேட்டிவ் கிராபிக்ஸ் புரோகிராம்களை வலை-இயக்கப்பட்ட வடிவத்திற்கு கொண்டு செல்வதற்கான கூடுதல் திறன்களை வழங்குகிறது. 3D கிராபிக்ஸ் தவிர, WebGPU ஆனது GPU க்கு கணக்கீடுகளை ஏற்றுவது மற்றும் ஷேடர்களை செயல்படுத்துவது தொடர்பான திறன்களையும் கொண்டுள்ளது.

WebGPU இன் முக்கிய அம்சங்கள்:

  • வளங்களின் தனி மேலாண்மை, ஆயத்த வேலை மற்றும் GPU க்கு கட்டளைகளை அனுப்புதல் (WebGL இல் ஒரு பொருள் ஒரே நேரத்தில் எல்லாவற்றிற்கும் பொறுப்பாகும்). மூன்று தனித்தனி சூழல்கள் வழங்கப்பட்டுள்ளன: இழைமங்கள் மற்றும் இடையகங்கள் போன்ற ஆதாரங்களை உருவாக்குவதற்கான GPU சாதனம்; ரெண்டரிங் மற்றும் கணக்கீட்டு நிலைகள் உட்பட தனிப்பட்ட கட்டளைகளை குறியாக்கம் செய்வதற்கான GPUCommandEncoder; GPUCommandBuffer GPU இல் செயல்படுத்துவதற்கு வரிசையில் இருக்க வேண்டும். முடிவு ஒன்று அல்லது அதற்கு மேற்பட்ட கேன்வாஸ் உறுப்புகளுடன் தொடர்புடைய பகுதியில் வழங்கப்படலாம் அல்லது வெளியீடு இல்லாமல் செயலாக்கப்படும் (உதாரணமாக, கம்ப்யூட் பணிகளை இயக்கும் போது). நிலைகளைப் பிரிப்பதன் மூலம் வள உருவாக்கம் மற்றும் தயாரிப்புச் செயல்பாடுகளை வெவ்வேறு த்ரெட்களில் இயங்கக்கூடிய வெவ்வேறு ஹேண்ட்லர்களாகப் பிரிப்பதை எளிதாக்குகிறது.
  • செயலாக்க நிலைகளுக்கு வேறுபட்ட அணுகுமுறை. WebGPU இரண்டு பொருட்களை வழங்குகிறது - GPURenderPipeline மற்றும் GPUComputePipeline, இது டெவலப்பரால் முன்பே வரையறுக்கப்பட்ட பல்வேறு நிலைகளை இணைக்க உங்களை அனுமதிக்கிறது, இது ஷேடர்களை மீண்டும் தொகுத்தல் போன்ற கூடுதல் வேலைகளில் வளங்களை வீணாக்காமல் இருக்க உலாவியை அனுமதிக்கிறது. ஆதரிக்கப்படும் நிலைகளில் பின்வருவன அடங்கும்: ஷேடர்கள், வெர்டெக்ஸ் பஃபர் மற்றும் பண்புக்கூறு தளவமைப்புகள், ஒட்டும் குழு தளவமைப்புகள், கலவை, ஆழம் மற்றும் வடிவங்கள் மற்றும் பிந்தைய-ரெண்டர் வெளியீட்டு வடிவங்கள்.
  • வல்கனின் வளக் குழு அம்சங்களைப் போலவே ஒரு பிணைப்பு மாதிரி. ஆதாரங்களை ஒன்றாகக் குழுவாக்க, WebGPU ஆனது GPUBindGroup பொருளை வழங்குகிறது, இது கட்டளைகளை எழுதும் போது ஷேடர்களில் பயன்படுத்த மற்ற ஒத்த பொருள்களுடன் இணைக்கப்படலாம். அத்தகைய குழுக்களை உருவாக்குவது, இயக்கி தேவையான ஆயத்த நடவடிக்கைகளை முன்கூட்டியே செய்ய அனுமதிக்கிறது, மேலும் டிரா அழைப்புகளுக்கு இடையில் ஆதார பிணைப்புகளை மிக வேகமாக மாற்ற உலாவியை அனுமதிக்கிறது. GPUBindGroupLayout பொருளைப் பயன்படுத்தி ஆதார பிணைப்புகளின் தளவமைப்பை முன் வரையறுக்கலாம்.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்