-
公开(公告)号:US20170358132A1
公开(公告)日:2017-12-14
申请号:US15275275
申请日:2016-09-23
Applicant: Apple Inc.
Inventor: Aaftab A. Munshi , Michael B. Harris , Anna Tikhonova , Charles Brissart , Srinivas Dasari , Rahul Joshi , Kelvin C. Chiu , Mon Ping Wang , Nick W. Burns
CPC classification number: G06T17/20 , G06T1/20 , G06T1/60 , G06T15/005 , G06T15/80 , G06T2200/04 , G06T2207/20021
Abstract: 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.
-
公开(公告)号:US10664943B2
公开(公告)日:2020-05-26
申请号:US15989404
申请日:2018-05-25
Applicant: Apple Inc.
Inventor: Kelvin C. Chiu , Charles Brissart , Gokhan Avkarogullari , Lloyd A. Cunningham , Rahul U. Joshi
Abstract: 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).
-
公开(公告)号:US20170308364A1
公开(公告)日:2017-10-26
申请号:US15636200
申请日:2017-06-28
Applicant: Apple Inc.
Inventor: Aaftab Munshi , Rahul U. Joshi , Mon P. Wang , Kelvin C. Chiu
IPC: G06F9/45
Abstract: 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. The CPU or other host device in the given computing system may compile the intermediate representation file to generate an instruction set architecture binary for the hardware target, such as a GPU, within the system.
-
公开(公告)号:US09740464B2
公开(公告)日:2017-08-22
申请号:US14501873
申请日:2014-09-30
Applicant: Apple Inc.
Inventor: Aaftab Munshi , Rahul U. Joshi , Mon P. Wang , Kelvin C. Chiu
IPC: G06F9/45
Abstract: 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. The CPU or other host device in the given computing system may compile the intermediate representation file to generate an instruction set architecture binary for the hardware target, such as a GPU, within the system.
-
公开(公告)号:US09442706B2
公开(公告)日:2016-09-13
申请号:US14448927
申请日:2014-07-31
Applicant: Apple Inc.
Inventor: Gokhan Avkarogullari , Alexander K. Kan , Kelvin C. Chiu
CPC classification number: G06F8/4441 , G06F9/445 , G06F9/44505
Abstract: 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.
Abstract translation: 披露方法,系统和设备,以在运行时检查开发人员提供的图形代码和属性。 设计用于使用诸如OpenCL或OpenGL的编码语言在图形处理单元(GPU)上执行的图形代码,其提供由驱动程序,代码生成器和编译器进行的运行时分析。 开发人员提供的代码和属性可以根据代码即将执行的GPU的执行能力和性能标准进行分析和更改。 通常,减少开发者定义的工作项或工作组的数量可以降低GPU相对于要执行的工作的初始化成本,并导致机器代码的整体优化。 可以添加操作代码以类似于展开循环的方式调整提供的代码,以提高执行性能。
-
公开(公告)号:US20150347107A1
公开(公告)日:2015-12-03
申请号:US14501873
申请日:2014-09-30
Applicant: Apple Inc.
Inventor: Aaftab Munshi , Rahul U. Joshi , Mon P. Wang , Kelvin C. Chiu
IPC: G06F9/45
Abstract: 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. The CPU or other host device in the given computing system may compile the intermediate representation file to generate an instruction set architecture binary for the hardware target, such as a GPU, within the system.
Abstract translation: 系统通过将源代码语言编译成符合允许并行图形操作和并行通用计算操作的语言模型的统一中间表示来将源代码语言与最终执行环境分离。 然后可以将中间表示分发给最终用户计算机,其中嵌入式编译器可以将中间表示编译成针对该终端用户设备中可用的CPU和GPU的可执行二进制文件。 中间表示足以定义图形和非图形计算内核和着色器。 在安装时间或更晚时间,可以为给定的最终用户计算系统的特定目标硬件编译中间表示文件。 给定计算系统中的CPU或其他主机设备可以编译中间表示文件,以便为系统内的硬件目标(例如GPU)生成指令集架构二进制文件。
-
公开(公告)号:US10372431B2
公开(公告)日:2019-08-06
申请号:US15636200
申请日:2017-06-28
Applicant: Apple Inc.
Inventor: Aaftab Munshi , Rahul U. Joshi , Mon P. Wang , Kelvin C. Chiu
IPC: G06F8/41
Abstract: 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. The CPU or other host device in the given computing system may compile the intermediate representation file to generate an instruction set architecture binary for the hardware target, such as a GPU, within the system.
-
公开(公告)号:US20180350028A1
公开(公告)日:2018-12-06
申请号:US15989404
申请日:2018-05-25
Applicant: Apple Inc.
Inventor: Kelvin C. Chiu , Charles Brissart , Gokhan Avkarogullari , Lloyd A. Cunningham , Rahul U. Joshi
Abstract: 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).
-
公开(公告)号:US20150347105A1
公开(公告)日:2015-12-03
申请号:US14448927
申请日:2014-07-31
Applicant: Apple Inc.
Inventor: Gokhan Avkarogullari , Alexander K. Kan , Kelvin C. Chiu
CPC classification number: G06F8/4441 , G06F9/445 , G06F9/44505
Abstract: 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.
Abstract translation: 披露方法,系统和设备,以在运行时检查开发人员提供的图形代码和属性。 设计用于使用诸如OpenCL或OpenGL的编码语言在图形处理单元(GPU)上执行的图形代码,其提供由驱动程序,代码生成器和编译器进行的运行时分析。 开发人员提供的代码和属性可以根据代码即将执行的GPU的执行能力和性能标准进行分析和更改。 通常,减少开发者定义的工作项或工作组的数量可以降低GPU相对于要执行的工作的初始化成本,并导致机器代码的整体优化。 可以添加操作代码以类似于展开循环的方式调整提供的代码,以提高执行性能。
-
-
-
-
-
-
-
-