Patents by Inventor Kelvin C. Chiu
Kelvin C. Chiu has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 10664943Abstract: The disclosed concepts provide a method to generate and use a compound shader object. A compound shader object includes a shader's intermediate representation (IR) and one or more binary modules; each binary module configured to execute on one type of graphics processing unit (GPU) with a specific input state. One method includes receiving, through a public application programming interface (API), a request to execute a shader from an user-level application. At the framework level, if the request corresponds to one of the prior compiled binary modules, that module may be passed to a GPU for immediate execution via a system private interface. If the request does not correspond to one of the binary modules, the shader's IR module may returned to the requesting user-level application (which module would then have to be compiled before it may be sent to the GPU).Type: GrantFiled: May 25, 2018Date of Patent: May 26, 2020Assignee: Apple Inc.Inventors: Kelvin C. Chiu, Charles Brissart, Gokhan Avkarogullari, Lloyd A. Cunningham, Rahul U. Joshi
-
Patent number: 10372431Abstract: A system decouples the source code language from the eventual execution environment by compiling the source code language into a unified intermediate representation that conforms to a language model allowing both parallel graphical operations and parallel general-purpose computational operations. The intermediate representation may then be distributed to end-user computers, where an embedded compiler can compile the intermediate representation into an executable binary targeted for the CPUs and GPUs available in that end-user device. The intermediate representation is sufficient to define both graphics and non-graphics compute kernels and shaders. At install-time or later, the intermediate representation file may be compiled for the specific target hardware of the given end-user computing system.Type: GrantFiled: June 28, 2017Date of Patent: August 6, 2019Assignee: Apple Inc.Inventors: Aaftab Munshi, Rahul U. Joshi, Mon P. Wang, Kelvin C. Chiu
-
Publication number: 20180350028Abstract: The disclosed concepts provide a method to generate and use a compound shader object. A compound shader object includes a shader's intermediate representation (IR) and one or more binary modules; each binary module configured to execute on one type of graphics processing unit (GPU) with a specific input state. One method includes receiving, through a public application programming interface (API), a request to execute a shader from an user-level application. At the framework level, if the request corresponds to one of the prior compiled binary modules, that module may be passed to a GPU for immediate execution via a system private interface. If the request does not correspond to one of the binary modules, the shader's IR module may returned to the requesting user-level application (which module would then have to be compiled before it may be sent to the GPU).Type: ApplicationFiled: May 25, 2018Publication date: December 6, 2018Inventors: Kelvin C. Chiu, Charles Brissart, Gokhan Avkarogullari, Lloyd A. Cunningham, Rahul U. Joshi
-
Publication number: 20170358132Abstract: An improved tessellation graphics pipeline that obviates that use of early stage vertex shaders and hull shaders and allows greater efficiency and flexibility. Embodiments provide a graphics pipeline beginning with a tessellator that may obtain tessellation factors in any manner such as reading from a memory of factors provided by a developer or computing the factors using a compute kernel. In some embodiments, a single vertex shader may follow the tessellator and perform all the necessary vertex shading for the pipeline. Furthermore, in some embodiments, a compute kernel is used to generate the tessellation factors. The compute kernel provides flexibility that allows its employment for some graphic portions and not others. In addition, the streamlined pipeline facilitates the efficient use of scaling to determine tessellation factors for the same graphic portion at different camera distances or desired levels of replication of the mathematical model.Type: ApplicationFiled: September 23, 2016Publication date: December 14, 2017Inventors: Aaftab A. Munshi, Michael B. Harris, Anna Tikhonova, Charles Brissart, Srinivas Dasari, Rahul Joshi, Kelvin C. Chiu, Mon Ping Wang, Nick W. Burns
-
Publication number: 20170308364Abstract: A system decouples the source code language from the eventual execution environment by compiling the source code language into a unified intermediate representation that conforms to a language model allowing both parallel graphical operations and parallel general-purpose computational operations. The intermediate representation may then be distributed to end-user computers, where an embedded compiler can compile the intermediate representation into an executable binary targeted for the CPUs and GPUs available in that end-user device. The intermediate representation is sufficient to define both graphics and non-graphics compute kernels and shaders. At install-time or later, the intermediate representation file may be compiled for the specific target hardware of the given end-user computing system.Type: ApplicationFiled: June 28, 2017Publication date: October 26, 2017Inventors: Aaftab Munshi, Rahul U. Joshi, Mon P. Wang, Kelvin C. Chiu
-
Patent number: 9740464Abstract: A system decouples the source code language from the eventual execution environment by compiling the source code language into a unified intermediate representation that conforms to a language model allowing both parallel graphical operations and parallel general-purpose computational operations. The intermediate representation may then be distributed to end-user computers, where an embedded compiler can compile the intermediate representation into an executable binary targeted for the CPUs and GPUs available in that end-user device. The intermediate representation is sufficient to define both graphics and non-graphics compute kernels and shaders. At install-time or later, the intermediate representation file may be compiled for the specific target hardware of the given end-user computing system.Type: GrantFiled: September 30, 2014Date of Patent: August 22, 2017Assignee: Apple Inc.Inventors: Aaftab Munshi, Rahul U. Joshi, Mon P. Wang, Kelvin C. Chiu
-
Patent number: 9442706Abstract: Methods, systems and devices are disclosed to examine developer supplied graphics code and attributes at run-time. The graphics code designed for execution on a graphics processing unit (GPU) utilizing a coding language such as OpenCL or OpenGL which provides for run-time analysis by a driver, code generator, and compiler. Developer supplied code and attributes can be analyzed and altered based on the execution capabilities and performance criteria of a GPU on which the code is about to be executed. In general, reducing the number of developer defined work items or work groups can reduce the initialization cost of the GPU with respect to the work to be performed and result in an overall optimization of the machine code. Manipulation code can be added to adjust the supplied code in a manner similar to unrolling a loop to improve execution performance.Type: GrantFiled: July 31, 2014Date of Patent: September 13, 2016Assignee: Apple Inc.Inventors: Gokhan Avkarogullari, Alexander K. Kan, Kelvin C. Chiu
-
Publication number: 20150347105Abstract: Methods, systems and devices are disclosed to examine developer supplied graphics code and attributes at run-time. The graphics code designed for execution on a graphics processing unit (GPU) utilizing a coding language such as OpenCL or OpenGL which provides for run-time analysis by a driver, code generator, and compiler. Developer supplied code and attributes can be analyzed and altered based on the execution capabilities and performance criteria of a GPU on which the code is about to be executed. In general, reducing the number of developer defined work items or work groups can reduce the initialization cost of the GPU with respect to the work to be performed and result in an overall optimization of the machine code. Manipulation code can be added to adjust the supplied code in a manner similar to unrolling a loop to improve execution performance.Type: ApplicationFiled: July 31, 2014Publication date: December 3, 2015Inventors: Gokhan Avkarogullari, Alexander K. Kan, Kelvin C. Chiu
-
Publication number: 20150347107Abstract: A system decouples the source code language from the eventual execution environment by compiling the source code language into a unified intermediate representation that conforms to a language model allowing both parallel graphical operations and parallel general-purpose computational operations. The intermediate representation may then be distributed to end-user computers, where an embedded compiler can compile the intermediate representation into an executable binary targeted for the CPUs and GPUs available in that end-user device. The intermediate representation is sufficient to define both graphics and non-graphics compute kernels and shaders. At install-time or later, the intermediate representation file may be compiled for the specific target hardware of the given end-user computing system.Type: ApplicationFiled: September 30, 2014Publication date: December 3, 2015Inventors: Aaftab Munshi, Rahul U. Joshi, Mon P. Wang, Kelvin C. Chiu