Skip to content
Snippets Groups Projects

Rodinia

Merged Aaron Councilman requested to merge juno-rodinia into main

Rodinia is working (with only a very bad hack in backprop, but we need multi-returns to fix that). Definitely needs a lot of work to optimize, but everything is running now on CPU and GPU.

This includes a few other changes:

  1. By default SROA will no longer break products that contain arrays (though it has an option to do that). This is useful because breaking structs with arrays can be very expensive (it can produce extra copies of arrays and gcm seems to struggle with it). This is needed for rodinia because in cfd basically 5 arrays are passed in as a single struct (so in Rust a single long array) because this is the style of the original benchmarks (side note: in HPVM they're passed as 5 separate arrays which is a pain and in Rodinia as a single array with annoying magic numbers to get the indexing, our struct of array form is so much nicer to write than that).
  2. Fixes to cpu and gpu intrinsic names
  3. Because SROA is no longer (by default) breaking products that contain arrays we need the front-end and outlining to generate better return types (in particular avoid singleton and empty products where possible).
  4. Fixes around HerculesMutBox to allow borrowing it for a shorter time then its whole lifetime so that we can read data back using them after execution of the Hercules program (I think this is really just used because of the hack we need to get backprop to work)
  5. Some improvements to Juno syntax related to structs and for-loops (both now support more rust-style syntax in addition to the original style)
  • Note: for the rust like loops it now supports code like for i in 0..=n which will generate the guarded do-while form but now the condition will be <= rather than <, ideally loop bound canonicalization will support this, but I can adjust Juno to just add 1 to the bound and use < if needed

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
Loading