:

Szerző: Gálffy Csaba

2015. május 20. 12:22

Csak az Apple ódzkodik a vektoros típusoktól

Újabb front nyílhat a böngészőháborúban, a nagy böngészők ugyanis nem állnak fel egységesen a SIMD.js kiterjesztés mögött. Az új JavaScript-képesség a vektoros műveleteket gyorsíthatja, az Apple azonban elzárkózik az implementációtól.

Már csak az Apple maradt adós a SIMD.js támogatásával, miután a Google hivatalosan bejelentette, a Chrome-ban is implementálni fogja az új, különleges vektoros típusokat. A Microsoft és a Mozilla szintén beállt már a sorba, így várhatóan év végére minden jelentős részesedéssel rendelkező böngészőben elérhető lesz majd az új képesség - kivéve a Safarit. A támogatás már tesztelhető a Chrome és a Firefox fejlesztői kiadásában, év végére várhatóan a Chrome (és az azonos műszaki alapokat használó Opera), a Firefox és a Microsoft Edge is támogatni fogja a kiterjesztést.

SIMD.js - új típusok, vektoros feldolgozáshoz

A SIMD.js három új vektoros típust ad a JavaScripthez, a float64x4, float64x2 és uint32x4, valamint az ezekhez tartozó Typed Array nézeteket. A típusokon végzett műveleteket már az adott böngésző JavaScript-motorjának kell az adott hardverplatform által támogatott tulajdonképpeni SIMD-utasításokra lefordítani, a típusok használatával azonban lehetőség nyílik arra, hogy ezt a fejlesztő megkönnyítse.

Machine recruiting: nem biztos, hogy szeretni fogod

Az AI visszafordíthatatlanul beépült a toborzás folyamatába.

Machine recruiting: nem biztos, hogy szeretni fogod Az AI visszafordíthatatlanul beépült a toborzás folyamatába.

A típusok használatával rendkívül meggyorsítható az olyan adatok feldolgozása, amelyek jellemzően 2-3-4 tagú vektorokba rendezhetőek. Az első implementációk tesztjei szerint a gyorsulás adott feladatok alatt 3-12-szeres is lehet, elsősorban grafikus (2D és 3D) rutinok, digitális jelfeldolgozás és titkosítási illetve tömörítési eljárások profitálhatnak belőle. A gyorsulásból szintén hatalmasat profitálhatnak azok a keretrendszerek, amelyek a JavaScriptet köztes nyelvként használják - a dedikált SIMD típusok ezek teljesítményét is közelebb hozhatják a natív kódhoz.

Részletesebb leírást és bemutatót a Mozilla és az Intel oldalán lehet olvasni.

Az Apple nemet mond?

Egyelőre a nagy szereplők közül csak az Apple hallgat mélyen az implementációról. Mivel utóbbi a piac jelentős részét birtokolja az erős telefonos-tabletes jelenlét révén, a SIMD.js széles körű elterjedését visszafoghatja, ha a cég nem fogja azt támogatni. A Safari által használt motor, a WebKit fejlesztői levelezőlistáján Nadav Rotem, az Apple fejlesztője még tavaly ősszel fogalmazta meg a típusokkal kapcsolatos kritikát, eszerint a JS-fejlesztők helyett a motornak, a JIT-fordítónak kell gondoskodnia a JavaScript-kód vektorizációjáról, az adott processzor képességeinek megfelelően. Rotem kritikája szerint a SIMD.js használata egyenetlen, kiszámíthatatlan sebességet produkál hardvertől függően, ami pontosan a JavaScript hordozhatóságának ártana a leginkább.

A WebKit listán kibontakozó vitát érdemes végigolvasni, abból ugyanis a JavaScript jövőjét illető eltérő nézetek csapnak össze. Egyik oldalon a szereplők a JavaScriptet minél közelebb hoznák a natív kódhoz. Ez a hozzáállás egyre több hardveres képességet tesz elérhetővé a fejlesztő számára, mellékhatásként viszont az egyes architektúrák közti különbséggel is a fejlesztőnek kell megbirkóznia. A másik oldal a kiszámítható viselkedést és az architektúrák közötti hordozhatóságot szeretné maximalizálni és tiltakozik minden olyan kezdeményezés ellen, amely a fejlesztőnek hozzáférést ad hardverspecifikus funkciókhoz - ebben a vitában ezt az álláspontot az Apple fejlesztői képviselik.

Eleged van az eltérő környezetekből és az inkonzisztens build eredményekből? Frusztrál, hogy órákat kell töltened új fejlesztői környezetek beállításával? Többek között erről is szó lesz az AWS hazai online meetup-sorozatának ötödik, december 12-i állomásán.

a címlapról