Patents by Inventor Ahmed M. Abdelkhalek
Ahmed M. Abdelkhalek 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).
-
Publication number: 20240184623Abstract: Systems and methods are provided related to a scheduler to receive a job request from a virtual function associated with a tenant for execution by at least one processing unit. The scheduler validates the job request in accordance with one or more defined restrictions associated with the tenant and, responsive to successful validation, provides the job request for execution by the processing unit via one or more physical functions associated with the processing unit. In certain embodiments, multi-level enforcement of the defined restrictions are provided via user-mode and kernel-mode drivers associated with the virtual function that are also enabled to validate job requests based on the defined restrictions.Type: ApplicationFiled: December 1, 2022Publication date: June 6, 2024Inventors: Ahmed M. Abdelkhalek, Rutao Zhang, Bokun Zhang, Min Zhang, Yinan Jiang, Jeffrey G. Cheng
-
Patent number: 11768696Abstract: A technique for managing access to a micro engine, the method comprising: determining that a virtual function “VF”) is to be given access to direct communication with a micro engine; in response to the determining, configuring the micro engine to accept direct communication from the VF; monitoring for unpermitted communication; and after a time period has expired, configuring the micro engine to no longer accept direct communication from the VF.Type: GrantFiled: December 14, 2020Date of Patent: September 26, 2023Assignee: ATI Technologies ULCInventors: Yinan Jiang, Kamraan Nasim, Dezhi Ming, Ahmed M. Abdelkhalek, Dmytro Chenchykov, Andy Sung
-
Publication number: 20220188139Abstract: A technique for managing access to a micro engine, the method comprising: determining that a virtual function “VF”) is to be given access to direct communication with a micro engine; in response to the determining, configuring the micro engine to accept direct communication from the VF; monitoring for unpermitted communication; and after a time period has expired, configuring the micro engine to no longer accept direct communication from the VF.Type: ApplicationFiled: December 14, 2020Publication date: June 16, 2022Applicant: ATI Technologies ULCInventors: Yinan Jiang, Kamraan Nasim, Dezhi Ming, Ahmed M. Abdelkhalek, Dmytro Chenchykov, Andy Sung
-
Publication number: 20220159286Abstract: Systems, apparatuses, and methods for reducing latency when consuming an encoded video bitstream in real-time are disclosed. A video encoder encodes a video bitstream and writes chunks of the encoded bitstream to a bitstream buffer. Prior to the encoder completing the encoding of an entire frame, or an entire slice of a frame, a consumer module consumes encoded chunks of the bitstream. In one implementation, to enable pipelining of the consumption with the encoding, the encoder updates a buffer write pointer with an indication of the amount of data that has been written to the bitstream buffer. The consumer module retrieves encoded data from the bitstream buffer up to the location indicated by the buffer write pointer. In this way, the consumer module is able to access and consume encoded video data prior to the encoder finishing encoding an entire frame or an entire slice of the frame.Type: ApplicationFiled: January 28, 2022Publication date: May 19, 2022Inventors: Ahmed M. Abdelkhalek, Edward A. Harold, Andy Sung, Stephen Ho, Lei Zhang, Ihab Amer, Gabor Sines, Zhiqi Hao, Yang Liu, Baochun Li, Kai Sun
-
Publication number: 20220116593Abstract: Disclosed herein is a region-based reference management system using in video frame encoding. Source content, such as video game streaming or remote desktop sharing, that includes scene changes or significant instantaneous changes in a region from one frame to the next can present encoding challenges. Techniques disclosed herein use hints about changes in regional frame content, dissect frame content into regions, and associate the dissected regions with stored reference frame data using the hints and information about the regions to more efficiently encode frames.Type: ApplicationFiled: December 23, 2021Publication date: April 14, 2022Applicant: ATI Technologies ULCInventors: Ahmed M. Abdelkhalek, Ihab M. A. Amer, Khaled Mammou
-
Publication number: 20220058048Abstract: A technique for varying firmware for different virtual functions in a virtualized device is provided. The virtualized device includes a hardware accelerator and a microcontroller that executes firmware. The virtualized device is virtualized in that the virtualized device performs work for different virtual functions (with different virtual functions associated with different virtual machines), each function getting a “time-slice” during which work is performed for that function. To vary the firmware, each time the virtualized device switches from performing work for a current virtual function to work for a subsequent virtual function, one or more microcontrollers of the virtualized device examines memory storing addresses for firmware for the subsequent virtual function and begins executing the firmware for that subsequent virtual function. The addresses for the firmware are provided by a corresponding virtual machine at configuration time.Type: ApplicationFiled: November 2, 2021Publication date: February 24, 2022Applicant: ATI Technologies ULCInventors: Yinan Jiang, Ahmed M. Abdelkhalek, Guopei Qiao, Andy Sung, Haibo Liu, Dezhi Ming, Zhidong Xu
-
Patent number: 11252429Abstract: Systems, apparatuses, and methods for reducing latency when consuming an encoded video bitstream in real-time are disclosed. A video encoder encodes a video bitstream and writes chunks of the encoded bitstream to a bitstream buffer. Prior to the encoder completing the encoding of an entire frame, or an entire slice of a frame, a consumer module consumes encoded chunks of the bitstream. In one implementation, to enable pipelining of the consumption with the encoding, the encoder updates a buffer write pointer with an indication of the amount of data that has been written to the bitstream buffer. The consumer module retrieves encoded data from the bitstream buffer up to the location indicated by the buffer write pointer. In this way, the consumer module is able to access and consume encoded video data prior to the encoder finishing encoding an entire frame or an entire slice of the frame.Type: GrantFiled: April 27, 2018Date of Patent: February 15, 2022Assignee: ATI Technologies ULCInventors: Ahmed M. Abdelkhalek, Edward A. Harold, Andy Sung, Stephen Ho, Lei Zhang, Ihab Amer, Gabor Sines, Zhiqi Hao, Yang Liu, Baochun Li, Kai Sun
-
Patent number: 11212520Abstract: Disclosed herein is a region-based reference management system using in video frame encoding. Source content, such as video game streaming or remote desktop sharing, that includes scene changes or significant instantaneous changes in a region from one frame to the next can present encoding challenges. Techniques disclosed herein use hints about changes in regional frame content, dissect frame content into regions, and associate the dissected regions with stored reference frame data using the hints and information about the regions to more efficiently encode frames.Type: GrantFiled: December 4, 2018Date of Patent: December 28, 2021Assignee: ATI TECHNOLOGIES ULCInventors: Ahmed M. Abdelkhalek, Ihab M. A. Amer, Khaled Mammou
-
Patent number: 11194614Abstract: A technique for varying firmware for different virtual functions in a virtualized device is provided. The virtualized device includes a hardware accelerator and a microcontroller that executes firmware. The virtualized device is virtualized in that the virtualized device performs work for different virtual functions (with different virtual functions associated with different virtual machines), each function getting a “time-slice” during which work is performed for that function. To vary the firmware, each time the virtualized device switches from performing work for a current virtual function to work for a subsequent virtual function, one or more microcontrollers of the virtualized device examines memory storing addresses for firmware for the subsequent virtual function and begins executing the firmware for that subsequent virtual function. The addresses for the firmware are provided by a corresponding virtual machine at configuration time.Type: GrantFiled: October 2, 2019Date of Patent: December 7, 2021Assignee: ATI Technologies ULCInventors: Yinan Jiang, Ahmed M. Abdelkhalek, Guopei Qiao, Andy Sung, Haibo Liu, Dezhi Ming, Zhidong Xu
-
Patent number: 11182186Abstract: A technique for recovering from a hang in a virtualized accelerated processing device (“APD”) is provided. In the virtualization scheme, different virtual machines are assigned different “time-slices” in which to use the APD. When a time-slice expires, the APD stops operations for a current VM and starts operations for another VM. To stop operations on the APD, a virtualization scheduler sends a request to idle the APD. The APD responds by completing work and idling. If one or more portions of the APD do not complete this idling process before a timeout expires, then a hang occurs. In response to the hang, the virtualization scheduler informs the hypervisor that a hang has occurred. The hypervisor performs a function level reset on the APD and informs the VM that the hang has occurred. The VM responds by stopping command issue to the APD and re-initializing the APD for the function.Type: GrantFiled: July 28, 2017Date of Patent: November 23, 2021Assignees: Advanced Micro Devices, Inc., ATI Technologies ULCInventors: Anthony Asaro, Yinan Jiang, Andy Sung, Ahmed M. Abdelkhalek, Xiaowei Wang, Sidney D. Fortes
-
Patent number: 11100604Abstract: Systems, apparatuses, and methods for scheduling jobs for multiple frame-based applications are disclosed. A computing system executes a plurality of frame-based applications for generating pixels for display. The applications convey signals to a scheduler to notify the scheduler of various events within a given frame being rendered. The scheduler adjusts the priorities of applications based on the signals received from the applications. The scheduler attempts to adjust priorities of applications and schedule jobs from these applications so as to minimize the perceived latency of each application. When an application has enqueued the last job for the current frame, the scheduler raises the priority of the application to high. This results in the scheduler attempting to schedule all remaining jobs for the application back-to-back. Once all jobs of the application have been completed, the priority of the application is reduced, permitting jobs of other applications to be executed.Type: GrantFiled: January 31, 2019Date of Patent: August 24, 2021Assignees: Advanced Micro Devices, Inc., ATI Technologies ULCInventors: Jeffrey Gongxian Cheng, Ahmed M. Abdelkhalek, Yinan Jiang, Xingsheng Wan, Anthony Asaro, David Martinez Nieto
-
Publication number: 20200250787Abstract: Systems, apparatuses, and methods for scheduling jobs for multiple frame-based applications are disclosed. A computing system executes a plurality of frame-based applications for generating pixels for display. The applications convey signals to a scheduler to notify the scheduler of various events within a given frame being rendered. The scheduler adjusts the priorities of applications based on the signals received from the applications. The scheduler attempts to adjust priorities of applications and schedule jobs from these applications so as to minimize the perceived latency of each application. When an application has enqueued the last job for the current frame, the scheduler raises the priority of the application to high. This results in the scheduler attempting to schedule all remaining jobs for the application back-to-back. Once all jobs of the application have been completed, the priority of the application is reduced, permitting jobs of other applications to be executed.Type: ApplicationFiled: January 31, 2019Publication date: August 6, 2020Inventors: Jeffrey Gongxian Cheng, Ahmed M. Abdelkhalek, Yinan Jiang, Xingsheng Wan, Anthony Asaro, David Martinez Nieto
-
Publication number: 20200177876Abstract: Disclosed herein is a region-based reference management system using in video frame encoding. Source content, such as video game streaming or remote desktop sharing, that includes scene changes or significant instantaneous changes in a region from one frame to the next can present encoding challenges. Techniques disclosed herein use hints about changes in regional frame content, dissect frame content into regions, and associate the dissected regions with stored reference frame data using the hints and information about the regions to more efficiently encode frames.Type: ApplicationFiled: December 4, 2018Publication date: June 4, 2020Applicant: ATI Technologies ULCInventors: Ahmed M. Abdelkhalek, Ihab M. A. Amer, Khaled Mammou
-
Publication number: 20200034183Abstract: A technique for varying firmware for different virtual functions in a virtualized device is provided. The virtualized device includes a hardware accelerator and a microcontroller that executes firmware. The virtualized device is virtualized in that the virtualized device performs work for different virtual functions (with different virtual functions associated with different virtual machines), each function getting a “time-slice” during which work is performed for that function. To vary the firmware, each time the virtualized device switches from performing work for a current virtual function to work for a subsequent virtual function, one or more microcontrollers of the virtualized device examines memory storing addresses for firmware for the subsequent virtual function and begins executing the firmware for that subsequent virtual function. The addresses for the firmware are provided by a corresponding virtual machine at configuration time.Type: ApplicationFiled: October 2, 2019Publication date: January 30, 2020Applicant: ATI Technologies ULCInventors: Yinan JIANG, Ahmed M. ABDELKHALEK, Guopei QIAO, Andy SUNG, Haibo LIU, Dezhi MING, Zhidong XU
-
Publication number: 20190335189Abstract: Systems, apparatuses, and methods for reducing latency when consuming an encoded video bitstream in real-time are disclosed. A video encoder encodes a video bitstream and writes chunks of the encoded bitstream to a bitstream buffer. Prior to the encoder completing the encoding of an entire frame, or an entire slice of a frame, a consumer module consumes encoded chunks of the bitstream. In one implementation, to enable pipelining of the consumption with the encoding, the encoder updates a buffer write pointer with an indication of the amount of data that has been written to the bitstream buffer. The consumer module retrieves encoded data from the bitstream buffer up to the location indicated by the buffer write pointer. In this way, the consumer module is able to access and consume encoded video data prior to the encoder finishing encoding an entire frame or an entire slice of the frame.Type: ApplicationFiled: April 27, 2018Publication date: October 31, 2019Inventors: Ahmed M. Abdelkhalek, Edward A. Harold, Andy Sung, Stephen Ho, Lei Zhang, Ihab Amer, Gabor Sines, Zhiqi Hao, Yang Liu, Baochun Li, Kai Sun
-
Patent number: 10459751Abstract: A technique for varying firmware for different virtual functions in a virtualized device is provided. The virtualized device includes a hardware accelerator and a microcontroller that executes firmware. The virtualized device is virtualized in that the virtualized device performs work for different virtual functions (with different virtual functions associated with different virtual machines), each function getting a “time-slice” during which work is performed for that function. To vary the firmware, each time the virtualized device switches from performing work for a current virtual function to work for a subsequent virtual function, one or more microcontrollers of the virtualized device examines memory storing addresses for firmware for the subsequent virtual function and begins executing the firmware for that subsequent virtual function. The addresses for the firmware are provided by a corresponding virtual machine at configuration time.Type: GrantFiled: June 30, 2017Date of Patent: October 29, 2019Assignee: ATI TECHNOLOGIES ULC.Inventors: Yinan Jiang, Ahmed M. Abdelkhalek, Guopei Qiao, Andy Sung, Haibo Liu, Dezhi Ming, Zhidong Xu
-
Publication number: 20190018699Abstract: A technique for recovering from a hang in a virtualized accelerated processing device (“APD”) is provided. In the virtualization scheme, different virtual machines are assigned different “time-slices” in which to use the APD. When a time-slice expires, the APD stops operations for a current VM and starts operations for another VM. To stop operations on the APD, a virtualization scheduler sends a request to idle the APD. The APD responds by completing work and idling. If one or more portions of the APD do not complete this idling process before a timeout expires, then a hang occurs. In response to the hang, the virtualization scheduler informs the hypervisor that a hang has occurred. The hypervisor performs a function level reset on the APD and informs the VM that the hang has occurred. The VM responds by stopping command issue to the APD and re-initializing the APD for the function.Type: ApplicationFiled: July 28, 2017Publication date: January 17, 2019Applicants: Advanced Micro Devices, Inc., ATI Technologies ULCInventors: Anthony Asaro, Yinan Jiang, Andy Sung, Ahmed M. Abdelkhalek, Xiaowei Wang, Sidney D. Fortes
-
Publication number: 20190004842Abstract: A technique for varying firmware for different virtual functions in a virtualized device is provided. The virtualized device includes a hardware accelerator and a microcontroller that executes firmware. The virtualized device is virtualized in that the virtualized device performs work for different virtual functions (with different virtual functions associated with different virtual machines), each function getting a “time-slice” during which work is performed for that function. To vary the firmware, each time the virtualized device switches from performing work for a current virtual function to work for a subsequent virtual function, one or more microcontrollers of the virtualized device examines memory storing addresses for firmware for the subsequent virtual function and begins executing the firmware for that subsequent virtual function. The addresses for the firmware are provided by a corresponding virtual machine at configuration time.Type: ApplicationFiled: June 30, 2017Publication date: January 3, 2019Applicant: ATI Technologies ULCInventors: Yinan Jiang, Ahmed M. Abdelkhalek, Guopei Qiao, Andy Sung, Haibo Liu, Dezhi Ming, Zhidong Xu