Difference between revisions of "AI Surrogate Models LDRD"

From epsciwiki
Jump to navigation Jump to search
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 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 2023]
  
 
+
=== Presentations ===
 
 
 
 
 
 
=== Presentations/Papers ===
 
  
 
{| 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
 
|}
 
|}
  
=== Publications ===
 
  
 +
=== 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 ==
* [https://trello.com/b/iHKfTSKB/project-planning Trello project planning ]
 
  
 
* 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:20, 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

Meetings

TBA

Documents

Proposals

Presentations

Date Event Presenter Slides
2022-06-27 SRGS 2022 Nathan Brei, David Lawrence PDF

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