Intel: Javascript将全面支持SIMD


发布者 sasasamoa  发布时间 1402567873886
关键字 行业动态  开源 

由英特尔首席高级工程师穆罕默德·礼萨·哈格哈特著。


注* 在Intel的新型芯片中,JavaScript将有直接操作SIMD的能力,界时JS的性能特别是图像渲染的性能将有大幅度提升(约4倍)。


现代微处理器利用并行性在一个受限的功率预算内实现高性能。通过单指令多数据(Single Instruction, Multiple Data, 即SIMD),处理器通过同时处理多个数据项的相同的操作,在应用程序中利用细粒度的并行性,在高功率效率中实现主要的性能改进。 SIMD特别适用于在图像/音频/视频处理中进行通用计算,包括计算机视觉和感知计算。由于其卓越的电源效率和优良的性能提升,SIMD在现代系统中的作用越来越大。然而,到现在为止,SIMD并没有全面支持JavaScript,这种浏览器的语言或者说“网页的汇编语言幸运的是,这种差距正在缩小。


在和摩斯拉与谷歌一个令人兴奋的合作中,英特尔为JavaScript带来了SIMD。这使得人们有可能开发新类别的的计算密集型应用,如游戏和媒体处理——所有都在JavaScript中——而无需依赖任何原生插件或不可移植的本地代码。 SIMD.JS可以在任何地方运行JavaScript的地方中运行。然而,它将有效地在支持SIMD的平台上更快,效率更高地运行。这既包括客户端平台(浏览器和混合移动HTML5的应用程序),以及运行JavaScript的服务器,例如通过Node.js的V8引擎。


我们已经推出了一套低级别的,可以直接在JavaScript中进行编程SIMD的API。该API可以通过一个JavaScript JIT编译器有效地映射到处理器的SIMD指令当这个处理器有SIMD功能;否则,默认的虚拟机实现将完成这个任务。摩斯拉的Emscripten编译器,通过LLVM编译C + +中的JavaScript,也被改进可以自动生成SIMD代码。该SIMD.JS API是体系结构中立的,并允许高效的SIMD在支持SIMD(例如,英特尔®架构和ARM)的不同的平台执行。

 

该SIMD.JS API实现的一个主要部分已经在火狐浏览器实现,我们对英特尔架构的SIMD的API的全面实施已提交给谷歌浏览器审查。在行动的早期阶段,我们使用float32x4和int32x4 SIMD操作的正在接近400%的速度。下面的屏幕截图显示了一个接近4倍的在计算Mandelbrot集中JavaScrip的性能提升。对我们其他的SIMD基准上,我们得到高达10倍甚至更多的巨大的加速。谷歌,英特尔和摩斯拉正在研究一种TC39 ECMAScript的提案,这将包括的未来JavaScript API SIMD的中的JavaScript标准的ES7版。



有令人振奋的证据表明,SIMD将启用全新的一类应用程序域和JavaScript中的高性能库。在英特尔,我们非常高兴能帮助在网络平台中缩小一直非常重要的性能差距,并一步一步走向完整无缝的跨平台计算。 

 

查看英特尔展示用于O'Reilly Fluent 2014大会的更多信息,包括更多精彩SIMD.JS基准测试结果。 

阅读白皮书,在JavaScript中的SIMD。 

 

参考文献: 

 

EcmaScript strawman 提案 

JavaScript即将支持SIMD ——阿克塞尔Rauschmayer博士先生的博客文章