Patents by Inventor Michael John Bedy
Michael John Bedy 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: 12487930Abstract: An apparatus and method for efficiently scheduling wavefronts for execution on an integrated circuit. In various implementations, a computing system includes a parallel data processing circuit with multiple, replicated compute circuits. Each compute circuit executes one or more wavefronts. Each compute circuit includes a cache configured to store temporary data that cannot fit in the vector general-purpose register file of the compute circuit. Each wavefront requests a corresponding amount of storage space in the cache for storing the temporary data. When the available data storage space in the cache is less than a data size requested by a wavefront waiting to be dispatched, a control circuit of the compute circuit reduces a dispatch rate of wavefronts. The control circuit also reduces an issue rate of instructions of one or more dispatched wavefronts to assigned execution circuits of the compute circuit.Type: GrantFiled: December 12, 2023Date of Patent: December 2, 2025Assignee: Advanced Micro Devices, Inc.Inventors: Nicolai Haehnle, Michael John Bedy
-
Publication number: 20250190347Abstract: An apparatus and method for efficiently scheduling wavefronts for execution on an integrated circuit. In various implementations, a computing system includes a parallel data processing circuit with multiple, replicated compute circuits. Each compute circuit executes one or more wavefronts. Each compute circuit includes a cache configured to store temporary data that cannot fit in the vector general-purpose register file of the compute circuit. Each wavefront requests a corresponding amount of storage space in the cache for storing the temporary data. When the available data storage space in the cache is less than a data size requested by a wavefront waiting to be dispatched, a control circuit of the compute circuit reduces a dispatch rate of wavefronts. The control circuit also reduces an issue rate of instructions of one or more dispatched wavefronts to assigned execution circuits of the compute circuit.Type: ApplicationFiled: December 12, 2023Publication date: June 12, 2025Inventors: Nicolai Haehnle, Michael John Bedy
-
Publication number: 20250068429Abstract: A Streaming Wave Coalescer (SWC) circuit stores a first set of state values associated with a first subset of threads of a first wave in a bin based on each of the first subset of threads including a first set of instructions to be executed. A second set of state values associated with a second subset of threads of a second wave is stored in the bin based on each of the second subset of threads including the first set of instructions to be executed and based on the first wave and the second wave both being associated with a hard key. A third wave is formed from the threads of the first subset and the second subset and is emitted for execution. As a result of reorganizing the threads and reconstituting a different wave, thread divergence of waves sent for execution is reduced.Type: ApplicationFiled: December 12, 2023Publication date: February 27, 2025Inventors: John Stephen Junkins, Christopher J. Brennan, Ian Richard Beaumont, Kellie Marks, Matthaeus G. Chajdas, Max Oberberger, Michael John Bedy, Michael Mantor, Sean Keely
-
Publication number: 20240311199Abstract: A program code executing on a processing system includes one or more instructions each identifying a workload that includes a plurality of waves and each identifying resource allocations for the plurality of waves of the workgroup. In response to receiving an instruction identifying a workload and resource allocations for the plurality of waves of the workgroup, a processor allocates a first set of processing resources to a compute unit of the processor based on the resource allocations for the plurality of waves. The compute unit then performs operations for the workgroup using the allocated set of processing resources.Type: ApplicationFiled: March 13, 2023Publication date: September 19, 2024Inventors: Nicolai Haehnle, Mark Leather, Brian Emberling, Michael John Bedy, Daniel Schneider
-
Patent number: 11243904Abstract: A method and apparatus for scheduling instructions of a shader program for a graphics processing unit (GPU) with a fixed number of registers. The method and apparatus include computing, via a processing unit (PU), a liveness-based register usage across all basic blocks in the shader program, computing, via the PU, the range of numbers of waves of a plurality of registers for the shader program, assessing the impact of available post-register allocation optimizations, computing, via the PU, the scoring data based on number of waves of the plurality of registers, and computing, via the PU, the number of waves for execution for the plurality of registers.Type: GrantFiled: March 9, 2020Date of Patent: February 8, 2022Assignee: ADVANCED MICRO DEVICES, INC.Inventors: Robert A. Gottlieb, Christopher L. Reeve, Michael John Bedy
-
Patent number: 11113061Abstract: Described herein are techniques for saving registers in the event of a function call. The techniques include modifying a program including a block of code designated as a calling code that calls a function. The modifying includes modifying the calling code to set a register usage mask indicating which registers are in use at the time of the function call. The modifying also includes modifying the function to combine the information of the register usage mask with information indicating registers used by the function to generate registers to be saved and save the registers to be saved.Type: GrantFiled: September 26, 2019Date of Patent: September 7, 2021Assignee: Advanced Micro Devices, Inc.Inventor: Michael John Bedy
-
Patent number: 11080927Abstract: A method and apparatus provides for compiling a plurality of shaders, each shader having a plurality of computer-readable statements, into a plurality of computer-executable instructions. In one example, the method and apparatus, using a computing device, receives the plurality of shaders used in a process pipeline for performing at least one shading function, determines a shader type of each of the plurality of shaders based on the at least one shading function, and compiles the plurality of shaders by generating the computer-executable instructions using data including a shader descriptor for each of the plurality of shaders, resulting in the shading functions of the plurality of shaders combined together.Type: GrantFiled: November 30, 2017Date of Patent: August 3, 2021Assignee: Advanced Micro Devices, Inc.Inventors: Guohua Jin, Michael John Bedy
-
Publication number: 20210096864Abstract: Described herein are techniques for saving registers in the event of a function call. The techniques include modifying a program including a block of code designated as a calling code that calls a function. The modifying includes modifying the calling code to set a register usage mask indicating which registers are in use at the time of the function call. The modifying also includes modifying the function to combine the information of the register usage mask with information indicating registers used by the function to generate registers to be saved and save the registers to be saved.Type: ApplicationFiled: September 26, 2019Publication date: April 1, 2021Applicant: Advanced Micro Devices, Inc.Inventor: Michael John Bedy
-
Publication number: 20210065441Abstract: Described herein are techniques for generating a compiled shader program. The techniques include identifying input features of a shader program, providing the identified input features of the shader program to a trained model for selecting compiler operation values for shader programs, receiving, as output from the trained model, a compiler operation value for the shader program, and generating a compiled shader program based on the compiler operation value for execution on one or more compute units.Type: ApplicationFiled: September 26, 2019Publication date: March 4, 2021Applicant: Advanced Micro Devices, Inc.Inventors: Ian Charles Colbert, Michael John Bedy
-
Publication number: 20200278947Abstract: A method and apparatus for scheduling instructions of a shader program for a graphics processing unit (GPU) with a fixed number of registers. The method and apparatus include computing, via a processing unit (PU), a liveness-based register usage across all basic blocks in the shader program, computing, via the PU, the range of numbers of waves of a plurality of registers for the shader program, assessing the impact of available post-register allocation optimizations, computing, via the PU, the scoring data based on number of waves of the plurality of registers, and computing, via the PU, the number of waves for execution for the plurality of registers.Type: ApplicationFiled: March 9, 2020Publication date: September 3, 2020Applicant: ADVANCED MICRO DEVICES, INC.Inventors: Robert A. Gottlieb, Christopher L. Reeve, Michael John Bedy
-
Patent number: 10664285Abstract: A method of deriving intended thread data exchange patterns from source code includes identifying, based on a constant array, a pattern of data exchange between a plurality of threads in a wavefront. The constant array includes an array of source lane values identifying a thread location within the wavefront to read from for performing the pattern of data exchange. The pattern of data exchange is identified as a hardware-accelerated exchange pattern based on the constant array.Type: GrantFiled: December 19, 2018Date of Patent: May 26, 2020Assignee: ADVANCED MICRO DEVICES, INC.Inventors: Michael John Bedy, Eric J. Finger
-
Patent number: 10585847Abstract: A method and apparatus for scheduling instructions of a shader program for a graphics processing unit (GPU) with a fixed number of registers. The method and apparatus include computing, via a processing unit (PU), a liveness-based register usage across all basic blocks in the shader program, computing, via the PU, the range of numbers of waves of a plurality of registers for the shader program, assessing the impact of available post-register allocation optimizations, computing, via the PU, the scoring data based on number of waves of the plurality of registers, and computing, via the PU, the number of waves for execution for the plurality of registers.Type: GrantFiled: February 4, 2019Date of Patent: March 10, 2020Assignee: ADVANCED MICRO DEVICES, INC.Inventors: Robert A. Gottlieb, Christopher L. Reeve, Michael John Bedy
-
Publication number: 20190179798Abstract: A method and apparatus for scheduling instructions of a shader program for a graphics processing unit (GPU) with a fixed number of registers. The method and apparatus include computing, via a processing unit (PU), a liveness-based register usage across all basic blocks in the shader program, computing, via the PU, the range of numbers of waves of a plurality of registers for the shader program, assessing the impact of available post-register allocation optimizations, computing, via the PU, the scoring data based on number of waves of the plurality of registers, and computing, via the PU, the number of waves for execution for the plurality of registers.Type: ApplicationFiled: February 4, 2019Publication date: June 13, 2019Applicant: ADVANCED MICRO DEVICES, INC.Inventors: Robert A. Gottlieb, Christopher L. Reeve, Michael John Bedy
-
Publication number: 20190164337Abstract: A method and apparatus provides for compiling a plurality of shaders, each shader having a plurality of computer-readable statements, into a plurality of computer-executable instructions. In one example, the method and apparatus, using a computing device, receives the plurality of shaders used in a process pipeline for performing at least one shading function, determines a shader type of each of the plurality of shaders based on the at least one shading function, and compiles the plurality of shaders by generating the computer-executable instructions using data including a shader descriptor for each of the plurality of shaders, resulting in the shading functions of the plurality of shaders combined together.Type: ApplicationFiled: November 30, 2017Publication date: May 30, 2019Inventors: Guohua Jin, Michael John Bedy
-
Patent number: 10198259Abstract: A method and apparatus for scheduling instructions of a shader program for a graphics processing unit (GPU) with a fixed number of registers. The method and apparatus include computing, via a processing unit (PU), a liveness-based register usage across all basic blocks in the shader program, computing, via the PU, the range of numbers of waves of a plurality of registers for the shader program, assessing the impact of available post-register allocation optimizations, computing, via the PU, the scoring data based on number of waves of the plurality of registers, and computing, via the PU, the number of waves for execution for the plurality of registers.Type: GrantFiled: June 23, 2016Date of Patent: February 5, 2019Assignee: ADVANCED MICRO DEVICES, INC.Inventors: Robert A. Gottlieb, Christopher L. Reeve, Michael John Bedy
-
Publication number: 20170371653Abstract: A method and apparatus for scheduling instructions of a shader program for a graphics processing unit (GPU) with a fixed number of registers. The method and apparatus include computing, via a processing unit (PU), a liveness-based register usage across all basic blocks in the shader program, computing, via the PU, the range of numbers of waves of a plurality of registers for the shader program, assessing the impact of available post-register allocation optimizations, computing, via the PU, the scoring data based on number of waves of the plurality of registers, and computing, via the PU, the number of waves for execution for the plurality of registers.Type: ApplicationFiled: June 23, 2016Publication date: December 28, 2017Applicant: Advanced Micro Devices, Inc.Inventors: Robert A. Gottlieb, Christopher L. Reeve, Michael John Bedy