Difference between revisions of "AI Surrogate Models LDRD"
m |
|||
Line 6: | Line 6: | ||
We propose to develop tools to automatically generate machine learning surrogate models from existing software so that they may utilize modern heterogeneous hardware. A hypothetical future high performance data facility would make extensive use of heterogeneous hardware such as GPUs and FPGAs, but many legacy codes will need to be heavily modified in order to take advantage of this hardware. Surrogate models replace a piece of code which is expensive to run with an approximate model; when the underlying model is a neural net, it runs efficiently on heterogeneous hardware. Thus, they are a promising technique for offloading computation to such hardware while minimizing the necessary changes to the original code. The tools developed during this project would make it substantially simpler to implement a surrogate model, enabling legacy code to access heterogeneous hardware, saving users' time and effort, and eliminating redundant work. Lowering these barriers should enable faster development iterations and make it easier to bring machine learning research code into production. This project includes a proof of principle of a new kind of code analysis tool which could be useful for an even broader variety of problems in high performance computing. Several of the milestones open up opportunities for future research into neural differential equations and automatic identification of functions to surrogate. | We propose to develop tools to automatically generate machine learning surrogate models from existing software so that they may utilize modern heterogeneous hardware. A hypothetical future high performance data facility would make extensive use of heterogeneous hardware such as GPUs and FPGAs, but many legacy codes will need to be heavily modified in order to take advantage of this hardware. Surrogate models replace a piece of code which is expensive to run with an approximate model; when the underlying model is a neural net, it runs efficiently on heterogeneous hardware. Thus, they are a promising technique for offloading computation to such hardware while minimizing the necessary changes to the original code. The tools developed during this project would make it substantially simpler to implement a surrogate model, enabling legacy code to access heterogeneous hardware, saving users' time and effort, and eliminating redundant work. Lowering these barriers should enable faster development iterations and make it easier to bring machine learning research code into production. This project includes a proof of principle of a new kind of code analysis tool which could be useful for an even broader variety of problems in high performance computing. Several of the milestones open up opportunities for future research into neural differential equations and automatic identification of functions to surrogate. | ||
− | === Resources === | + | === General Resources === |
* Source code lives here: https://github.com/nathanwbrei/surrogate_toolkit | * Source code lives here: https://github.com/nathanwbrei/surrogate_toolkit | ||
* [https://wiki.jlab.org/epsciwiki/index.php/SRGS_2022 SRGS 2022] | * [https://wiki.jlab.org/epsciwiki/index.php/SRGS_2022 SRGS 2022] | ||
+ | * [https://trello.com/b/iHKfTSKB/project-planning Project planning (Trello page)] | ||
== Meetings == | == Meetings == | ||
Line 15: | Line 16: | ||
== Documents == | == Documents == | ||
+ | === Proposals === | ||
* [https://www.jlab.org/sites/default/files/ldrd/files/FY22%20funds/FY22%20proposals/LD2213_Brei_SurrogateModels_Proposal%20%20revised.docx LDRD proposal 2022] | * [https://www.jlab.org/sites/default/files/ldrd/files/FY22%20funds/FY22%20proposals/LD2213_Brei_SurrogateModels_Proposal%20%20revised.docx LDRD proposal 2022] | ||
− | * [https://jeffersonlab-my.sharepoint.com/:w:/r/personal/nbrei_jlab_org/_layouts/15/Doc.aspx?sourcedoc=%7BB2D68ABE-4812-4BEE-ADB5-90612F894349%7D&file=PHASM_FY23_proposal.docx&action=default&mobileredirect=true&DefaultItemOpen=1&login_hint=xmei%40jlab.org&ct=1658515937689&wdOrigin=OFFICECOM-WEB.START.OTHER&cid=db9f757f-7525-4a97-b03f-701905a4482a LDRD proposal | + | * [https://jeffersonlab-my.sharepoint.com/:w:/r/personal/nbrei_jlab_org/_layouts/15/Doc.aspx?sourcedoc=%7BB2D68ABE-4812-4BEE-ADB5-90612F894349%7D&file=PHASM_FY23_proposal.docx&action=default&mobileredirect=true&DefaultItemOpen=1&login_hint=xmei%40jlab.org&ct=1658515937689&wdOrigin=OFFICECOM-WEB.START.OTHER&cid=db9f757f-7525-4a97-b03f-701905a4482a LDRD proposal 2023] |
− | + | === Presentations === | |
− | |||
− | |||
− | |||
− | === Presentations | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 31: | Line 29: | ||
! Slides | ! Slides | ||
|- | |- | ||
− | |||
| 2022-06-27 | | 2022-06-27 | ||
| SRGS 2022 | | SRGS 2022 | ||
| Nathan Brei, David Lawrence | | Nathan Brei, David Lawrence | ||
| [https://wiki.jlab.org/epsciwiki/images/e/ee/Phasm_Intro_Slides.pdf PDF] | | [https://wiki.jlab.org/epsciwiki/images/e/ee/Phasm_Intro_Slides.pdf PDF] | ||
+ | |} | ||
+ | === Publications === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Date | ||
+ | ! Journal | ||
+ | ! Title | ||
+ | |- | ||
+ | | ccc | ||
+ | | aaa | ||
+ | | bbb | ||
|} | |} | ||
− | |||
+ | === Notes === | ||
+ | * [https://jeffersonlab-my.sharepoint.com/:w:/r/personal/xmei_jlab_org/Documents/Roofline_model/Advisor%20and%20Likwid%20report.docx?d=wde1d0406d7644135ac5cb3c942751296&csf=1&web=1&e=m0EqSh The NVIDIA GPU profiling tools for the Roofline analysis], Xinxin Mei | ||
== Actionables == | == Actionables == | ||
− | |||
* Surrogate toolkit: Implement array inputs and test on a 2D PDE such as diffusion. '''Nathan''' | * Surrogate toolkit: Implement array inputs and test on a 2D PDE such as diffusion. '''Nathan''' | ||
Line 54: | Line 62: | ||
* Improve the existing GlueX tracking models in preparation for Q3 and Q4 milestones '''Kishan''' | * Improve the existing GlueX tracking models in preparation for Q3 and Q4 milestones '''Kishan''' | ||
+ | |||
+ | |||
+ | == Useful Links == | ||
+ | |||
+ | * Roofline Performance Model: https://crd.lbl.gov/divisions/amcr/computer-science-amcr/par/research/roofline/ |
Revision as of 19:19, 22 July 2022
Running Legacy Code on Heterogeneous Hardware via Surrogate Models
Project Description
We propose to develop tools to automatically generate machine learning surrogate models from existing software so that they may utilize modern heterogeneous hardware. A hypothetical future high performance data facility would make extensive use of heterogeneous hardware such as GPUs and FPGAs, but many legacy codes will need to be heavily modified in order to take advantage of this hardware. Surrogate models replace a piece of code which is expensive to run with an approximate model; when the underlying model is a neural net, it runs efficiently on heterogeneous hardware. Thus, they are a promising technique for offloading computation to such hardware while minimizing the necessary changes to the original code. The tools developed during this project would make it substantially simpler to implement a surrogate model, enabling legacy code to access heterogeneous hardware, saving users' time and effort, and eliminating redundant work. Lowering these barriers should enable faster development iterations and make it easier to bring machine learning research code into production. This project includes a proof of principle of a new kind of code analysis tool which could be useful for an even broader variety of problems in high performance computing. Several of the milestones open up opportunities for future research into neural differential equations and automatic identification of functions to surrogate.
General Resources
- Source code lives here: https://github.com/nathanwbrei/surrogate_toolkit
- SRGS 2022
- Project planning (Trello page)
Meetings
TBA
Documents
Proposals
Presentations
Date | Event | Presenter | Slides |
---|---|---|---|
2022-06-27 | SRGS 2022 | Nathan Brei, David Lawrence |
Publications
Date | Journal | Title |
---|---|---|
ccc | aaa | bbb |
Notes
Actionables
- Surrogate toolkit: Implement array inputs and test on a 2D PDE such as diffusion. Nathan
- Vacuum tool: Automatically identify primitive inputs and outputs from the function signature. Nathan
- Tool for profiling the memory bounds on a GPU. David + Nathan
- Start thinking about a neural net model for a 2D PDE. Kishan + Nathan
- Improve the existing GlueX tracking models in preparation for Q3 and Q4 milestones Kishan
Useful Links
- Roofline Performance Model: https://crd.lbl.gov/divisions/amcr/computer-science-amcr/par/research/roofline/