IP Library › Granted Patent US 12,333,306
Granted Patent B2
US 12,333,306 · App. 17/213,874 · Granted Jun 17, 2025

High performance constant cache and constant access mechanisms

Inventors: Subramaniam Maiyuran (Gold River, CA); Sudarshanram Shetty (Portland, OR); Travis Schluessler (Berthoud, CO); Guei-Yuan Lueh (San Jose, CA); PingHang Cheung (Folsom, CA); Srividya Karumuri (San Jose, CA); Chandra S. Gurram (Folsom, CA); Shuai Mu (San Diego, CA); Vikranth Vemulapalli (Folsom, CA)
Assignee: Intel Corporation
G06F9/30047G06F9/3009G06F9/3814G06F9/3851G06F9/3888G06F12/0837
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,333,306
App. No.
17/213,874
Granted
Jun 17, 2025
Kind
B2
Abstract

A graphics processing apparatus includes a graphics processor and a constant cache. The graphics processor has a number of execution instances that will generate requests for constant data from the constant cache. The constant cache stores constants of multiple constant types. The constant cache has a single level of hierarchy to store the constant data. The constant cache has a banking structure based on the number of execution instances, where the execution instances generate requests for the constant data with unified messaging that is the same for the different types of constant data.

Claims (21)

1. A graphics processing apparatus comprising:

a graphics processor including a number of execution instances to generate requests for constant data; and

a constant cache to store multiple constant types including bindless, stateless constants not bound to a specific storage location and not having a specific state defined, wherein the constant cache has a single level of hierarchy to store the constant data, wherein the constant cache has a banking structure based on the number of execution instances, and wherein the execution instances are to generate requests for the constant data with unified messaging having a single type of data referencing for the multiple constant types.

2. The graphics processing apparatus of claim 1 , wherein the constant cache comprises a cache device off the graphics processor and shared among the execution instances.

3. The graphics processing apparatus of claim 1 , wherein the number of execution instances comprises a number of hardware execution units, and where the constant cache has a banking structure based on the number of hardware execution units.

4. The graphics processing apparatus of claim 1 , wherein the number of execution instances comprises a number of threads executed by a graphics program, and wherein the constant cache has a banking structure based on the number of threads.

5. The graphics processing apparatus of claim 1 , further comprising:

a cacheability manager, at compile-time of a graphics application, to identify constants to store in the constant cache and identify constants to not store in the constant cache.

6. The graphics processing apparatus of claim 5 , wherein the graphics application comprises a shader application.

7. The graphics processing apparatus of claim 5 , wherein the cacheability manager is to iteratively cause compilation of the graphics application with selected constants to store in the constant cache and selected constants to not store in the constant cache, determine a performance of the graphics application, and change which constants are selected to store in the constant cache and which constants are selected to not store in the constant cache based on improved performance of the graphics application.

8. A computer system comprising:

a graphics processing unit including

a graphics processor having a number of execution instances to generate requests for constant data; and

a constant cache to store multiple constant types including bindless, stateless constants not bound to a specific storage location and not having a specific state defined, wherein the constant cache has a single level of hierarchy to store the constant data, wherein the constant cache has a banking structure based on the number of execution instances, and wherein the execution instances are to generate requests for the constant data with unified messaging having a single type of data referencing for the multiple constant types; and

a central processing unit to execute a graphics driver including a compiler to compile a graphics application for execution on the graphics processing unit.

9. The computer system of claim 8 , wherein the constant cache comprises a cache device off the graphics processor and shared among the execution instances.

10. The computer system of claim 8 , wherein the number of execution instances comprises a number of hardware execution units, and where the constant cache has a banking structure based on the number of hardware execution units.

11. The computer system of claim 8 , wherein the number of execution instances comprises a number of threads executed by a graphics program, and wherein the constant cache has a banking structure based on the number of threads.

12. The computer system of claim 8 , wherein the central processing unit is to execute a cacheability manager which, at compile-time of a graphics application, is to identify constants to store in the constant cache and identify constants to not store in the constant cache.

13. The computer system of claim 12 , wherein the graphics application comprises a shader application.

14. The computer system of claim 12 , wherein the cacheability manager is to iteratively cause compilation of the graphics application with selected constants to store in the constant cache and selected constants to not store in the constant cache, determine a performance of the graphics application, and change which constants are selected to store in the constant cache and which constants are selected to not store in the constant cache based on improved performance of the graphics application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2021
From: MAIYURAN, SUBRAMANIAM; SHETTY, SUDARSHANRAM; SCHLUESSLER, TRAVIS; LUEH, GUEI-YUAN; CHEUNG, PINGHANG; KARUMURI, SRIVIDYA; GURRAM, CHANDRA S.; MU, SHUAI; VEMULAPALLI, VIKRANTH
To: INTEL CORPORATION
Reel/Frame 055986/0797 →
Continuity (1)
Related Publication 20220308877A1 · Sep 29, 2022
References Cited (15)
US 9639365B2 · Coon et al. · 2017 [cited by applicant]
US 10318256B2 · Bruening et al. · 2019 [cited by applicant]
US 10365930B2 · Nickolls et al. · 2019 [cited by applicant]
US 20100201703A1 · Jiao · 2010 [cited by examiner]
US 20120206466A1 · Sharp · 2012 [cited by examiner]
US 20140347371A1 · Stenson et al. · 2014 [cited by applicant]
US 20150084975A1 · Heinrich et al. · 2015 [cited by applicant]
US 20180293170A1 · Koker et al. · 2018 [cited by applicant]
US 20190056958A1 · Riguer et al. · 2019 [cited by applicant]
US 20200027189A1 · Kumar et al. · 2020 [cited by applicant]
US 20200111454A1 · Ray et al. · 2020 [cited by applicant]
US 20200293450A1 · Vemulapalli et al. · 2020 [cited by applicant]
US 20200310883A1 · Valerio et al. · 2020 [cited by applicant]
US 20200402198A1 · Ray · 2020 [cited by examiner]
US 20220270319A1 · Doyle et al. · 2022 [cited by applicant]