Regent and Pygion: Programming Models Overview

regent and pygion elliott slaughter n.w
1 / 10
Embed
Share

"Explore the Regent and Pygion programming models, designed for Legion retreats and Legion programming interface for Python. Learn about their features, performance results, upcoming updates, and more."

  • Regent
  • Pygion
  • Programming Models
  • Legion
  • GPU

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Regent and Pygion Elliott Slaughter Legion Retreat, 2021-06-14

  2. Regent Overview Automatic GPU codegen Programming language that targets Legion Natively supports Legion programming model Nice syntax Type checker to catch mistakes quickly Optimizations to automatically improve code performance __demand(__cuda) task do_physics(r : region(int1d, fs)) where reads(r.vel_old), writes(r.vel) do for x in r do x.vel = x.vel_old + ... end end task main() var r = region(ispace(int1d, 10), fs) var p = partition(equal, r, ispace(int1d, 4) for i = 0, 4 do do_physics(p[i]) end end Index launch (automatic optimization) 2

  3. Whats New in Regent Constant time index launches Improve scalability at extreme node counts Separate compilation (Very early) standard library std/format Field polymorphism Pygion (Python) interop Call Regent from Pygion Limited ability to call Pygion from Regent 3

  4. Some Regent Performance Results Regent results have appeared in 10 papers: SC 15, SC 17, SC 18, SC 19, SC 20, PAW-ATM 19, PAW-ATM 20, PPoPP 21, APS Bulletin 18, Computer Physics Comm 20 Circuit strong/weak scaling Stencil strong/weak scaling 4

  5. Coming Next to Regent Some upcoming features (in no particular order): Automatic AMD/Intel GPU code generation Ability to call tasks as functions (i.e., without spawning) Compile time improvements More flexibility in assigning regions/partitions Compact sparse instances Gather/scatter copies Let me know which features impact your use cases 5

  6. Pygion Overview @task(privileges=[RO("vel_old"]+RW("vel")]) def do_physics(r): r.vel.add( out=r.vel, r.vel_old + ...) Legion programming interface for Python Direct style interface As opposed to e.g., Legate, FlexFlow Supports most Legion features @task def main(): r = Region([10], {"vel": float64, "old_vel": float64}) p = Partition.equal(r, [4]) index_launch( [4], do_physics, p[ID]) 6

  7. Whats New in Pygion Feature complete: covers nearly the entire Legion API Single/index task launches Dependent partitioning Copies, fills Inline mapping Etc. Projection functors: E.g., p[x+1] Code generation via LLVM to make it accessible to Legion 7

  8. Some Pygion Performance Results Performance comparisons with Regent Using Regent interop to take advantage of GPU kernels Circuit weak scaling Pennant weak scaling Stencil weak scaling 8

  9. Coming Next to Pygion Some upcoming features (in no particular order): Legate/FlexFlow interop CUDA integration Also: AMD, Intel Subprocesses Multiple Python interpreters per Legion runtime Let me know which features impact your use cases 9

  10. Questions? 10

More Related Content