Hardware acceleration of web applications

US9424089B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9424089-B2
Application numberUS-201213492761-A
CountryUS
Kind codeB2
Filing dateJun 8, 2012
Priority dateJan 24, 2012
Publication dateAug 23, 2016
Grant dateAug 23, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In a first embodiment of the present invention, a method for enabling hardware acceleration of web applications is provided, comprising: parsing a web page using a scripting engine, wherein the web page necessitates running a web application; accessing one or more Application Program Interfaces (APIs) that provide parallelization, and distribute tasks of the web application among multiple cores of a multi-core central processing unit (CPU) or graphical processing unit (GPU), wherein the accessing uses a compute context class that, when instantiated, creates a compute context object that acts as a bridge between the scripting engine and the one or more APIs; and creating one or more kernels to operate on the multiple cores.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for enabling hardware acceleration of web applications, comprising: parsing a web page using a scripting engine, wherein the web page necessitates running a web application; instantiating a class to create a hardware acceleration object that acts as a bridge between the scripting engine and one or more Application Program Interfaces (APIs) that distribute tasks of the web application among multiple cores of a multi-core central processing unit (CPU) or graphical processing unit (GPU); and accessing the one or more APIs through the hardware acceleration object to create one or more kernels to operate on the multiple cores; wherein the class comprises a compute context class; wherein the hardware acceleration object comprises a compute context object; and wherein the one or more APIs are one or more OpenCL APIs. 2. The method of claim 1 , wherein the scripting engine is a JavaScript engine. 3. The method of claim 1 further comprising: utilizing one or more Web Acceleration APIs that are bound to the one or more OpenCL APIs to execute the one or more kernels. 4. The method of claim 1 , further comprising: utilizing one or more Web Acceleration APIs that are bound to the one or more OpenCL APIs to clean up after hardware acceleration. 5. A method for enabling hardware acceleration of web applications, comprising: providing a scripting language binding to an open standard for one or more Application Program Interfaces (APIs) configured to accelerate web applications by distributing tasks among multiple cores of a multi-core central processing unit (CPU) or graphical processing unit (GPU); and providing a modified browser comprising support for the open standard as well as support for the scripting language binding; wherein the scripting language binding is configured to call a port to the open standard to perform initialization for hardware acceleration of a web application, and the initialization comprises instantiating a class to create a hardware acceleration object that acts as a bridge between a scripting language engine of the modified browser and the one or more APIs; wherein the class comprises a compute context class; wherein the hardware acceleration object comprises a compute context object; and wherein the one or more APIs are one or more OpenCL APIs. 6. The method of claim 5 , wherein the scripting language binding is a JavaScript binding. 7. The method of claim 5 , wherein the open standard is OpenCL. 8. A web browser stored in a non-transitory computer readable medium operable on a computer having access to multiple cores of a multi-core central processing unit (CPU) or graphical processing unit (GPU), the web browser comprising: a scripting language engine; a scripting language engine binder; a platform port comprising a first port to an open standard for one or more Application Program Interfaces (APIs) configured to accelerate web applications by distributing tasks among the multiple cores, wherein, in response to a call from the scripting language engine binder to perform initialization for hardware acceleration of a web application, the first port is configured to instantiate a class to create a hardware acceleration object that acts as a bridge between the scripting language engine and the one or more APIs; and a Web Acceleration core configured to access the one or more APIs through the first port to the open standard to cause creation of one or more kernels to operate on the multiple cores; wherein the class comprises a compute context class; wherein the hardware acceleration object comprises a compute context object; and wherein the open standard is OpenCL. 9. The web browser of claim 8 , further comprising: a user interface front end, wherein the user interface front end is configured to compute one or more image pixels and draw the one or more image pixels on an electronic display screen. 10. The web browser of claim 8 , wherein the scripting language engine is a JavaScript engine. 11. The web browser of claim 8 , wherein the scripting language engine binder is a JavaScript engine binder. 12. An apparatus for enabling hardware acceleration of web applications, comprising: a processor; and a memory storing instructions that when executed by the processor cause the processor to perform operations including: parsing a web page using a scripting engine, wherein the web page necessitates running a web application; instantiating a class to create a hardware acceleration object that acts as a bridge between the scripting engine and one or more Application Program Interfaces (APIs) configured to distribute tasks of the web application among multiple cores of a multi-core central processing unit (CPU) or graphical processing unit (GPU) to enable hardware acceleration of the web application; and accessing the one or more APIs through the hardware acceleration object to create one or more kernels to operate on the multiple cores; wherein the class comprises a compute context class; wherein the hardware acceleration object comprises a compute context object; and wherein the one or more APIs are one or more OpenCL APIs. 13. The apparatus of claim 12 , wherein the scripting engine is a JavaScript engine. 14. The apparatus of claim 12 , wherein the operations further include: utilizing one or more Web Acceleration APIs that are bound to the one or more OpenCL APIs to execute the one or more kernels. 15. The apparatus of claim 12 wherein the operations further include: utilizing one or more Web Acceleration APIs that are bound to the one or more OpenCL APIs to clean up after hardware acceleration. 16. An apparatus for enabling hardware acceleration of web applications, comprising: a processor; and a memory storing instructions that when executed by the processor cause the processor to perform operations including: providing a scripting language binding to an open standard for one or more Application Program Interfaces (APIs) configured to accelerate web applications by distributing tasks among multiple cores of a multi-core central processing unit (CPU) or graphical processing unit (GPU); and providing a modified browser comprising support for the open standard as well as support for the scripting language binding; wherein the scripting language binding is configured to call a port to the open standard to perform initialization for hardware acceleration of a web application, and the initialization comprises instantiating a class to create a hardware acceleration object that acts as a bridge between a scripting language engine of the modified browser and the one or more APIs; wherein the class comprises a compute context class; wherein the hardware acceleration object comprises a compute context object; and wherein the one or more APIs are one or more OpenCL APIs. 17. The apparatus of claim 16 , wherein the scripting language is JavaScript. 18. The apparatus of claim 16 , wherein the open standard is OpenCL. 19. A computer-readable storage medium embodied thereon instructions being executable by at least one processor to perform a method for enabling hardware acceleration of web applications, the method comprising: parsing a web page using a scripting engine, wherein the web page necessitates running a web application; instantiating a class that enables hardware acceleration to create a hardware acceleration object that acts as a bridge between the scripting engine and one or more Application Program Interfaces (APIs) configured to distri

Assignees

Inventors

Classifications

  • G06F9/5027Primary

    the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title

  • Task decomposition · CPC title

  • Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation · CPC title

  • Energy efficient computing, e.g. low power processors, power management or thermal management · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9424089B2 cover?
In a first embodiment of the present invention, a method for enabling hardware acceleration of web applications is provided, comprising: parsing a web page using a scripting engine, wherein the web page necessitates running a web application; accessing one or more Application Program Interfaces (APIs) that provide parallelization, and distribute tasks of the web application among multiple cores…
Who is the assignee on this patent?
Gibbs Simon J, Brutch Tasneem G, Jeon Won, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F9/5027. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 23 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).