SlideShare a Scribd company logo
1 of 39
Download to read offline
The Next Leap in JavaScript Performance 
Mohammad Reza Haghighat 
Senior Principal Engineer, Intel Corporation 
October 20, 2014
•HTML5 - The New Lingua Franca? 
•Exposing the full power of modern hardware to JavaScript* 
•Bringing Perceptual Computing to the web platform 
•Supporting JavaScript programming in Internet of Things (IoT) 
•Summary 
Agenda 
2
HTML5 – The New Lingua Franca? 
Native code 
PC spiral 
1991 
APPS 
.exe 
2001 
WEB HTML, Flash* 
Web – “Write once, run on any browser” 
2009 
APPS 
iOS*, Android*, Windows* 
App Stores 
Walled Gardens 
2015 
WEB 
HTML5 
“Write Once, Run Everywhere” 
“New open standards created in the mobile era, such as HTML5, will win on mobile devices.” – Steve Jobs 
“If you want to do something that is universal, no question, world is going HTML5.” – Steve Ballmer 
“It looks to me like HTML5 will eventually become a way almost all applications are built, including those on new phones.” – Eric Schmidt 
3
Web: The Ubiquitous Software Platform 
and the Application Model of the Future 
Big Data 
Rich Capabilities & Content 
Social Contextual Crowdsourced Sensors “Things” 
4
•HTML5 - The New Lingua Franca? 
•Exposing the full power of modern hardware to JavaScript* 
•Bringing Perceptual Computing to the web platform 
•Supporting JavaScript programming in Internet of Things (IoT) 
•Summary 
Agenda 
5
Achieving ~ 1.5x native running time via targeting asm.js†, a highly optimizable subset of JavaScript defined by Mozilla 
Astounding JavaScript* Performance With asm.js 
asm.js : a highly optimizable low-level subset of JavaScript 
http://www.unrealengine.com/html5/ 
Over 1M lines of C/C++ code compiled to JavaScript* by Mozilla* and Epic 
Epic* Games Unreal Engine* 3 
† Courtesy of Mozilla Alon Zakai & Luke Wagner (http://people.mozilla.org/~lwagner/gdc-pres/gdc-2014.html#/) 
asm.js 
Emscripten 
JavaScript* 
web 
LLVM Bitcode 
Very efficient code generated by Firefox* JIT 
6
Modern processors utilize parallelism to deliver high performance within a constrained power budget 
The March of Parallelism 
2002 
2006 
2008 
2012 
32 nm Tock 
2010 
2011 
2012 
2013 
22 nm Tick 
22 nm Tock 
Intel® Advanced Vector Extensions 
AVX2 FMA and integer support 
AVX 256-bit floating point 
1X=128-bit 
Since 2001 
Next Gen 
Intel® Xeon PhiTM 
AVX-512 512-bit vectors 
8X peak SIMD operations per core over 4 generations 
2X 
2X 
2X 
7
Optimizing Web Runtimes for Parallelism 
Web runtimes need to be parallel end-to-end 
Parse + build 
DOM 
JavaScript* 
Layout Engine 
Render 
GPU: parallel 
CPU: mainly single-threaded 
35% 
33% 
21% 
11% 
Render 
35% 
Layout 
33% 
Other 
21% 
JS 
11% 
•HTML5 runtimes of today are not scalable with number of cores 
•Need parallelism for both responsiveness and energy efficiency 
8
Parallel Parsing and Compilation 
Background JIT compilers now in Chrome*, Firefox, Internet Explorer*, Safari* 
PESPMA 2009 
Four threads for JavaScript* parsing and compilation 
JS and GFX execution 
Epic* Citadel* profile on Firefox* 
43.6 
16.6 
12.8 
6.7 
6.4 
6.2 
4.6 
2.2 
0.9 
Cycle Breakdown by Categories 
js::compile 
gfx::compile 
os::others 
js::parse 
js::others 
browser::others 
os::mem 
js::jitted 
gfx::exec 
bootstrap 
launch 
4 threads 
1 thread 
9
Layout Engine: a performance bottleneck 
Mozilla* Firefox* Page-Load Tests 
Zimbra* Collaboration Suite* 
ul em {color:blue} 
CSS rule matching 
~33% of the layout 
HotPar 2010 
Browser layout engine is a bottleneck but amenable to parallelism 
10 
Layout Engine ~42% execution 
Towards Parallelizing the Browser Layout Engine
Parallel JavaScript* 
•Started at Intel Labs, now with Mozilla* 
•Extends JavaScript* with a data-parallel API 
•Designed for multi-core CPUs and GPUs 
•Simple, portable, and secure 
Array increment example: 
A.map(function(a) {return a+1;}); 
A.mapPar(function(a) {return a+1;}); 
Sequential 
Parallel 
Accelerated animation of 3D avatars: 
more characters and more realism 
Parallel JavaScript goal is to enable data-parallelism in web applications 
11
SIMD – Single Instruction, Multiple Data 
SIMD operations deliver great performance & power efficiency 
Scalar Operation 
Cx 
Cy 
Cz 
Cw 
= 
= 
= 
= 
Ax 
Ay 
Az 
Aw 
Bx 
By 
Bz 
Bw 
+ 
+ 
+ 
+ 
Cx 
Cy 
Cz 
Cw 
Ax 
Ay 
Az 
Aw 
Bx 
By 
Bz 
Bw 
+ 
= 
SIMD Operation of Vector Length 4 
Intel® Architecture currently has SIMD operations of vector length 4, 8, 16 
12
SIMD - A Gap Between JavaScript* and Native 
SIMD in JavaScript further reduces the performance gap 
Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark* and MobileMark*, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. 
A Google*/Intel/Mozilla* ECMA TC39 Joint Project 
•Bugzilla*: https://bugzilla.mozilla.org/show_bug.cgi?id=894105 
•John McCutchan’s strawman proposal: http://wiki.ecmascript.org/doku.php?id=strawman:simd_number 
C++ code for list average 
“Proposed” JavaScript* code 
SIMD code by ICC 
13
SIMD.JS – The API 
† Initial support for float32x4 and int32x4 
Our SIMD prototype delivers 3x~4x Mandelbrot speedup† 
Our Firefox* Prototype 
14
Demo: Combining SIMD and Higher-Level Parallelism 
SIMD speedup is nicely multiplied by WebWorkers† 
† Source: Intel® Peter Jensen : https://github.com/PeterJensen/mandelbrot 
WW: Number of WebWorkers 
Our Chromium* Prototype 
15
SIMD Speedups on our Chromium* Prototype 
3.2 
3.6 
3.8 
3.9 
4.6 
5.0 
6.0 
9.5 
3.2 
3.8 
3.4 
6.1 
6.5 
5.0 
5.6 
11.8 
6.8 
3.1 
2.7 
4.5 
4.2 
3.8 
5.4 
9.3 
0 
2 
4 
6 
8 
10 
12 
14 
Transpose4x4 
AOBench 
Mandelbrot 
MatrixMultiplication 
VertexTransform 
Average 
ShiftRows 
Matrix4x4Inverse 
SIMD x-times faster than non-SIMD 
 
 
 
3rd Generation Intel® Core™ i7 processor (3667U)@ 2.00 GHz, 32-bit, Ubuntu* 13 3rd Generation Intel® Core™ i7 processor (3667U)@ 2.00 GHz, 64-bit, Ubuntu* 13 Intel® Atom™ processor Z3770 @ 1.46GHz, Android* 4.4 
Excellent early results while still focused on functionality 
Theoretical speedup limit is 4 
SIMD.JS benchmarks: https://github.com/johnmccutchan/ecmascript_simd/tree/master/src/benchmarks 
16
SIMD.JS Proposal and Polyfill API 
SIMD Number (Google’s John McCutchan & Intel’s Peter Jensen): 
http://wiki.ecmascript.org/doku.php?id=strawman:simd_number 
Polyfill API: https://github.com/johnmccutchan/ecmascript_simd 
float32x4, int32x4, Float32x4Array, Int32x4Array 
Constructors: float32x4(x,y,z,w) float32x4.zero() float32x4.splat(s) 
Operations: abs, neg, add, sub, mul, div, clamp, min, max, reciprocal, reciprocalSqrt, scale, sqrt, shuffle, shuffleMix, withX, withY, withZ, withW, lessThan, lessThanOrEqual, equal, notEqual, greaterThanOrEqual, greaterThan, bitsToInt32x4, toInt32x4, … 
The joint Google*/Intel/Mozilla* SIMD.JS proposal was approved to advance to the next stage of ECMAScript* TC39 standardization stage† 
† A copy of the TC39 Presentation: http://esdiscuss.org/notes/2014-07/simd-128-tc39.pdf 
17
Emscripten now targets SIMD.JS 
Emscripten generates SIMD.JS from C++ SIMD intrinsics & auto-vectorized code 
Near-native SIMD.JS speedup 
C/C++ 
JavaScript* 
1.00 
2.03 
7.18 
8.13 
0 
2 
4 
6 
8 
10 
Speedup over Scalar JS 
Scalar JS 
Scalar C++ 
SIMD JS 
SIMD C++ 
18
Crosswalk in Brief 
Application Runtime 
Follow us at @xwalk_project 
crosswalk-project.org 
Open Source, using Blink* & Chromium* 
Today on Android* and Tizen* 
Easy addition of extensible APIs 
Easy access to device APIs 
Intel® platform capabilities 
Latest HTML5 features in packaged web apps 
Focuses on security, performance and standards compliance 
Based on web technologies: HTML5, CSS3, JavaScript* 
Updated & released to the latest Chromium every 6 weeks 
19
Intel® XDK – Cross-platform Development Kit 
Develop, debug, profile, and build responsive web & hybrid apps 
Free at http://xdk.intel.com 
Remote debugging & profiling 
20
•HTML5 - The New Lingua Franca? 
•Exposing the full power of modern hardware to JavaScript* 
•Bringing Perceptual Computing to the web platform 
•Supporting JavaScript programming in Internet of Things (IoT) 
•Summary 
Agenda 
21
Toward Perceptual Computing† 
Devices sense & perceive user actions in a natural & intuitive way 
† Source: Intel® Perceptual Computing SDK: www.intel.com/software/perceptual 
Speech Recognition 
Close-Range Tracking 
Gesture Recognition 
2D/ 3D Object Tracking 
Facial Analysis 
22
Reinventing Everyday Usages 
Perceptual Computing opens up new dimensions in interacting with machine 
Learning & Education 
3D Scanning and Sharing 
Scan it 
Share it 
Customize 
& Print it 
Immersive Collaboration 
Gaming 
Out-of-reach Device Input 
23
Demos: Media Capture Depth Stream Extension† 
† Source: Intel® Ningxin Hu: https://github.com/huningxin/depth_stream_examples 
WebRTC Google* Code: http://webrtc.googlecode.com/svn/trunk/samples/js/demos/html/ 
Magic Xylophone: Soundstep*.com: http://www.soundstep.com/blog/experiments/jsdetection/ 
24
Enabling 3D Camera on Web Platform 
3D Camera 
•Beyond color: additional per-pixel distance 
•Intel® RealSense™ on PC & tablets soon 
Applications 
•Real-time hand/finger/object tracking 
•3D scanning 
•Video conferencing 
Depth on Web Platform† 
•Media Capture Depth Stream Extension 
•Rendering & post-processing: <video>, <canvas>, WebGL* and SIMD.JS 
•Streaming: transmit as MediaStream via WebRTC RTCPeerConnection 
† Source: Intel® Ningxin Hu: https://github.com/huningxin/depth_stream_examples 
25
Proposed Media Capture Depth Stream Extension† 
† Source: http://w3c.github.io/mediacapture-depth/ 
Web Application 
Browser or HTML5 runtime 
RGB Stream 
Depth 
Stream 
getUserMedia (WebRTC) API 
26
Gaming 
Wireless Display for the Web 
Unlock exciting new user experiences in HTML5 
Presentation 
† Big Buck Bunny video: http://www.bigbuckbunny.org/ 
Media Sharing/Casting† 
27
•Connects web content to screens around you 
•Hides display connection technologies from the developer 
•Apple* AirPlay*, Microsoft* PlayTo*, 
Google* Chromecast*, Miracast*, Intel® Widi 
•Simple, high level API, easy to use 
http://webscreens.github.io/presentation-api/ 
HTML5 Presentation API Proposal† 
† Source: Intel® Dominik Röttsches 
New standards-based feature for the cross-platform web 
28
•HTML5 - The New Lingua Franca? 
•Exposing the full power of modern hardware to JavaScript* 
•Bringing Perceptual Computing to the web platform 
•Supporting JavaScript programming in Internet of Things (IoT) 
•Summary 
Agenda 
29
Intel® XDK IoT Edition 
Companion Apps 
Streamlined Workflow Design, Test, and Build Tools 
•Quick start samples and templates 
•Built-in editor and emulators 
•UI Frameworks and Apache Cordova* APIs 
•Test and debug tools 
•Integration with Cloud Services APIs 
Design and build cross-platform companion apps easily for Android*, iOS*, and Windows* 
30
Intel® XDK 
IoT Edition 
JavaScript* apps on IoT 
devices 
Integrated Development Environment 
Create, Debug, and Run Tools 
• JavaScript allows easy on-board app development 
and deployment for many IoT devices 
• Use JavaScript to define behavior of IoT device 
• Deploy, run, debug on IoT device with JavaScript 
• Integration with cloud, web services, and sensors 
through JavaScript APIs 
IoT Device 
Edit JavaScript app 
Send app to device 
Run app remotely 
Remote debug 
Development Platform 
Development System 
31
Internet of Things (IoT) Device (Intel® Galileo): 
•PWM Led Controller on I2C bus 
•RGB Led 
•Node.js with Socket.io server 
HTML App (Lenovo* K900): 
•Socket.io connection to IoT device 
•Change lighting color 
•Cordova* App 
Both made using: 
Demo: Programming Internet of Things using Intel® XDK IoT Edition 
† Source: Intel® Dan Yocom: http://xdk-software.intel.com/iot_edition_demo_video 
RGB Lighting† 
Intel® XDK IoT Edition 
32
•HTML5 - The New Lingua Franca? 
•Exposing the full power of modern hardware to JavaScript* 
•Bringing Perceptual Computing to the web platform 
•Supporting JavaScript programming in Internet of Things (IoT) 
•Summary 
Agenda 
33
•HTML5 is closing the gaps with native models 
•SIMD in JavaScript* enables a large new class of high-performance apps 
•JavaScript is about to get a lot faster for such domains as gaming 
•Depth Camera support in HTML5 WebRTC enables exciting use cases 
•JavaScript is proliferating rapidly in Internet of Things 
•Intel® XDK supports end-to-end programming for Internet of Things 
•HTML5 is the application model of the future 
Summary 
34
Web: The Ubiquitous Software Platform 
and the Application Model of the Future 
Big Data 
Rich Capabilities & Content 
Social Contextual 
Crowdsourced 
Sensors 
“Things” 
35
Download Firefox* Nightly and experience† the benefits of SIMD.JS 
Leverage the power of SIMD.JS through Intel® XDK and Crosswalk 
Download Intel® XDK free at http://xdk.intel.com 
Call to Action 
† SIMD.JS demos: http://peterjensen.github.io/idf2014-simd 
36
Intel® Developer Zone 
•Free tools and code samples 
•Technical articles, forums and tutorials 
•Connect with Intel and industry experts 
•Get development support 
•Build relationships 
Tools. Knowledge. Community. 
software.intel.com 
37
Legal Disclaimer 
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. A "Mission Critical Application" is any application in which failure of the Intel Product could result, directly or indirectly, in personal injury or death. SHOULD YOU PURCHASE OR USE INTEL'S PRODUCTS FOR ANY SUCH MISSION CRITICAL APPLICATION, YOU SHALL INDEMNIFY AND HOLD INTEL AND ITS SUBSIDIARIES, SUBCONTRACTORS AND AFFILIATES, AND THE DIRECTORS, OFFICERS, AND EMPLOYEES OF EACH, HARMLESS AGAINST ALL CLAIMS COSTS, DAMAGES, AND EXPENSES AND REASONABLE ATTORNEYS' FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, ANY CLAIM OF PRODUCT LIABILITY, PERSONAL INJURY, OR DEATH ARISING IN ANY WAY OUT OF SUCH MISSION CRITICAL APPLICATION, WHETHER OR NOT INTEL OR ITS SUBCONTRACTOR WAS NEGLIGENT IN THE DESIGN, MANUFACTURE, OR WARNING OF THE INTEL PRODUCT OR ANY OF ITS PARTS. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined". Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to: http://www.intel.com/design/literature.htm Intel, Core, Atom, Xeon Phi, RealSense, Look Inside and the Intel logo are trademarks of Intel Corporation in the United States and other countries. *Other names and brands may be claimed as the property of others. Copyright ©2014 Intel Corporation. 
38
The Next Leap in JavaScript Performance

More Related Content

What's hot

Build HTML5 App (Intel Elements 2011)
Build HTML5 App (Intel Elements 2011)Build HTML5 App (Intel Elements 2011)
Build HTML5 App (Intel Elements 2011)Ariya Hidayat
 
Introduction to QtWebKit
Introduction to QtWebKitIntroduction to QtWebKit
Introduction to QtWebKitAriya Hidayat
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Andreas Jakl
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIOpersys inc.
 
Targeting Android with Qt
Targeting Android with QtTargeting Android with Qt
Targeting Android with QtEspen Riskedal
 
Logstash Editor: The vscode extension to boost your productivity!
Logstash Editor: The vscode extension to boost your productivity!Logstash Editor: The vscode extension to boost your productivity!
Logstash Editor: The vscode extension to boost your productivity!Fabien Baligand
 
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin CoumansGS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin CoumansAMD Developer Central
 

What's hot (7)

Build HTML5 App (Intel Elements 2011)
Build HTML5 App (Intel Elements 2011)Build HTML5 App (Intel Elements 2011)
Build HTML5 App (Intel Elements 2011)
 
Introduction to QtWebKit
Introduction to QtWebKitIntroduction to QtWebKit
Introduction to QtWebKit
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VI
 
Targeting Android with Qt
Targeting Android with QtTargeting Android with Qt
Targeting Android with Qt
 
Logstash Editor: The vscode extension to boost your productivity!
Logstash Editor: The vscode extension to boost your productivity!Logstash Editor: The vscode extension to boost your productivity!
Logstash Editor: The vscode extension to boost your productivity!
 
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin CoumansGS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
 

Similar to The Next Leap in JavaScript Performance

Web Machine Learning (ML) API POC march update
Web Machine Learning (ML) API POC march updateWeb Machine Learning (ML) API POC march update
Web Machine Learning (ML) API POC march updatehuningxin
 
A164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkA164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkToby Corbin
 
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...Embarcados
 
모바일 트렌드와 iOS
모바일 트렌드와 iOS모바일 트렌드와 iOS
모바일 트렌드와 iOSJung Kim
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTManuel Carrasco Moñino
 
NET core 2 e i fratelli
NET core 2 e i fratelliNET core 2 e i fratelli
NET core 2 e i fratelliAndrea Tosato
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentDavid Galeano
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalRAdam Mokan
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionJohn Archer
 
Mobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDKMobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDKIntel® Software
 
IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016Vaidheswaran CS
 
Crosswalk and the Intel XDK
Crosswalk and the Intel XDKCrosswalk and the Intel XDK
Crosswalk and the Intel XDKIntel® Software
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Androidnatdefreitas
 
.NET Everywhere and for Everyone
.NET Everywhere and for Everyone.NET Everywhere and for Everyone
.NET Everywhere and for EveryoneJames Montemagno
 
Minko - Build WebGL applications with C++ and asm.js
Minko - Build WebGL applications with C++ and asm.jsMinko - Build WebGL applications with C++ and asm.js
Minko - Build WebGL applications with C++ and asm.jsMinko3D
 

Similar to The Next Leap in JavaScript Performance (20)

Web Leaps Forward
Web Leaps ForwardWeb Leaps Forward
Web Leaps Forward
 
Web Machine Learning (ML) API POC march update
Web Machine Learning (ML) API POC march updateWeb Machine Learning (ML) API POC march update
Web Machine Learning (ML) API POC march update
 
A164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkA164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdk
 
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
 
Build 2019 Recap
Build 2019 RecapBuild 2019 Recap
Build 2019 Recap
 
모바일 트렌드와 iOS
모바일 트렌드와 iOS모바일 트렌드와 iOS
모바일 트렌드와 iOS
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
 
NET core 2 e i fratelli
NET core 2 e i fratelliNET core 2 e i fratelli
NET core 2 e i fratelli
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
 
Mobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDKMobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDK
 
IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016
 
Crosswalk and the Intel XDK
Crosswalk and the Intel XDKCrosswalk and the Intel XDK
Crosswalk and the Intel XDK
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 
.NET Everywhere and for Everyone
.NET Everywhere and for Everyone.NET Everywhere and for Everyone
.NET Everywhere and for Everyone
 
Andrew Resume
Andrew ResumeAndrew Resume
Andrew Resume
 
Minko - Build WebGL applications with C++ and asm.js
Minko - Build WebGL applications with C++ and asm.jsMinko - Build WebGL applications with C++ and asm.js
Minko - Build WebGL applications with C++ and asm.js
 
Node js
Node jsNode js
Node js
 
Easy IoT with JavaScript
Easy IoT with JavaScriptEasy IoT with JavaScript
Easy IoT with JavaScript
 

More from Intel® Software

AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology Intel® Software
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaPython Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaIntel® Software
 
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSciStreamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSciIntel® Software
 
AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.Intel® Software
 
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Intel® Software
 
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...Intel® Software
 
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...Intel® Software
 
AWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI ResearchAWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI ResearchIntel® Software
 
Intel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview SlidesIntel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview SlidesIntel® Software
 
AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019Intel® Software
 
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019Intel® Software
 
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Intel® Software
 
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...Intel® Software
 
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...Intel® Software
 
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...Intel® Software
 
AIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino SlidesAIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino SlidesIntel® Software
 
AIDC India - AI Vision Slides
AIDC India - AI Vision SlidesAIDC India - AI Vision Slides
AIDC India - AI Vision SlidesIntel® Software
 
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...Intel® Software
 

More from Intel® Software (20)

AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaPython Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and Anaconda
 
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSciStreamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
 
AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.
 
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
 
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
 
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
 
AWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI ResearchAWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI Research
 
Intel Developer Program
Intel Developer ProgramIntel Developer Program
Intel Developer Program
 
Intel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview SlidesIntel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview Slides
 
AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019
 
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
 
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
 
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
 
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
 
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
 
AIDC India - AI on IA
AIDC India  - AI on IAAIDC India  - AI on IA
AIDC India - AI on IA
 
AIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino SlidesAIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino Slides
 
AIDC India - AI Vision Slides
AIDC India - AI Vision SlidesAIDC India - AI Vision Slides
AIDC India - AI Vision Slides
 
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
 

Recently uploaded

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

The Next Leap in JavaScript Performance

  • 1. The Next Leap in JavaScript Performance Mohammad Reza Haghighat Senior Principal Engineer, Intel Corporation October 20, 2014
  • 2. •HTML5 - The New Lingua Franca? •Exposing the full power of modern hardware to JavaScript* •Bringing Perceptual Computing to the web platform •Supporting JavaScript programming in Internet of Things (IoT) •Summary Agenda 2
  • 3. HTML5 – The New Lingua Franca? Native code PC spiral 1991 APPS .exe 2001 WEB HTML, Flash* Web – “Write once, run on any browser” 2009 APPS iOS*, Android*, Windows* App Stores Walled Gardens 2015 WEB HTML5 “Write Once, Run Everywhere” “New open standards created in the mobile era, such as HTML5, will win on mobile devices.” – Steve Jobs “If you want to do something that is universal, no question, world is going HTML5.” – Steve Ballmer “It looks to me like HTML5 will eventually become a way almost all applications are built, including those on new phones.” – Eric Schmidt 3
  • 4. Web: The Ubiquitous Software Platform and the Application Model of the Future Big Data Rich Capabilities & Content Social Contextual Crowdsourced Sensors “Things” 4
  • 5. •HTML5 - The New Lingua Franca? •Exposing the full power of modern hardware to JavaScript* •Bringing Perceptual Computing to the web platform •Supporting JavaScript programming in Internet of Things (IoT) •Summary Agenda 5
  • 6. Achieving ~ 1.5x native running time via targeting asm.js†, a highly optimizable subset of JavaScript defined by Mozilla Astounding JavaScript* Performance With asm.js asm.js : a highly optimizable low-level subset of JavaScript http://www.unrealengine.com/html5/ Over 1M lines of C/C++ code compiled to JavaScript* by Mozilla* and Epic Epic* Games Unreal Engine* 3 † Courtesy of Mozilla Alon Zakai & Luke Wagner (http://people.mozilla.org/~lwagner/gdc-pres/gdc-2014.html#/) asm.js Emscripten JavaScript* web LLVM Bitcode Very efficient code generated by Firefox* JIT 6
  • 7. Modern processors utilize parallelism to deliver high performance within a constrained power budget The March of Parallelism 2002 2006 2008 2012 32 nm Tock 2010 2011 2012 2013 22 nm Tick 22 nm Tock Intel® Advanced Vector Extensions AVX2 FMA and integer support AVX 256-bit floating point 1X=128-bit Since 2001 Next Gen Intel® Xeon PhiTM AVX-512 512-bit vectors 8X peak SIMD operations per core over 4 generations 2X 2X 2X 7
  • 8. Optimizing Web Runtimes for Parallelism Web runtimes need to be parallel end-to-end Parse + build DOM JavaScript* Layout Engine Render GPU: parallel CPU: mainly single-threaded 35% 33% 21% 11% Render 35% Layout 33% Other 21% JS 11% •HTML5 runtimes of today are not scalable with number of cores •Need parallelism for both responsiveness and energy efficiency 8
  • 9. Parallel Parsing and Compilation Background JIT compilers now in Chrome*, Firefox, Internet Explorer*, Safari* PESPMA 2009 Four threads for JavaScript* parsing and compilation JS and GFX execution Epic* Citadel* profile on Firefox* 43.6 16.6 12.8 6.7 6.4 6.2 4.6 2.2 0.9 Cycle Breakdown by Categories js::compile gfx::compile os::others js::parse js::others browser::others os::mem js::jitted gfx::exec bootstrap launch 4 threads 1 thread 9
  • 10. Layout Engine: a performance bottleneck Mozilla* Firefox* Page-Load Tests Zimbra* Collaboration Suite* ul em {color:blue} CSS rule matching ~33% of the layout HotPar 2010 Browser layout engine is a bottleneck but amenable to parallelism 10 Layout Engine ~42% execution Towards Parallelizing the Browser Layout Engine
  • 11. Parallel JavaScript* •Started at Intel Labs, now with Mozilla* •Extends JavaScript* with a data-parallel API •Designed for multi-core CPUs and GPUs •Simple, portable, and secure Array increment example: A.map(function(a) {return a+1;}); A.mapPar(function(a) {return a+1;}); Sequential Parallel Accelerated animation of 3D avatars: more characters and more realism Parallel JavaScript goal is to enable data-parallelism in web applications 11
  • 12. SIMD – Single Instruction, Multiple Data SIMD operations deliver great performance & power efficiency Scalar Operation Cx Cy Cz Cw = = = = Ax Ay Az Aw Bx By Bz Bw + + + + Cx Cy Cz Cw Ax Ay Az Aw Bx By Bz Bw + = SIMD Operation of Vector Length 4 Intel® Architecture currently has SIMD operations of vector length 4, 8, 16 12
  • 13. SIMD - A Gap Between JavaScript* and Native SIMD in JavaScript further reduces the performance gap Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark* and MobileMark*, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. A Google*/Intel/Mozilla* ECMA TC39 Joint Project •Bugzilla*: https://bugzilla.mozilla.org/show_bug.cgi?id=894105 •John McCutchan’s strawman proposal: http://wiki.ecmascript.org/doku.php?id=strawman:simd_number C++ code for list average “Proposed” JavaScript* code SIMD code by ICC 13
  • 14. SIMD.JS – The API † Initial support for float32x4 and int32x4 Our SIMD prototype delivers 3x~4x Mandelbrot speedup† Our Firefox* Prototype 14
  • 15. Demo: Combining SIMD and Higher-Level Parallelism SIMD speedup is nicely multiplied by WebWorkers† † Source: Intel® Peter Jensen : https://github.com/PeterJensen/mandelbrot WW: Number of WebWorkers Our Chromium* Prototype 15
  • 16. SIMD Speedups on our Chromium* Prototype 3.2 3.6 3.8 3.9 4.6 5.0 6.0 9.5 3.2 3.8 3.4 6.1 6.5 5.0 5.6 11.8 6.8 3.1 2.7 4.5 4.2 3.8 5.4 9.3 0 2 4 6 8 10 12 14 Transpose4x4 AOBench Mandelbrot MatrixMultiplication VertexTransform Average ShiftRows Matrix4x4Inverse SIMD x-times faster than non-SIMD    3rd Generation Intel® Core™ i7 processor (3667U)@ 2.00 GHz, 32-bit, Ubuntu* 13 3rd Generation Intel® Core™ i7 processor (3667U)@ 2.00 GHz, 64-bit, Ubuntu* 13 Intel® Atom™ processor Z3770 @ 1.46GHz, Android* 4.4 Excellent early results while still focused on functionality Theoretical speedup limit is 4 SIMD.JS benchmarks: https://github.com/johnmccutchan/ecmascript_simd/tree/master/src/benchmarks 16
  • 17. SIMD.JS Proposal and Polyfill API SIMD Number (Google’s John McCutchan & Intel’s Peter Jensen): http://wiki.ecmascript.org/doku.php?id=strawman:simd_number Polyfill API: https://github.com/johnmccutchan/ecmascript_simd float32x4, int32x4, Float32x4Array, Int32x4Array Constructors: float32x4(x,y,z,w) float32x4.zero() float32x4.splat(s) Operations: abs, neg, add, sub, mul, div, clamp, min, max, reciprocal, reciprocalSqrt, scale, sqrt, shuffle, shuffleMix, withX, withY, withZ, withW, lessThan, lessThanOrEqual, equal, notEqual, greaterThanOrEqual, greaterThan, bitsToInt32x4, toInt32x4, … The joint Google*/Intel/Mozilla* SIMD.JS proposal was approved to advance to the next stage of ECMAScript* TC39 standardization stage† † A copy of the TC39 Presentation: http://esdiscuss.org/notes/2014-07/simd-128-tc39.pdf 17
  • 18. Emscripten now targets SIMD.JS Emscripten generates SIMD.JS from C++ SIMD intrinsics & auto-vectorized code Near-native SIMD.JS speedup C/C++ JavaScript* 1.00 2.03 7.18 8.13 0 2 4 6 8 10 Speedup over Scalar JS Scalar JS Scalar C++ SIMD JS SIMD C++ 18
  • 19. Crosswalk in Brief Application Runtime Follow us at @xwalk_project crosswalk-project.org Open Source, using Blink* & Chromium* Today on Android* and Tizen* Easy addition of extensible APIs Easy access to device APIs Intel® platform capabilities Latest HTML5 features in packaged web apps Focuses on security, performance and standards compliance Based on web technologies: HTML5, CSS3, JavaScript* Updated & released to the latest Chromium every 6 weeks 19
  • 20. Intel® XDK – Cross-platform Development Kit Develop, debug, profile, and build responsive web & hybrid apps Free at http://xdk.intel.com Remote debugging & profiling 20
  • 21. •HTML5 - The New Lingua Franca? •Exposing the full power of modern hardware to JavaScript* •Bringing Perceptual Computing to the web platform •Supporting JavaScript programming in Internet of Things (IoT) •Summary Agenda 21
  • 22. Toward Perceptual Computing† Devices sense & perceive user actions in a natural & intuitive way † Source: Intel® Perceptual Computing SDK: www.intel.com/software/perceptual Speech Recognition Close-Range Tracking Gesture Recognition 2D/ 3D Object Tracking Facial Analysis 22
  • 23. Reinventing Everyday Usages Perceptual Computing opens up new dimensions in interacting with machine Learning & Education 3D Scanning and Sharing Scan it Share it Customize & Print it Immersive Collaboration Gaming Out-of-reach Device Input 23
  • 24. Demos: Media Capture Depth Stream Extension† † Source: Intel® Ningxin Hu: https://github.com/huningxin/depth_stream_examples WebRTC Google* Code: http://webrtc.googlecode.com/svn/trunk/samples/js/demos/html/ Magic Xylophone: Soundstep*.com: http://www.soundstep.com/blog/experiments/jsdetection/ 24
  • 25. Enabling 3D Camera on Web Platform 3D Camera •Beyond color: additional per-pixel distance •Intel® RealSense™ on PC & tablets soon Applications •Real-time hand/finger/object tracking •3D scanning •Video conferencing Depth on Web Platform† •Media Capture Depth Stream Extension •Rendering & post-processing: <video>, <canvas>, WebGL* and SIMD.JS •Streaming: transmit as MediaStream via WebRTC RTCPeerConnection † Source: Intel® Ningxin Hu: https://github.com/huningxin/depth_stream_examples 25
  • 26. Proposed Media Capture Depth Stream Extension† † Source: http://w3c.github.io/mediacapture-depth/ Web Application Browser or HTML5 runtime RGB Stream Depth Stream getUserMedia (WebRTC) API 26
  • 27. Gaming Wireless Display for the Web Unlock exciting new user experiences in HTML5 Presentation † Big Buck Bunny video: http://www.bigbuckbunny.org/ Media Sharing/Casting† 27
  • 28. •Connects web content to screens around you •Hides display connection technologies from the developer •Apple* AirPlay*, Microsoft* PlayTo*, Google* Chromecast*, Miracast*, Intel® Widi •Simple, high level API, easy to use http://webscreens.github.io/presentation-api/ HTML5 Presentation API Proposal† † Source: Intel® Dominik Röttsches New standards-based feature for the cross-platform web 28
  • 29. •HTML5 - The New Lingua Franca? •Exposing the full power of modern hardware to JavaScript* •Bringing Perceptual Computing to the web platform •Supporting JavaScript programming in Internet of Things (IoT) •Summary Agenda 29
  • 30. Intel® XDK IoT Edition Companion Apps Streamlined Workflow Design, Test, and Build Tools •Quick start samples and templates •Built-in editor and emulators •UI Frameworks and Apache Cordova* APIs •Test and debug tools •Integration with Cloud Services APIs Design and build cross-platform companion apps easily for Android*, iOS*, and Windows* 30
  • 31. Intel® XDK IoT Edition JavaScript* apps on IoT devices Integrated Development Environment Create, Debug, and Run Tools • JavaScript allows easy on-board app development and deployment for many IoT devices • Use JavaScript to define behavior of IoT device • Deploy, run, debug on IoT device with JavaScript • Integration with cloud, web services, and sensors through JavaScript APIs IoT Device Edit JavaScript app Send app to device Run app remotely Remote debug Development Platform Development System 31
  • 32. Internet of Things (IoT) Device (Intel® Galileo): •PWM Led Controller on I2C bus •RGB Led •Node.js with Socket.io server HTML App (Lenovo* K900): •Socket.io connection to IoT device •Change lighting color •Cordova* App Both made using: Demo: Programming Internet of Things using Intel® XDK IoT Edition † Source: Intel® Dan Yocom: http://xdk-software.intel.com/iot_edition_demo_video RGB Lighting† Intel® XDK IoT Edition 32
  • 33. •HTML5 - The New Lingua Franca? •Exposing the full power of modern hardware to JavaScript* •Bringing Perceptual Computing to the web platform •Supporting JavaScript programming in Internet of Things (IoT) •Summary Agenda 33
  • 34. •HTML5 is closing the gaps with native models •SIMD in JavaScript* enables a large new class of high-performance apps •JavaScript is about to get a lot faster for such domains as gaming •Depth Camera support in HTML5 WebRTC enables exciting use cases •JavaScript is proliferating rapidly in Internet of Things •Intel® XDK supports end-to-end programming for Internet of Things •HTML5 is the application model of the future Summary 34
  • 35. Web: The Ubiquitous Software Platform and the Application Model of the Future Big Data Rich Capabilities & Content Social Contextual Crowdsourced Sensors “Things” 35
  • 36. Download Firefox* Nightly and experience† the benefits of SIMD.JS Leverage the power of SIMD.JS through Intel® XDK and Crosswalk Download Intel® XDK free at http://xdk.intel.com Call to Action † SIMD.JS demos: http://peterjensen.github.io/idf2014-simd 36
  • 37. Intel® Developer Zone •Free tools and code samples •Technical articles, forums and tutorials •Connect with Intel and industry experts •Get development support •Build relationships Tools. Knowledge. Community. software.intel.com 37
  • 38. Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. A "Mission Critical Application" is any application in which failure of the Intel Product could result, directly or indirectly, in personal injury or death. SHOULD YOU PURCHASE OR USE INTEL'S PRODUCTS FOR ANY SUCH MISSION CRITICAL APPLICATION, YOU SHALL INDEMNIFY AND HOLD INTEL AND ITS SUBSIDIARIES, SUBCONTRACTORS AND AFFILIATES, AND THE DIRECTORS, OFFICERS, AND EMPLOYEES OF EACH, HARMLESS AGAINST ALL CLAIMS COSTS, DAMAGES, AND EXPENSES AND REASONABLE ATTORNEYS' FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, ANY CLAIM OF PRODUCT LIABILITY, PERSONAL INJURY, OR DEATH ARISING IN ANY WAY OUT OF SUCH MISSION CRITICAL APPLICATION, WHETHER OR NOT INTEL OR ITS SUBCONTRACTOR WAS NEGLIGENT IN THE DESIGN, MANUFACTURE, OR WARNING OF THE INTEL PRODUCT OR ANY OF ITS PARTS. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined". Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to: http://www.intel.com/design/literature.htm Intel, Core, Atom, Xeon Phi, RealSense, Look Inside and the Intel logo are trademarks of Intel Corporation in the United States and other countries. *Other names and brands may be claimed as the property of others. Copyright ©2014 Intel Corporation. 38