On Sun, 3 Sep 2017 07:54:00 -0700 (PDT)
JUERGEN <
epld...@aol.com> wrote:
In the talk [1] James mentions that polyFORTH runs about 200
times slower on the GA144 than native code [3]. It needs 18 -
24 GA144 nodes, although six are just used as wires on the demo
board. [2]
He then describes a "Novel Execution Model" [1], which is 40x
faster than polyFORTH for fully inlined nested loops. [3]
> ... I do not understand where the amiguities
> could be. James says what he says there at about 1h30. If it
> is correct is a different matter - and I keep out of this.
He is talking about running C on the "Novel Execution Model"
described in the talk [3 - last note]. This compiled C would
still run code at least 5 times slower than than native code on
a single GA144 node, and have other restrictions.
Thanks for pushing me to listen again. I also want to slurp
Forth code phrases from a serial flash, and use a cache to
avoid re-loading loop bodies.
Jan Combs
[2] Pg 8 of "G144A12 polyFORTH"
http://www.greenarraychips.com/home/documents/greg/DB006-120923-PF-G144A12.pdf
[3] Notes from James' talk:
0:45:29 "A Novel Execution Model for GA144"
"Michael Schuldt, Mark Flamer, James Bowman"
0:51:50 [starts here]
0:55:57 'PolyForth hit is 200x slower than native'
1:10:00 100k instructions per second
1:13:06 'return oriented programming'
1:20:?? start of code run demos
1:24.33 50 for 1000 for 1000 for next next next
takes 1s (inlined), PolyForth 40s
1:25.28 1000 for 1000 for 0 drop next next
takes 65ms (inlined), PolyForth 3s
1:26:31 10 for 1000 for 0 7 mod drop next next
takes 2s+? (calls mod)
1:29:00 [just after applause] "Oh ..., one thing, ...
that this, ... with all its hopping around, it is
not completely suitable for Forth. Forth, because
of the way we factor things, doesn't have a lot of
opportunity for in-lining. But there is a language
where they in-line like crazy, and that's "C". So
this system works much better for "C" on a register
machine [version of this "Novel Execution Model"]
[...] all that would happen is that the R stack
[node] disappears and is replaced by a register
bank.