Rodinia
Loading
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:
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).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)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