IP Library › Granted Patent US 12,663,971
Granted Patent B2
US 12,663,971 · App. 18/424,197 · Granted Jun 23, 2026

Compiling an application having polynomial operations to produce directed acyclic graphs having commands to execute in a near memory processing device

Inventors: Yongmo Park (Ann Arbor, MI); Subhankar Pal (White Plains, NY); Aporva Amarnath (White Plains, NY); Alper Buyuktosunoglu (White Plains, NY); Pradip Bose (Yorktown Heights, NY)
Assignee: International Business Machines Corporation
G06F8/4441G06F8/443G06F9/3836G06F9/455
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,663,971
App. No.
18/424,197
Granted
Jun 23, 2026
Kind
B2
Abstract

Provided are a computer program product, system, and method for compiling an application having polynomial operations to produce directed acyclic graphs having commands to execute in a near memory processing device. An application is compiled including operations on a polynomial having coefficients, decomposed into a number of levels of coefficient elements, to generate hierarchical directed acyclic graphs (DAGs) having nodes indicating commands for execution by a hierarchy of hardware components in a near memory processing (NMP) device. The hierarchy of hardware components includes a plurality of enclaves of tiles. Each tile includes memory and a processing element to perform operations on the decomposed coefficients stored in the memory of the tile. Each of the hardware components includes a controller to process the commands in the DAG generated for the hardware components. The DAGs are provided to a hierarchical DAG tracker to generate commands for the NMP device.

Claims (50)

1 . A computer program product for compiling a program having polynomial operations, the computer program product comprising a computer readable storage medium having computer readable program code embodied therein that when executed performs operations, the operations comprising:

compiling an application including operations on a polynomial having coefficients, wherein the coefficients are decomposed into a number of levels of coefficient elements, to generate hierarchical directed acyclic graphs (DAGs) having nodes indicating commands for execution by a hierarchy of hardware components in a near memory processing (NMP) device, wherein the hierarchy of hardware components includes a plurality of enclaves of tiles, wherein an enclave comprises a plurality of tiles, wherein the tiles include memories and processing elements to perform operations on the decomposed coefficients stored in the memories of the tiles, wherein the hardware components include controllers to process the commands in the DAGs generated for execution by the hardware components; and

providing the DAGs to a hierarchical DAG tracker to generate commands for the NMP device.

2 . The computer program product of claim 1 , wherein the commands generated for the tiles include memory commands to read and write the coefficient elements in the memories in the tiles and to have the processing elements in the tiles process the coefficient elements in the memories.

3 . The computer program product of claim 1 , wherein the generated commands include commands for NMP substrates on the NMP device, wherein the NMP substrates include the enclaves.

4 . The computer program product of claim 3 , wherein the commands comprise a hierarchical command list, wherein the hierarchical command list includes an NMP substrate command list for one of the NMP substrates on the NMP device, wherein the NMP substrate command list provides an enclave command list for enclaves on the NMP substrate having the NMP substrate command list, and wherein the enclave command list provides primitive operations to perform on the coefficient elements.

5 . The computer program product of claim 4 , wherein the enclave command list provides a tile command list for each primitive operation indicated on the enclave command list, and wherein the tile command list includes memory commands and operations to perform on the coefficient elements within a tile to implement the primitive operation for which the tile command list is provided.

6 . The computer program product of claim 1 , wherein each level of coefficient elements comprises a limb, and wherein the commands include commands to process coefficient elements for one limb in the tiles of only one enclave.

7 . A computer program product for compiling a program having polynomial operations, the computer program product comprising a computer readable storage medium having computer readable program code embodied therein that when executed performs operations, the operations comprising:

compiling, by a compiler, an application including operations on a polynomial having coefficients, wherein the coefficients are decomposed into a number of levels of coefficient elements, to generate commands in a hierarchical directed acyclic graph (DAG) having nodes indicating commands for execution by a hierarchy of hardware components in a near memory processing (NMP) device including tiles having memories with row buffers and processing elements to perform operations on the coefficient elements; and

forwarding the commands to an NMP device model that models the hierarchy of hardware components in the NMP device and processes the commands to generate information on completion of the commands.

8 . The computer program product of claim 7 , wherein the operations further comprise:

indicating, by the NMP device model, a hardware component, in the hierarchy of hardware components, as busy for a duration of clock cycles to process a command received for the hardware components.

9 . The computer program product of claim 7 , wherein the operations further comprise:

assigning, by a command scheduler, clock cycles for the commands indicating when the commands are executed in the hierarchy of components, wherein the NMP device model indicates a hardware component as busy in response to the hardware component executing a command at a clock cycle assigned by the command scheduler.

10 . The computer program product of claim 7 , wherein the hardware components of the hierarchy of components include NMP substrates on the NMP device, wherein the NMP substrates include a plurality of enclaves, wherein each enclave comprises a plurality of interconnected tiles, wherein the tiles include memories and processing elements to perform operations on decomposed coefficients stored in the memories, and wherein the NMP device model provides a model of the NMP substrates on the NMP device, the enclaves on the NMP substrates, and the tiles in the enclaves.

11 . The computer program product of claim 7 , wherein the operations further comprise:

processing, by a DAG tracker, the DAGs and commands to process at the DAG nodes for the hardware components in the hierarchy of components to track a status of processing the commands and track dependencies of the components;

determining, by a command scheduler, clock cycles for ready commands from the DAG tracker;

sending, by the command scheduler, commands to the NMP device model in response to receiving a signal from the NMP device model that a component represented in the NMP device model is ready to process commands; and

returning, by the NMP device model, indication of completed commands to the DAG tracker.

12 . A system for compiling a program having polynomial operations, comprising:

a processor; and

a computer readable storage medium having computer readable program code embodied therein that when executed performs operations, the operations comprising:

compiling an application including operations on a polynomial having coefficients, wherein the coefficients are decomposed into a number of levels of coefficient elements, to generate hierarchical directed acyclic graphs (DAGs) having nodes indicating commands for execution by a hierarchy of hardware components in a near memory processing (NMP) device, wherein the hierarchy of hardware components includes a plurality of enclaves of tiles, wherein an enclave comprises a plurality of tiles, wherein the tiles include memories and processing elements to perform operations on the decomposed coefficients stored in the memories of the tiles, wherein the hardware components include controllers to process the commands in the DAGs generated for execution by the hardware components; and

providing the DAGs to a hierarchical DAG tracker to generate commands for the NMP device.

13 . The system of claim 12 , wherein the commands generated for the tiles include memory commands to read and write the coefficient elements in the memories in the tiles and to have the processing elements in the tiles process the coefficient elements in the memories.

14 . The system of claim 12 , wherein the generated commands include commands for NMP substrates on the NMP device, wherein the NMP substrates include the enclaves.

15 . The system of claim 14 , wherein the commands comprise a hierarchical command list, wherein the hierarchical command list includes an NMP substrate command list for one of the NMP substrates on the NMP device, wherein the NMP substrate command list provides an enclave command list for enclaves on the NMP substrate having the NMP substrate command list, and wherein the enclave command list provides primitive operations to perform on the coefficient elements.

16 . The system of claim 15 , wherein the enclave command list provides a tile command list for each primitive operation indicated on the enclave command list, and wherein the tile command list includes memory commands and operations to perform on the coefficient elements within a tile to implement the primitive operation for which the tile command list is provided.

17 . A system for compiling a program having polynomial operations, comprising:

a processor; and

a computer readable storage medium having computer readable program code embodied therein that when executed performs operations, the operations comprising:

compiling, by a compiler, an application including operations on a polynomial having coefficients, wherein the coefficients are decomposed into a number of levels of coefficient elements, to generate commands in a hierarchical directed acyclic graph (DAG) having nodes indicating commands for execution by a hierarchy of hardware components in a near memory processing (NMP) device including tiles having memories with row buffers and processing elements to perform operations on the coefficient elements; and

forwarding the commands to an NMP device model that models the hierarchy of hardware components in the NMP device and processes the commands to generate information on completion of the commands.

18 . The system of claim 17 , wherein the operations further comprise:

indicating, by the NMP device model, a hardware component, in the hierarchy of hardware components, as busy for a duration of clock cycles to process a command received for the hardware components.

19 . The system of claim 17 , wherein the hardware components of the hierarchy of components include NMP substrates on the NMP device, wherein the NMP substrates include a plurality of enclaves, wherein each enclave comprises a plurality of interconnected tiles, wherein the tiles include memories and processing elements to perform operations on decomposed coefficients stored in the memories of the tiles, and wherein the NMP device model provides a model of the NMP substrates on the NMP device, the enclaves on the NMP substrates, and the tiles in the enclaves.

20 . The system of claim 17 , wherein the operations further comprise:

processing, by a DAG tracker, the DAGs and commands to process at the DAG nodes for the hardware components in the hierarchy of components to track a status of processing the commands and track dependencies of the components;

determining, by a command scheduler, clock cycles for ready commands from the DAG tracker;

sending, by the command scheduler, commands to the NMP device model in response to receiving a signal from the NMP device model that a component represented in the NMP device model is ready to process commands; and

returning, by the NMP device model, indication of completed commands to the DAG tracker.

21 . A computer implemented method for compiling a program having polynomial operations, comprising:

compiling an application including operations on a polynomial having coefficients, wherein the coefficients are decomposed into a number of levels of coefficient elements, to generate hierarchical directed acyclic graphs (DAGs) having nodes indicating commands for execution by a hierarchy of hardware components in a near memory processing (NMP) device, wherein the hierarchy of hardware components includes a plurality of enclaves of tiles, wherein an enclave comprises a plurality of tiles, wherein the tiles include memories and processing elements to perform operations on the decomposed coefficients stored in the memories of the tiles, wherein the hardware components include controllers to process the commands in the DAGs generated for execution by the hardware components; and

providing the DAGs to a hierarchical DAG tracker to generate commands for the NMP device.

22 . The method of claim 21 , wherein the commands generated for the tiles include memory commands to read and write the coefficient elements in the memories in the tiles and to have the processing elements in the tiles process the coefficient elements in the memories.

23 . The method of claim 21 , wherein the generated commands include commands for NMP substrates on the NMP device, wherein the NMP substrates include the enclaves.

24 . The method of claim 23 , wherein the commands comprise a hierarchical command list, wherein the hierarchical command list includes an NMP substrate command list for one of the NMP substrates on the NMP device, wherein the NMP substrate command list provides an enclave command list for enclaves on the NMP substrate having the NMP substrate command list, and wherein the enclave command list provides primitive operations to perform on the coefficient elements.

25 . The method of claim 24 , wherein the enclave command list provides a tile command list for each primitive operation indicated on the enclave command list, and wherein the tile command list includes memory commands and operations to perform on the coefficient elements within a tile to implement the primitive operation for which the tile command list is provided.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2024
From: PARK, YONGMO; PAL, SUBHANKAR; AMARNATH, APORVA; BUYUKTOSUNOGLU, ALPER; BOSE, PRADIP
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 066281/0384 →
Continuity (1)
Related Publication 20250244980A1 · Jul 31, 2025
References Cited (37)
US 11693662B2 · Creeger et al. · 2023 [cited by applicant]
US 11764944B2 · Liao et al. · 2023 [cited by applicant]
US 20170060588A1 · Choi · 2017 [cited by examiner]
US 20210303355A1 · Nag · 2021 [cited by examiner]
US 20230171084A1 · Kwon et al. · 2023 [cited by applicant]
US 20230195320A1 · Kachare et al. · 2023 [cited by applicant]
US 20230269067A1 · Son et al. · 2023 [cited by applicant]
US 20230291541A1 · Gupta et al. · 2023 [cited by applicant]
WO 2025157615A1 · 2025 [cited by applicant]
WO 2025157617A1 · 2025 [cited by applicant]
WO 2025157618A1 · 2025 [cited by applicant]
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or Declaration,” Patent Cooperation Treaty May 2, 2025… [cited by applicant]
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or Declaration,” Patent Cooperation Treaty May 2, 2025… [cited by applicant]
Yang et al., “FPGA Acceleration of Rotation in Homomorphic Encryption Using Dynamic Data Layout”, 2023 33rd International Conference on Field-Programmable Logic and Applications (FPL), Sep. 2023. 08 pages. [cited by applicant]
Zhou et al., “FHEmem: A Processing In-Memory Accelerator for Fully Homomorphic Encryption”, IEEE Transactions on Emerging Topics in Computing, Jan. 17, 2025, 14 pages. [cited by applicant]
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or Declaration,” Patent Cooperation Treaty, Mar. 24, 2… [cited by applicant]
Lin et al., “SongC: A Compiler for Hybrid Near-Memory and In-Memory Many-Core Architecture”, IEEE Transactions on Computers, vol. 73 Issue: 10, Sep. 5, 2023, pp. 2420-2433. [cited by applicant]
Park et al., “Dramaton: A Near-DRAM Accelerator for Large Number Theoretic Transforms”, IEEE Computer Architecture Letters, vol. 23 Issue: 1, Mar. 27, 2024, pp. 108-111. [cited by applicant]
A. Aikata, et al., “REED: Chiplet-Based Scalable Hardware Accelerator for Fully Homomorphic Encryption,” arXiviv:2308.02885v1, Aug. 5, 2023, 14 pp. [cited by applicant]
A. Feldman, et al., “F1: A Fast and Programmable Accelerator for Fully Homomorphic Encryption,” ACM, 2021, 15 pp. [cited by applicant]
D. Kwon, et al., “a 1ynm 1.25V 8Gb 16Gb/s/Pin GDDR6-Based Accelerator-in-Memory Supporting 1TFLOPS MAC Operation and Various Activation Function for Deep Learning Application,” IEEE, IEEE Journal of Solid-State Circuits… [cited by applicant]
D. Reis, et al., “Computing-in-Memory for Performance and Energy-Efficient Homomorphic Encryption,” IEEE, IEEE Transactions on Very Large Scale Integration (VSLI) Systems, vol. 28, No. 11, Nov. 2020, 14 pp. [cited by applicant]
D.B. Cousins, et al., “TREBUCHET: Fully Homomorphic Encryption Accelerator for Deep Computation,” arXiv:2304.05237, Apr. 2023, 6 pp. [cited by applicant]
H. Nejatollahi, et al., “CryptoPIM: In-memory Acceleration for Lattice-based Cryptographic Hardware,” IEEE, 2020, 6 pp. [cited by applicant]
J. Kim, et al., “ARK: Fully Homomorphic Encryption Accelerator with Runtime Data Generation and Inter-Operation Key Reuse,” IEEE, 2022, 18 pp. [cited by applicant]
J. Kim, et al., “SHARP: A Short-Word Hierarchical Accelerator for Robust and Practical Fully Homomorphic Encryption,” ACM, 2023, 15 pp. [cited by applicant]
J. Park, et al., “NTT-PIM: Row-Centric Architecture and Mapping for Efficient Number-Theoretic Transform on PIM,” ArXiv, arXiv:2310.09715v1, Oct. 15, 2023, 6 pp. [cited by applicant]
J.H. Cheon, et al., “A Full RNS Variant of Approximate Homomorphic Encryption,” HHS Public Access, Apr. 15, 2021, 26 pp. [cited by applicant]
J.H. Cheon, et al., “Homomorphic Encryption for Arithmetic of Approximate Numbers,” ASIACRYPT 2017, Part I, LNCS 10624, 2017, 23 pp. [cited by applicant]
List of IBM Patents or Patent Applications Treated as Related, 2 pp., Jan. 26, 2024. [cited by applicant]
R. Agrawal, et al., “FAB: An FPGA-based Accelerator for Bootstrappable Fully Homomorphic,” IEEE, 2023, 14 pp. [cited by applicant]
R. Geelen, et al., “BASALISC: Programmable Hardware Accelerator for BGV Fully Homomorphic Encryption,” IACR Transactions on Cryptographic Hardware and Embedded Systems, ISSN 2569-2925, vol. 2023, 26 pp. [cited by applicant]
S. Kim, et al., “BTS: An Accelerator for Bootstrappable Fully Homomorphic Encryption,” ACM, 2022, 15 pp. [cited by applicant]
S. Lee, et al., “a 1ynm 1.25V 8Gb 16Gb/s/Pin GDDR6-Based Accelerator-in-Memory Supporting 1TFLOPS MAC Operation and Various Activvation Function for Deep Learning Application,” IEEE, IEEE Journal of Solid-State Circuits… [cited by applicant]
U.S. Appl. No. 18/424,162, filed Jan. 26, 2024. [cited by applicant]
U.S. Appl. No. 18/424,145, filed Jan. 26, 2024. [cited by applicant]
Samardzic et al. “CraterLake: a hardware accelerator for efficient unbounded computation on encrypted data”, ISCA '22: Proceedings of the 49th Annual International Symposium on Computer Architecture, Jun. 11, 2022, pp. … [cited by applicant]